public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Takao Fujiwara <tfujiwar@redhat.com>
To: git-commits@fedoraproject.org
Subject: [rpms/ibus] autotool: Update ibus-HEAD.patch from upstream
Date: Sun, 31 May 2026 02:07:12 GMT	[thread overview]
Message-ID: <178019323243.1.7510974132897129343.rpms-ibus-677e87ac8992@fedoraproject.org> (raw)

            A new commit has been pushed.

            Repo   : rpms/ibus
            Branch : autotool
            Commit : 677e87ac8992872f3bada01d5b01e429d506a00c
            Author : Takao Fujiwara <tfujiwar@redhat.com>
            Date   : 2019-07-26T12:28:32+09:00
            Stats  : +14745/-157 in 2 file(s)
            URL    : https://src.fedoraproject.org/rpms/ibus/c/677e87ac8992872f3bada01d5b01e429d506a00c?branch=autotool

            Log:
            Update ibus-HEAD.patch from upstream

- Integrate a new compose feature
- Generate ibus-tests and ibus-desktop-testing sub packages

---
diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch
index d54c1a8..5535d68 100644
--- a/ibus-HEAD.patch
+++ b/ibus-HEAD.patch
@@ -1,154 +1,262 @@
-From 05a10950d635602fb3fcf4ed0021aa0b15dbd698 Mon Sep 17 00:00:00 2001
+From 026b19ef169dd9612d8a4a1ee34f7c42e7215c9a Mon Sep 17 00:00:00 2001
 From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Thu, 9 May 2019 15:49:09 +0900
-Subject: [PATCH] src: Make ISO 639 language names with title
-
-Danish translations are small in iso-codes-iso-639-2-da.po for the
-genral usage but the users ask the title format on UI.
-Now ibus_get_language_name() and ibus_get_untranslated_language_name()
-return the dynamic allocation instead of the static characters
-to make the capital character.
+Date: Wed, 13 Mar 2019 19:16:17 +0900
+Subject: [PATCH 01/27] setup: Enable to run ibus-setup with a different python
 
-BUG=https://github.com/ibus/ibus/issues/2079
+BUG=https://github.com/ibus/ibus/issues/2086
 ---
- src/ibusutil.c | 63 ++++++++++++++++++++++++++++++++++++++++++--------
- src/ibusutil.h |  8 +++----
- 2 files changed, 58 insertions(+), 13 deletions(-)
+ setup/ibus-setup.in | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
 
-diff --git a/src/ibusutil.c b/src/ibusutil.c
-index fd1da006..9d003e2e 100644
---- a/src/ibusutil.c
-+++ b/src/ibusutil.c
-@@ -2,7 +2,7 @@
- /* vim:set et sts=4: */
- /* bus - The Input Bus
-  * Copyright (C) 2008-2015 Peng Huang <shawn.p.huang@gmail.com>
-- * Copyright (C) 2010-2017 Takao Fujiwara <takao.fujiwara1@gmail.com>
-+ * Copyright (C) 2010-2018 Takao Fujiwara <takao.fujiwara1@gmail.com>
-  * Copyright (C) 2008-2016 Red Hat, Inc.
-  *
-  * This library is free software; you can redistribute it and/or
-@@ -125,8 +125,8 @@ _load_lang()
-     ibus_xml_free (node);
- }
+diff --git a/setup/ibus-setup.in b/setup/ibus-setup.in
+index bb5c85cf..4a6830af 100644
+--- a/setup/ibus-setup.in
++++ b/setup/ibus-setup.in
+@@ -3,7 +3,7 @@
+ # ibus - The Input Bus
+ #
+ # Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
+-# Copyright (c) 2018 Takao Fujiwara <takao.fujiwara1@gmail.com>
++# Copyright (c) 2018-2019 Takao Fujiwara <takao.fujiwara1@gmail.com>
+ # Copyright (c) 2007-2018 Red Hat, Inc.
+ #
+ # This library is free software; you can redistribute it and/or
+@@ -27,5 +27,5 @@ export IBUS_PREFIX=@prefix@
+ export IBUS_DATAROOTDIR=@datarootdir@
+ export IBUS_LOCALEDIR=@localedir@
+ export IBUS_LIBEXECDIR=${libexecdir}
+-exec @PYTHON@ @prefix@/share/ibus/setup/main.py $@
++exec ${PYTHON:-@PYTHON@} @prefix@/share/ibus/setup/main.py $@
  
--const gchar *
--ibus_get_untranslated_language_name (const gchar *_locale)
-+const static gchar *
-+ibus_get_untranslated_raw_language_name (const gchar *_locale)
- {
-     const gchar *retval;
-     gchar *p = NULL;
-@@ -148,19 +148,64 @@ ibus_get_untranslated_language_name (const gchar *_locale)
-         return "Other";
- }
+-- 
+2.21.0
+
+From 2825bfc13618d382444aa1f87be22cd86e9bba29 Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Wed, 13 Mar 2019 19:35:19 +0900
+Subject: [PATCH 02/27] src: Update ibusunicodegen.h for Unicode UCD 12.0
+
+---
+ src/ibusunicodegen.h | 36 ++++++++++++++++++++++++++++++++++++
+ 1 file changed, 36 insertions(+)
+
+diff --git a/src/ibusunicodegen.h b/src/ibusunicodegen.h
+index 9952fe0a..6a60a5a9 100644
+--- a/src/ibusunicodegen.h
++++ b/src/ibusunicodegen.h
+@@ -855,6 +855,10 @@ const static char *unicode_blocks[] = {
+                     the following command:
+        msgmerge -C gucharmap.po ibus.po ibus.pot */
+     N_("Sogdian"),
++    /* TRANSLATORS: You might refer the translations from gucharmap with
++                    the following command:
++       msgmerge -C gucharmap.po ibus.po ibus.pot */
++    N_("Elymaic"),
+     /* TRANSLATORS: You might refer the translations from gucharmap with
+                     the following command:
+        msgmerge -C gucharmap.po ibus.po ibus.pot */
+@@ -935,6 +939,10 @@ const static char *unicode_blocks[] = {
+                     the following command:
+        msgmerge -C gucharmap.po ibus.po ibus.pot */
+     N_("Warang Citi"),
++    /* TRANSLATORS: You might refer the translations from gucharmap with
++                    the following command:
++       msgmerge -C gucharmap.po ibus.po ibus.pot */
++    N_("Nandinagari"),
+     /* TRANSLATORS: You might refer the translations from gucharmap with
+                     the following command:
+        msgmerge -C gucharmap.po ibus.po ibus.pot */
+@@ -967,6 +975,10 @@ const static char *unicode_blocks[] = {
+                     the following command:
+        msgmerge -C gucharmap.po ibus.po ibus.pot */
+     N_("Makasar"),
++    /* TRANSLATORS: You might refer the translations from gucharmap with
++                    the following command:
++       msgmerge -C gucharmap.po ibus.po ibus.pot */
++    N_("Tamil Supplement"),
+     /* TRANSLATORS: You might refer the translations from gucharmap with
+                     the following command:
+        msgmerge -C gucharmap.po ibus.po ibus.pot */
+@@ -983,6 +995,10 @@ const static char *unicode_blocks[] = {
+                     the following command:
+        msgmerge -C gucharmap.po ibus.po ibus.pot */
+     N_("Egyptian Hieroglyphs"),
++    /* TRANSLATORS: You might refer the translations from gucharmap with
++                    the following command:
++       msgmerge -C gucharmap.po ibus.po ibus.pot */
++    N_("Egyptian Hieroglyph Format Controls"),
+     /* TRANSLATORS: You might refer the translations from gucharmap with
+                     the following command:
+        msgmerge -C gucharmap.po ibus.po ibus.pot */
+@@ -1031,6 +1047,10 @@ const static char *unicode_blocks[] = {
+                     the following command:
+        msgmerge -C gucharmap.po ibus.po ibus.pot */
+     N_("Kana Extended-A"),
++    /* TRANSLATORS: You might refer the translations from gucharmap with
++                    the following command:
++       msgmerge -C gucharmap.po ibus.po ibus.pot */
++    N_("Small Kana Extension"),
+     /* TRANSLATORS: You might refer the translations from gucharmap with
+                     the following command:
+        msgmerge -C gucharmap.po ibus.po ibus.pot */
+@@ -1079,6 +1099,14 @@ const static char *unicode_blocks[] = {
+                     the following command:
+        msgmerge -C gucharmap.po ibus.po ibus.pot */
+     N_("Glagolitic Supplement"),
++    /* TRANSLATORS: You might refer the translations from gucharmap with
++                    the following command:
++       msgmerge -C gucharmap.po ibus.po ibus.pot */
++    N_("Nyiakeng Puachue Hmong"),
++    /* TRANSLATORS: You might refer the translations from gucharmap with
++                    the following command:
++       msgmerge -C gucharmap.po ibus.po ibus.pot */
++    N_("Wancho"),
+     /* TRANSLATORS: You might refer the translations from gucharmap with
+                     the following command:
+        msgmerge -C gucharmap.po ibus.po ibus.pot */
+@@ -1091,6 +1119,10 @@ const static char *unicode_blocks[] = {
+                     the following command:
+        msgmerge -C gucharmap.po ibus.po ibus.pot */
+     N_("Indic Siyaq Numbers"),
++    /* TRANSLATORS: You might refer the translations from gucharmap with
++                    the following command:
++       msgmerge -C gucharmap.po ibus.po ibus.pot */
++    N_("Ottoman Siyaq Numbers"),
+     /* TRANSLATORS: You might refer the translations from gucharmap with
+                     the following command:
+        msgmerge -C gucharmap.po ibus.po ibus.pot */
+@@ -1151,6 +1183,10 @@ const static char *unicode_blocks[] = {
+                     the following command:
+        msgmerge -C gucharmap.po ibus.po ibus.pot */
+     N_("Chess Symbols"),
++    /* TRANSLATORS: You might refer the translations from gucharmap with
++                    the following command:
++       msgmerge -C gucharmap.po ibus.po ibus.pot */
++    N_("Symbols and Pictographs Extended-A"),
+     /* TRANSLATORS: You might refer the translations from gucharmap with
+                     the following command:
+        msgmerge -C gucharmap.po ibus.po ibus.pot */
+-- 
+2.21.0
+
+From 6099a45f2e734458202383fdf157aea95b1f35a5 Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Wed, 13 Mar 2019 19:36:05 +0900
+Subject: [PATCH 03/27] build: Delete built sources with MAINTAINERCLEANFILES
+
+BUG=https://github.com/ibus/ibus/issues/2082
+---
+ src/Makefile.am     | 9 ++++++++-
+ ui/gtk3/Makefile.am | 6 ++++++
+ 2 files changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 6a62e0f0..a8e3d07d 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -3,7 +3,7 @@
+ # ibus - The Input Bus
+ #
+ # Copyright (c) 2007-2015 Peng Huang <shawn.p.huang@gmail.com>
+-# Copyright (c) 2015-2018 Takao Fujiwara <takao.fujiwara1@gmail.com>
++# Copyright (c) 2015-2019 Takao Fujiwara <takao.fujiwara1@gmail.com>
+ # Copyright (c) 2007-2017 Red Hat, Inc.
+ #
+ # This library is free software; you can redistribute it and/or
+@@ -256,6 +256,10 @@ dicts/emoji-en.dict: emoji-parser
+ 	    echo "WARNING: Not found $(EMOJI_ANNOTATION_DIR)/en.xml" 1>&2; \
+ 	fi; \
+ 	for f in $(LANG_FILES) ; do \
++	    if test -f dicts/emoji-$$f.dict; then \
++	        echo "Already exists dicts/emoji-$$f.dict"; \
++	        continue; \
++	    fi; \
+ 	    if test -f \
+ 	    "$(EMOJI_ANNOTATION_DIR)/../annotationsDerived/$$f.xml" ; then \
+ 	        xml_derived_option="--xml-derived $(EMOJI_ANNOTATION_DIR)/../annotationsDerived/$$f.xml"; \
+@@ -279,6 +283,9 @@ dicts/emoji-en.dict: emoji-parser
+ 	    echo "Generated $$plus_comment dicts/emoji-$$f.dict"; \
+ 	done
  
--const gchar *
-+static char *
-+get_first_item_in_semicolon_list (const char *list)
-+{
-+        char **items;
-+        char  *item;
-+
-+        items = g_strsplit (list, "; ", 2);
-+
-+        item = g_strdup (items[0]);
-+        g_strfreev (items);
-+
-+        return item;
-+}
-+
-+static char *
-+capitalize_utf8_string (const char *str)
-+{
-+    char first[8] = { 0 };
-+
-+    if (!str)
-+        return NULL;
++ibusemojigen.h: dicts/emoji-en.dict
++	$(NULL)
 +
-+    g_unichar_to_utf8 (g_unichar_totitle (g_utf8_get_char (str)), first);
-+
-+    return g_strconcat (first, g_utf8_offset_to_pointer (str, 1), NULL);
-+}
+ install-data-hook: $(dict_DATA)
+ 	@$(NORMAL_INSTALL)
+ 	$(AM_V_at)list='$(wildcard dicts/*.dict)'; \
+diff --git a/ui/gtk3/Makefile.am b/ui/gtk3/Makefile.am
+index 60205aa5..667d51c6 100644
+--- a/ui/gtk3/Makefile.am
++++ b/ui/gtk3/Makefile.am
+@@ -130,6 +130,8 @@ CLEANFILES =            \
+     gtkpanel.xml        \
+     $(NULL)
+ 
++MAINTAINERCLEANFILES =
 +
-+gchar *
-+ibus_get_untranslated_language_name (const gchar *_locale)
-+{
-+    const gchar *raw = ibus_get_untranslated_raw_language_name (_locale);
-+    gchar *tmp = get_first_item_in_semicolon_list (raw);
-+    gchar *retval = capitalize_utf8_string (tmp);
-+    g_free (tmp);
-+    return retval;
-+}
+ emoji_headers =         \
+     ibusemojidialog.h   \
+     $(NULL)
+@@ -192,6 +194,8 @@ emojierapp.o: $(srcdir)/emojierapp.c
+ 	$(AM_V_CC_no)$(COMPILE) -c -o $@ $<
+ 	$(NULL)
+ 
++MAINTAINERCLEANFILES += emojierapp.c
 +
-+gchar *
- ibus_get_language_name (const gchar *_locale)
- {
--    const gchar *retval = ibus_get_untranslated_language_name (_locale);
-+    const gchar *raw = ibus_get_untranslated_raw_language_name (_locale);
-+    const gchar *translation = NULL;
-+    gchar *tmp;
-+    gchar *retval;
+ component_DATA += gtkextension.xml
+ CLEANFILES += gtkextension.xml
+ libexec_PROGRAMS += ibus-extension-gtk3
+@@ -240,6 +244,8 @@ panelbinding.o: $(srcdir)/panelbinding.c
+ 	$(AM_V_CC_no)$(COMPILE) -c -o $@ $<
+ 	$(NULL)
  
- #ifdef ENABLE_NLS
--    if (g_strcmp0 (retval, "Other") == 0)
--        return dgettext (GETTEXT_PACKAGE, N_("Other"));
-+    if (g_strcmp0 (raw, "Other") == 0)
-+        return g_strdup (dgettext (GETTEXT_PACKAGE, N_("Other")));
-     else
--        return dgettext ("iso_639-3", retval);
-+        translation = dgettext ("iso_639-3", raw);
- #else
--    return retval;
-+    translation = raw;
- #endif
++MAINTAINERCLEANFILES += extension.c panelbinding.c
 +
-+    tmp = get_first_item_in_semicolon_list (translation);
-+    retval = capitalize_utf8_string (tmp);
-+    g_free (tmp);
-+    return retval;
- }
+ man_seven_files = $(man_seven_in_files:.7.in=.7)
+ man_seven_DATA =$(man_seven_files:.7=.7.gz)
+ man_sevendir = $(mandir)/man7
+-- 
+2.21.0
+
+From b497de5bc6525769e03b65c73fc991d4aa006223 Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Wed, 20 Mar 2019 17:44:26 +0900
+Subject: [PATCH 04/27] test: Set GTK_IM_MODULE in test-console.sh
+
+---
+ src/tests/Makefile.am |  4 ++--
+ 1 files changed, 14 insertions(+), 2 deletions(-)
+
+diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am
+index e337a59b..e2ff5ea7 100644
+--- a/src/tests/Makefile.am
++++ b/src/tests/Makefile.am
+@@ -3,7 +3,7 @@
+ # ibus - The Input Bus
+ #
+ # Copyright (c) 2007-2015 Peng Huang <shawn.p.huang@gmail.com>
+-# Copyright (c) 2015-2018 Takao Fujiwara <takao.fujiwara1@gmail.com>
++# Copyright (c) 2015-2019 Takao Fujiwara <takao.fujiwara1@gmail.com>
+ # Copyright (c) 2007-2018 Red Hat, Inc.
+ #
+ # This library is free software; you can redistribute it and/or
+@@ -78,7 +78,7 @@ TESTS_ENVIRONMENT = \
  
- void
-diff --git a/src/ibusutil.h b/src/ibusutil.h
-index 226dd7a8..795365f6 100644
---- a/src/ibusutil.h
-+++ b/src/ibusutil.h
-@@ -2,8 +2,8 @@
- /* vim:set et sts=4: */
- /* bus - The Input Bus
-  * Copyright (C) 2008-2015 Peng Huang <shawn.p.huang@gmail.com>
-- * Copyright (C) 2010-2017 Takao Fujiwara <takao.fujiwara1@gmail.com>
-- * Copyright (C) 2008-2016 Red Hat, Inc.
-+ * Copyright (C) 2010-2018 Takao Fujiwara <takao.fujiwara1@gmail.com>
-+ * Copyright (C) 2008-2018 Red Hat, Inc.
-  *
-  * This library is free software; you can redistribute it and/or
-  * modify it under the terms of the GNU Lesser General Public
-@@ -42,7 +42,7 @@
-  *
-  * Returns: untranslated language name
-  */
--const gchar *    ibus_get_untranslated_language_name
-+gchar *          ibus_get_untranslated_language_name
-                                                 (const gchar    *_locale);
+ LOG_COMPILER = $(srcdir)/runtest
  
- /**
-@@ -51,6 +51,6 @@ const gchar *    ibus_get_untranslated_language_name
-  *
-  * Returns: translated language name
-  */
--const gchar *    ibus_get_language_name         (const gchar    *_locale);
-+gchar *          ibus_get_language_name         (const gchar    *_locale);
+-EXTRA_DIST = runtest
++EXTRA_DIST = runtest ibus-compose.env
  
- #endif
+ ibus_bus_SOURCES = ibus-bus.c
+ ibus_bus_LDADD = $(prog_ldadd)
 -- 
-2.20.1
+2.21.0
 
 From 1cb5032e85d85f496e349236d1b74f17fb8db966 Mon Sep 17 00:00:00 2001
 From: fujiwarat <takao.fujiwara1@gmail.com>
 Date: Tue, 23 Apr 2019 15:40:45 +0900
-Subject: [PATCH] configure: Move ibus-setup from configure.ac to Makefile.am
+Subject: [PATCH 05/27] configure: Move ibus-setup from configure.ac to
+ Makefile.am
 
 @localedir@ can be extracted to ${datarootdir}/locale and
 it needs datarootdir=/usr/share in case configure.ac is used
@@ -203,12 +311,66 @@ index cb4dd8d1..34c8f136 100644
  desktop_DATA = org.freedesktop.IBus.Setup.desktop
  desktopdir = $(datadir)/applications
 -- 
-2.20.1
+2.21.0
+
+From cc849c20d4dff31f6f88f93789790759bf087b77 Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Tue, 23 Apr 2019 17:56:20 +0900
+Subject: [PATCH 06/27] NEWS: Add shortlog
+
+Update Makefile.am to insert shortlog in NEWS
+Update po/Makevars to add multiple COPYRIGHT_HOLDER
+---
+ Makefile.am | 7 +++++--
+ po/Makevars | 3 ++-
+ 2 files changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index cf7460d6..9ff786dc 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -3,8 +3,8 @@
+ # ibus - The Input Bus
+ #
+ # Copyright (c) 2007-2016 Peng Huang <shawn.p.huang@gmail.com>
+-# Copyright (c) 2015-2017 Takao Fujiwara <takao.fujiwara1@gmail.com>
+-# Copyright (c) 2007-2017 Red Hat, Inc.
++# Copyright (c) 2015-2019 Takao Fujiwara <takao.fujiwara1@gmail.com>
++# Copyright (c) 2007-2019 Red Hat, Inc.
+ #
+ # This library is free software; you can redistribute it and/or
+ # modify it under the terms of the GNU Lesser General Public
+@@ -103,6 +103,9 @@ dist-hook:
+ "$(IBUS_MAJOR_VERSION).$(IBUS_MINOR_VERSION).$$IBUS_PREV_MICRO_VERSION"; \
+ 		echo "Changes in IBus $(IBUS_VERSION)" > $(distdir)/NEWS; \
+ 		echo "" >> $(distdir)/NEWS; \
++		git shortlog $$IBUS_PREV_VERSION...$(IBUS_VERSION) \
++		        >> $(distdir)/NEWS; \
++		echo "" >> $(distdir)/NEWS; \
+ 		git log $$IBUS_PREV_VERSION...$(IBUS_VERSION) --reverse \
+ 		        --pretty=format:'%s (%an) %h' >> $(distdir)/NEWS; \
+ 	fi
+diff --git a/po/Makevars b/po/Makevars
+index d3fbeab2..1d16cc98 100644
+--- a/po/Makevars
++++ b/po/Makevars
+@@ -20,7 +20,8 @@ XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=C_:1c,2
+ # or entity, or to disclaim their copyright.  The empty string stands for
+ # the public domain; in this case the translators are expected to disclaim
+ # their copyright.
+-COPYRIGHT_HOLDER = Peng Huang <shawn.p.huang@gmail.com>
++COPYRIGHT_HOLDER = Peng Huang <shawn.p.huang@gmail.com> \
++Takao Fujiwara <takao.fujiwara1@gmail.com>
+ 
+ # This is the email address or URL to which the translators shall report
+ # bugs in the untranslated strings:
+-- 
+2.21.0
 
 From 1c54fea645b2ec3a385d492e4ca30a70dbb87c3a Mon Sep 17 00:00:00 2001
 From: fujiwarat <takao.fujiwara1@gmail.com>
 Date: Tue, 23 Apr 2019 18:44:45 +0900
-Subject: [PATCH] data/its: Add ibus.its for IME's component files
+Subject: [PATCH 07/27] data/its: Add ibus.its for IME's component files
 
 IBusEngineDesc has translatable strings in longname and
 description tags and they needs to be extracted by xgettext.
@@ -331,32 +493,205 @@ index 00000000..5a73798b
 +  </locatingRule>
 +</locatingRules>
 -- 
-2.20.1
+2.21.0
 
-From cebe7a9553de69943b955ec99285f74961c9ee4e Mon Sep 17 00:00:00 2001
+From 91a256163427f04eb7763196b4ffe553911d2e01 Mon Sep 17 00:00:00 2001
+From: Gunnar Hjalmarsson <gunnarhj@users.noreply.github.com>
+Date: Tue, 7 May 2019 19:42:28 +0900
+Subject: [PATCH 08/27] bus: Indistinguishable address of ibus-daemon
+
+BUG=https://github.com/ibus/ibus/issues/2095
+---
+ bus/global.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/bus/global.c b/bus/global.c
+index f147cd6f..2ba8b2a7 100644
+--- a/bus/global.c
++++ b/bus/global.c
+@@ -24,7 +24,7 @@
+ #include "global.h"
+ 
+ gchar **g_argv = NULL;
+-gchar *g_address = "unix:tmpdir=/tmp";
++gchar *g_address = "unix:tmpdir=/tmp/ibus";
+ gchar *g_cache = "auto";
+ gboolean g_mempro = FALSE;
+ gboolean g_verbose = FALSE;
+-- 
+2.21.0
+
+From 05a10950d635602fb3fcf4ed0021aa0b15dbd698 Mon Sep 17 00:00:00 2001
 From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Thu, 9 May 2019 15:49:21 +0900
-Subject: [PATCH] client/gtk2: Keep preedit cursor_pos and visible in clearing
- preedit text
+Date: Thu, 9 May 2019 15:49:09 +0900
+Subject: [PATCH 09/27] src: Make ISO 639 language names with title
 
-Clear the preedit_string but keep the preedit_cursor_pos and
-preedit_visible because a time lag could happen, firefox commit
-the preedit text before the preedit text is cleared and it cause
-a double commits of the Hangul preedit in firefox if the preedit
-would be located on the URL bar and click on anywhere of firefox
-out of the URL bar.
+Danish translations are small in iso-codes-iso-639-2-da.po for the
+genral usage but the users ask the title format on UI.
+Now ibus_get_language_name() and ibus_get_untranslated_language_name()
+return the dynamic allocation instead of the static characters
+to make the capital character.
+
+BUG=https://github.com/ibus/ibus/issues/2079
 ---
- client/gtk2/ibusimcontext.c | 12 ++++++++++--
- 1 file changed, 10 insertions(+), 2 deletions(-)
+ src/ibusutil.c | 63 ++++++++++++++++++++++++++++++++++++++++++--------
+ src/ibusutil.h |  8 +++----
+ 2 files changed, 58 insertions(+), 13 deletions(-)
 
-diff --git a/client/gtk2/ibusimcontext.c b/client/gtk2/ibusimcontext.c
-index 264a747a..5e3457ba 100644
---- a/client/gtk2/ibusimcontext.c
-+++ b/client/gtk2/ibusimcontext.c
-@@ -881,10 +881,18 @@ ibus_im_context_clear_preedit_text (IBusIMContext *ibusimcontext)
-         ibusimcontext->preedit_mode == IBUS_ENGINE_PREEDIT_COMMIT) {
-         preedit_string = g_strdup (ibusimcontext->preedit_string);
-     }
+diff --git a/src/ibusutil.c b/src/ibusutil.c
+index fd1da006..9d003e2e 100644
+--- a/src/ibusutil.c
++++ b/src/ibusutil.c
+@@ -2,7 +2,7 @@
+ /* vim:set et sts=4: */
+ /* bus - The Input Bus
+  * Copyright (C) 2008-2015 Peng Huang <shawn.p.huang@gmail.com>
+- * Copyright (C) 2010-2017 Takao Fujiwara <takao.fujiwara1@gmail.com>
++ * Copyright (C) 2010-2018 Takao Fujiwara <takao.fujiwara1@gmail.com>
+  * Copyright (C) 2008-2016 Red Hat, Inc.
+  *
+  * This library is free software; you can redistribute it and/or
+@@ -125,8 +125,8 @@ _load_lang()
+     ibus_xml_free (node);
+ }
+ 
+-const gchar *
+-ibus_get_untranslated_language_name (const gchar *_locale)
++const static gchar *
++ibus_get_untranslated_raw_language_name (const gchar *_locale)
+ {
+     const gchar *retval;
+     gchar *p = NULL;
+@@ -148,19 +148,64 @@ ibus_get_untranslated_language_name (const gchar *_locale)
+         return "Other";
+ }
+ 
+-const gchar *
++static char *
++get_first_item_in_semicolon_list (const char *list)
++{
++        char **items;
++        char  *item;
++
++        items = g_strsplit (list, "; ", 2);
++
++        item = g_strdup (items[0]);
++        g_strfreev (items);
++
++        return item;
++}
++
++static char *
++capitalize_utf8_string (const char *str)
++{
++    char first[8] = { 0 };
++
++    if (!str)
++        return NULL;
++
++    g_unichar_to_utf8 (g_unichar_totitle (g_utf8_get_char (str)), first);
++
++    return g_strconcat (first, g_utf8_offset_to_pointer (str, 1), NULL);
++}
++
++gchar *
++ibus_get_untranslated_language_name (const gchar *_locale)
++{
++    const gchar *raw = ibus_get_untranslated_raw_language_name (_locale);
++    gchar *tmp = get_first_item_in_semicolon_list (raw);
++    gchar *retval = capitalize_utf8_string (tmp);
++    g_free (tmp);
++    return retval;
++}
++
++gchar *
+ ibus_get_language_name (const gchar *_locale)
+ {
+-    const gchar *retval = ibus_get_untranslated_language_name (_locale);
++    const gchar *raw = ibus_get_untranslated_raw_language_name (_locale);
++    const gchar *translation = NULL;
++    gchar *tmp;
++    gchar *retval;
+ 
+ #ifdef ENABLE_NLS
+-    if (g_strcmp0 (retval, "Other") == 0)
+-        return dgettext (GETTEXT_PACKAGE, N_("Other"));
++    if (g_strcmp0 (raw, "Other") == 0)
++        return g_strdup (dgettext (GETTEXT_PACKAGE, N_("Other")));
+     else
+-        return dgettext ("iso_639-3", retval);
++        translation = dgettext ("iso_639-3", raw);
+ #else
+-    return retval;
++    translation = raw;
+ #endif
++
++    tmp = get_first_item_in_semicolon_list (translation);
++    retval = capitalize_utf8_string (tmp);
++    g_free (tmp);
++    return retval;
+ }
+ 
+ void
+diff --git a/src/ibusutil.h b/src/ibusutil.h
+index 226dd7a8..795365f6 100644
+--- a/src/ibusutil.h
++++ b/src/ibusutil.h
+@@ -2,8 +2,8 @@
+ /* vim:set et sts=4: */
+ /* bus - The Input Bus
+  * Copyright (C) 2008-2015 Peng Huang <shawn.p.huang@gmail.com>
+- * Copyright (C) 2010-2017 Takao Fujiwara <takao.fujiwara1@gmail.com>
+- * Copyright (C) 2008-2016 Red Hat, Inc.
++ * Copyright (C) 2010-2018 Takao Fujiwara <takao.fujiwara1@gmail.com>
++ * Copyright (C) 2008-2018 Red Hat, Inc.
+  *
+  * This library is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+@@ -42,7 +42,7 @@
+  *
+  * Returns: untranslated language name
+  */
+-const gchar *    ibus_get_untranslated_language_name
++gchar *          ibus_get_untranslated_language_name
+                                                 (const gchar    *_locale);
+ 
+ /**
+@@ -51,6 +51,6 @@ const gchar *    ibus_get_untranslated_language_name
+  *
+  * Returns: translated language name
+  */
+-const gchar *    ibus_get_language_name         (const gchar    *_locale);
++gchar *          ibus_get_language_name         (const gchar    *_locale);
+ 
+ #endif
+-- 
+2.21.0
+
+From cebe7a9553de69943b955ec99285f74961c9ee4e Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Thu, 9 May 2019 15:49:21 +0900
+Subject: [PATCH 10/27] client/gtk2: Keep preedit cursor_pos and visible in
+ clearing preedit text
+
+Clear the preedit_string but keep the preedit_cursor_pos and
+preedit_visible because a time lag could happen, firefox commit
+the preedit text before the preedit text is cleared and it cause
+a double commits of the Hangul preedit in firefox if the preedit
+would be located on the URL bar and click on anywhere of firefox
+out of the URL bar.
+---
+ client/gtk2/ibusimcontext.c | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/client/gtk2/ibusimcontext.c b/client/gtk2/ibusimcontext.c
+index 264a747a..5e3457ba 100644
+--- a/client/gtk2/ibusimcontext.c
++++ b/client/gtk2/ibusimcontext.c
+@@ -881,10 +881,18 @@ ibus_im_context_clear_preedit_text (IBusIMContext *ibusimcontext)
+         ibusimcontext->preedit_mode == IBUS_ENGINE_PREEDIT_COMMIT) {
+         preedit_string = g_strdup (ibusimcontext->preedit_string);
+     }
 +
 +    /* Clear the preedit_string but keep the preedit_cursor_pos and
 +     * preedit_visible because a time lag could happen, firefox commit
@@ -375,5 +710,14225 @@ index 264a747a..5e3457ba 100644
                                            ibusimcontext);
      if (preedit_string) {
 -- 
-2.20.1
+2.21.0
+
+From b59f7f823b7b2051e4ca31834f9299a72f01b339 Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Thu, 9 May 2019 17:02:21 +0900
+Subject: [PATCH 14/27] src: Support 32bit and multiple compose outputs
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Compose file in en_US.UTF-8 now includes wide codepoints more than
+U+FFFF likes '<Multi_key> <F> <U> : "🖕"  U1F595' but the current
+gtk_compose_seqs_compact[] is a guint16 array.
+To support 32bit and multiple compose outputs, the array is now
+separated to 16bit and 32bit arrays and 32bit array is also
+separated to gtk_compose_seqs_compact_32bit_first[] for 16bit
+key sequences and gtk_compose_seqs_compact_32bit_second[] for
+32bit output values.
+
+BUG=https://github.com/ibus/ibus/issues/2074
+---
+ src/gtkimcontextsimpleseqs.h  | 9912 +++++++++++++++++----------------
+ src/ibuscomposetable.h        |   13 +-
+ src/ibusenginesimple.c        |  166 +-
+ src/ibusenginesimpleprivate.h |    8 +-
+ 4 files changed, 5380 insertions(+), 4719 deletions(-)
+
+diff --git a/src/gtkimcontextsimpleseqs.h b/src/gtkimcontextsimpleseqs.h
+index 632391a1..ffa5f125 100644
+--- a/src/gtkimcontextsimpleseqs.h
++++ b/src/gtkimcontextsimpleseqs.h
+@@ -94,4680 +94,5244 @@ IBUS_KEY_dead_belowdiaeresis, 3705, 3705, 3708, 3708, 3708,
+ IBUS_KEY_dead_belowcomma, 3708, 3722, 3722, 3722, 3722, 
+ IBUS_KEY_dead_currency, 3722, 3820, 3826, 3826, 3826, 
+ IBUS_KEY_dead_greek, 3826, 3928, 3952, 3952, 3952, 
+-IBUS_KEY_Multi_key, 3952, 3952, 10348, 14044, 15919, 
+-IBUS_KEY_Greek_iota, 0x0390, 
+-IBUS_KEY_Greek_upsilon, 0x03B0, 
+-IBUS_KEY_space, 0x0060, 
+-IBUS_KEY_V, 0x01DB, 
+-IBUS_KEY_v, 0x01DC, 
+-IBUS_KEY_nobreakspace, 0x0300, 
+-IBUS_KEY_Abreve, 0x1EB0, 
+-IBUS_KEY_abreve, 0x1EB1, 
+-IBUS_KEY_Emacron, 0x1E14, 
+-IBUS_KEY_emacron, 0x1E15, 
+-IBUS_KEY_Omacron, 0x1E50, 
+-IBUS_KEY_omacron, 0x1E51, 
+-IBUS_KEY_Cyrillic_ie, 0x0450, 
+-IBUS_KEY_Cyrillic_i, 0x045D, 
+-IBUS_KEY_Cyrillic_IE, 0x0400, 
+-IBUS_KEY_Cyrillic_I, 0x040D, 
+-IBUS_KEY_Greek_iotadieresis, 0x1FD2, 
+-IBUS_KEY_Greek_upsilondieresis, 0x1FE2, 
+-IBUS_KEY_Greek_ALPHA, 0x1FBA, 
+-IBUS_KEY_Greek_EPSILON, 0x1FC8, 
+-IBUS_KEY_Greek_ETA, 0x1FCA, 
+-IBUS_KEY_Greek_IOTA, 0x1FDA, 
+-IBUS_KEY_Greek_OMICRON, 0x1FF8, 
+-IBUS_KEY_Greek_UPSILON, 0x1FEA, 
+-IBUS_KEY_Greek_OMEGA, 0x1FFA, 
+-IBUS_KEY_Greek_alpha, 0x1F70, 
+-IBUS_KEY_Greek_epsilon, 0x1F72, 
+-IBUS_KEY_Greek_eta, 0x1F74, 
+-IBUS_KEY_Greek_iota, 0x1F76, 
+-IBUS_KEY_Greek_omicron, 0x1F78, 
+-IBUS_KEY_Greek_upsilon, 0x1F7A, 
+-IBUS_KEY_Greek_omega, 0x1F7C, 
+-IBUS_KEY_dead_grave, 0x0060, 
+-IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_iota, 0x1FD2, 
+-IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_upsilon, 0x1FE2, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F0A, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_EPSILON, 0x1F1A, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F2A, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_IOTA, 0x1F3A, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMICRON, 0x1F4A, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1F6A, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F02, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_epsilon, 0x1F12, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F22, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_iota, 0x1F32, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_omicron, 0x1F42, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_upsilon, 0x1F52, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1F62, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F0B, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_EPSILON, 0x1F1B, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F2B, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_IOTA, 0x1F3B, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMICRON, 0x1F4B, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_UPSILON, 0x1F5B, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1F6B, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F03, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_epsilon, 0x1F13, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F23, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_iota, 0x1F33, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omicron, 0x1F43, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_upsilon, 0x1F53, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1F63, 
+-IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01DB, 
+-IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01DC, 
+-IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota, 0x1FD2, 
+-IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon, 0x1FE2, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F0B, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_EPSILON, 0x1F1B, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F2B, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA, 0x1F3B, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMICRON, 0x1F4B, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON, 0x1F5B, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1F6B, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F03, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_epsilon, 0x1F13, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F23, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_iota, 0x1F33, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omicron, 0x1F43, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon, 0x1F53, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1F63, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F0A, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_EPSILON, 0x1F1A, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F2A, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA, 0x1F3A, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMICRON, 0x1F4A, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1F6A, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F02, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_epsilon, 0x1F12, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F22, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_iota, 0x1F32, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omicron, 0x1F42, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon, 0x1F52, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1F62, 
+-IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_O, 0x1EDC, 
+-IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_U, 0x1EEA, 
+-IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_o, 0x1EDD, 
+-IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_u, 0x1EEB, 
+-IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_A, 0x1EB0, 
+-IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_a, 0x1EB1, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_A, 0x1EA6, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_E, 0x1EC0, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_O, 0x1ED2, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_a, 0x1EA7, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_e, 0x1EC1, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_o, 0x1ED3, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_E, 0x1E14, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_O, 0x1E50, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_e, 0x1E15, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_o, 0x1E51, 
+-IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_A, 0x1EB0, 
+-IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_a, 0x1EB1, 
+-IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_E, 0x1E14, 
+-IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_O, 0x1E50, 
+-IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_e, 0x1E15, 
+-IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_o, 0x1E51, 
+-IBUS_KEY_space, 0x0027, 
+-IBUS_KEY_V, 0x01D7, 
+-IBUS_KEY_v, 0x01D8, 
+-IBUS_KEY_nobreakspace, 0x0301, 
+-IBUS_KEY_Abreve, 0x1EAE, 
+-IBUS_KEY_abreve, 0x1EAF, 
+-IBUS_KEY_Emacron, 0x1E16, 
+-IBUS_KEY_emacron, 0x1E17, 
+-IBUS_KEY_Utilde, 0x1E78, 
+-IBUS_KEY_omacron, 0x1E53, 
+-IBUS_KEY_utilde, 0x1E79, 
+-IBUS_KEY_Cyrillic_ghe, 0x0453, 
+-IBUS_KEY_Cyrillic_ka, 0x045C, 
+-IBUS_KEY_Cyrillic_GHE, 0x0403, 
+-IBUS_KEY_Cyrillic_KA, 0x040C, 
+-IBUS_KEY_Greek_iotadieresis, 0x0390, 
+-IBUS_KEY_Greek_upsilondieresis, 0x03B0, 
+-IBUS_KEY_Greek_ALPHA, 0x0386, 
+-IBUS_KEY_Greek_EPSILON, 0x0388, 
+-IBUS_KEY_Greek_ETA, 0x0389, 
+-IBUS_KEY_Greek_IOTA, 0x038A, 
+-IBUS_KEY_Greek_OMICRON, 0x038C, 
+-IBUS_KEY_Greek_UPSILON, 0x038E, 
+-IBUS_KEY_Greek_OMEGA, 0x038F, 
+-IBUS_KEY_Greek_alpha, 0x03AC, 
+-IBUS_KEY_Greek_epsilon, 0x03AD, 
+-IBUS_KEY_Greek_eta, 0x03AE, 
+-IBUS_KEY_Greek_iota, 0x03AF, 
+-IBUS_KEY_Greek_omicron, 0x03CC, 
+-IBUS_KEY_Greek_upsilon, 0x03CD, 
+-IBUS_KEY_Greek_omega, 0x03CE, 
+-IBUS_KEY_dead_acute, 0x00B4, 
+-IBUS_KEY_dead_diaeresis, IBUS_KEY_space, 0x0385, 
+-IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_iota, 0x0390, 
+-IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_upsilon, 0x03B0, 
+-IBUS_KEY_dead_stroke, IBUS_KEY_O, 0x01FE, 
+-IBUS_KEY_dead_stroke, IBUS_KEY_o, 0x01FF, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F0C, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_EPSILON, 0x1F1C, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F2C, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_IOTA, 0x1F3C, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMICRON, 0x1F4C, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1F6C, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F04, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_epsilon, 0x1F14, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F24, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_iota, 0x1F34, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_omicron, 0x1F44, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_upsilon, 0x1F54, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1F64, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F0D, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_EPSILON, 0x1F1D, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F2D, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_IOTA, 0x1F3D, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMICRON, 0x1F4D, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_UPSILON, 0x1F5D, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1F6D, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F05, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_epsilon, 0x1F15, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F25, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_iota, 0x1F35, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omicron, 0x1F45, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_upsilon, 0x1F55, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1F65, 
+-IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_I, 0x1E2E, 
+-IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01D7, 
+-IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_i, 0x1E2F, 
+-IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01D8, 
+-IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota, 0x0390, 
+-IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon, 0x03B0, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F0D, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_EPSILON, 0x1F1D, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F2D, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA, 0x1F3D, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMICRON, 0x1F4D, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON, 0x1F5D, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1F6D, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F05, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_epsilon, 0x1F15, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F25, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_iota, 0x1F35, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omicron, 0x1F45, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon, 0x1F55, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1F65, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F0C, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_EPSILON, 0x1F1C, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F2C, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA, 0x1F3C, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMICRON, 0x1F4C, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1F6C, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F04, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_epsilon, 0x1F14, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F24, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_iota, 0x1F34, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omicron, 0x1F44, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon, 0x1F54, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1F64, 
+-IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_O, 0x1EDA, 
+-IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_U, 0x1EE8, 
+-IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_o, 0x1EDB, 
+-IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_u, 0x1EE9, 
+-IBUS_KEY_Multi_key, IBUS_KEY_comma, IBUS_KEY_C, 0x1E08, 
+-IBUS_KEY_Multi_key, IBUS_KEY_comma, IBUS_KEY_c, 0x1E09, 
+-IBUS_KEY_Multi_key, IBUS_KEY_slash, IBUS_KEY_O, 0x01FE, 
+-IBUS_KEY_Multi_key, IBUS_KEY_slash, IBUS_KEY_o, 0x01FF, 
+-IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_A, 0x1EAE, 
+-IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_a, 0x1EAF, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_A, 0x1EA4, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_E, 0x1EBE, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_O, 0x1ED0, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_a, 0x1EA5, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_e, 0x1EBF, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_o, 0x1ED1, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_E, 0x1E16, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_O, 0x1E52, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_e, 0x1E17, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_o, 0x1E53, 
+-IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_A, 0x1EAE, 
+-IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_a, 0x1EAF, 
+-IBUS_KEY_Multi_key, IBUS_KEY_o, IBUS_KEY_A, 0x01FA, 
+-IBUS_KEY_Multi_key, IBUS_KEY_o, IBUS_KEY_a, 0x01FB, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_O, 0x1E4C, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_U, 0x1E78, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_o, 0x1E4D, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_u, 0x1E79, 
+-IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_E, 0x1E16, 
+-IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_O, 0x1E52, 
+-IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_e, 0x1E17, 
+-IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_o, 0x1E53, 
+-IBUS_KEY_Multi_key, IBUS_KEY_cedilla, IBUS_KEY_C, 0x1E08, 
+-IBUS_KEY_Multi_key, IBUS_KEY_cedilla, IBUS_KEY_c, 0x1E09, 
+-IBUS_KEY_Multi_key, IBUS_KEY_KP_Divide, IBUS_KEY_O, 0x01FE, 
+-IBUS_KEY_Multi_key, IBUS_KEY_KP_Divide, IBUS_KEY_o, 0x01FF, 
+-IBUS_KEY_space, 0x005E, 
+-IBUS_KEY_parenleft, 0x207D, 
+-IBUS_KEY_parenright, 0x207E, 
+-IBUS_KEY_plus, 0x207A, 
+-IBUS_KEY_minus, 0x207B, 
+-IBUS_KEY_0, 0x2070, 
+-IBUS_KEY_1, 0x00B9, 
+-IBUS_KEY_2, 0x00B2, 
+-IBUS_KEY_3, 0x00B3, 
+-IBUS_KEY_4, 0x2074, 
+-IBUS_KEY_5, 0x2075, 
+-IBUS_KEY_6, 0x2076, 
+-IBUS_KEY_7, 0x2077, 
+-IBUS_KEY_8, 0x2078, 
+-IBUS_KEY_9, 0x2079, 
+-IBUS_KEY_equal, 0x207C, 
+-IBUS_KEY_nobreakspace, 0x0302, 
+-IBUS_KEY_Agrave, 0x1EA6, 
+-IBUS_KEY_Aacute, 0x1EA4, 
+-IBUS_KEY_Atilde, 0x1EAA, 
+-IBUS_KEY_Egrave, 0x1EC0, 
+-IBUS_KEY_Eacute, 0x1EBE, 
+-IBUS_KEY_Ograve, 0x1ED2, 
+-IBUS_KEY_Oacute, 0x1ED0, 
+-IBUS_KEY_Otilde, 0x1ED6, 
+-IBUS_KEY_agrave, 0x1EA7, 
+-IBUS_KEY_aacute, 0x1EA5, 
+-IBUS_KEY_atilde, 0x1EAB, 
+-IBUS_KEY_egrave, 0x1EC1, 
+-IBUS_KEY_eacute, 0x1EBF, 
+-IBUS_KEY_ograve, 0x1ED3, 
+-IBUS_KEY_oacute, 0x1ED1, 
+-IBUS_KEY_otilde, 0x1ED7, 
+-0x2212, 0x207B, 
+-0x4E00, 0x3192, 
+-0x4E01, 0x319C, 
+-0x4E09, 0x3194, 
+-0x4E0A, 0x3196, 
+-0x4E0B, 0x3198, 
+-0x4E19, 0x319B, 
+-0x4E2D, 0x3197, 
+-0x4E59, 0x319A, 
+-0x4E8C, 0x3193, 
+-0x4EBA, 0x319F, 
+-0x56DB, 0x3195, 
+-0x5730, 0x319E, 
+-0x5929, 0x319D, 
+-0x7532, 0x3199, 
+-IBUS_KEY_dead_circumflex, 0x005E, 
+-IBUS_KEY_KP_Space, 0x00B2, 
+-IBUS_KEY_KP_Add, 0x207A, 
+-IBUS_KEY_KP_0, 0x2070, 
+-IBUS_KEY_KP_1, 0x00B9, 
+-IBUS_KEY_KP_2, 0x00B2, 
+-IBUS_KEY_KP_3, 0x00B3, 
+-IBUS_KEY_KP_4, 0x2074, 
+-IBUS_KEY_KP_5, 0x2075, 
+-IBUS_KEY_KP_6, 0x2076, 
+-IBUS_KEY_KP_7, 0x2077, 
+-IBUS_KEY_KP_8, 0x2078, 
+-IBUS_KEY_KP_9, 0x2079, 
+-IBUS_KEY_KP_Equal, 0x207C, 
+-IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_A, 0x1EAC, 
+-IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_E, 0x1EC6, 
+-IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_O, 0x1ED8, 
+-IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_a, 0x1EAD, 
+-IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_e, 0x1EC7, 
+-IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_o, 0x1ED9, 
+-IBUS_KEY_Multi_key, IBUS_KEY_S, IBUS_KEY_M, 0x2120, 
+-IBUS_KEY_Multi_key, IBUS_KEY_S, IBUS_KEY_m, 0x2120, 
+-IBUS_KEY_Multi_key, IBUS_KEY_T, IBUS_KEY_M, 0x2122, 
+-IBUS_KEY_Multi_key, IBUS_KEY_T, IBUS_KEY_m, 0x2122, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_a, 0x00AA, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_h, 0x02B0, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_i, 0x2071, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_j, 0x02B2, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_l, 0x02E1, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_n, 0x207F, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_o, 0x00BA, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_r, 0x02B3, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_s, 0x02E2, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_w, 0x02B7, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_x, 0x02E3, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_y, 0x02B8, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underscore, 0x0263, 0x02E0, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underscore, 0x0266, 0x02B1, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underscore, 0x0279, 0x02B4, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underscore, 0x027B, 0x02B5, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underscore, 0x0281, 0x02B6, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underscore, 0x0295, 0x02E4, 
+-IBUS_KEY_Multi_key, IBUS_KEY_s, IBUS_KEY_M, 0x2120, 
+-IBUS_KEY_Multi_key, IBUS_KEY_s, IBUS_KEY_m, 0x2120, 
+-IBUS_KEY_Multi_key, IBUS_KEY_t, IBUS_KEY_M, 0x2122, 
+-IBUS_KEY_Multi_key, IBUS_KEY_t, IBUS_KEY_m, 0x2122, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_a, 0x00AA, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_h, 0x02B0, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_i, 0x2071, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_j, 0x02B2, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_l, 0x02E1, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_n, 0x207F, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_o, 0x00BA, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_r, 0x02B3, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_s, 0x02E2, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_w, 0x02B7, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_x, 0x02E3, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_y, 0x02B8, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underbar, 0x0263, 0x02E0, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underbar, 0x0266, 0x02B1, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underbar, 0x0279, 0x02B4, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underbar, 0x027B, 0x02B5, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underbar, 0x0281, 0x02B6, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underbar, 0x0295, 0x02E4, 
+-IBUS_KEY_space, 0x007E, 
+-IBUS_KEY_less, 0x2272, 
+-IBUS_KEY_equal, 0x2243, 
+-IBUS_KEY_greater, 0x2273, 
+-IBUS_KEY_nobreakspace, 0x0303, 
+-IBUS_KEY_Oacute, 0x1E4C, 
+-IBUS_KEY_Odiaeresis, 0x1E4E, 
+-IBUS_KEY_Uacute, 0x1E78, 
+-IBUS_KEY_oacute, 0x1E4D, 
+-IBUS_KEY_odiaeresis, 0x1E4F, 
+-IBUS_KEY_uacute, 0x1E79, 
+-IBUS_KEY_Abreve, 0x1EB4, 
+-IBUS_KEY_abreve, 0x1EB5, 
+-IBUS_KEY_Omacron, 0x022C, 
+-IBUS_KEY_omacron, 0x022D, 
+-IBUS_KEY_Greek_iotadieresis, 0x1FD7, 
+-IBUS_KEY_Greek_upsilondieresis, 0x1FE7, 
+-IBUS_KEY_Greek_alpha, 0x1FB6, 
+-IBUS_KEY_Greek_eta, 0x1FC6, 
+-IBUS_KEY_Greek_iota, 0x1FD6, 
+-IBUS_KEY_Greek_upsilon, 0x1FE6, 
+-IBUS_KEY_Greek_omega, 0x1FF6, 
+-0x1F00, 0x1F06, 
+-0x1F01, 0x1F07, 
+-0x1F08, 0x1F0E, 
+-0x1F09, 0x1F0F, 
+-0x1F20, 0x1F26, 
+-0x1F21, 0x1F27, 
+-0x1F28, 0x1F2E, 
+-0x1F29, 0x1F2F, 
+-0x1F30, 0x1F36, 
+-0x1F31, 0x1F37, 
+-0x1F38, 0x1F3E, 
+-0x1F39, 0x1F3F, 
+-0x1F50, 0x1F56, 
+-0x1F51, 0x1F57, 
+-0x1F59, 0x1F5F, 
+-0x1F60, 0x1F66, 
+-0x1F61, 0x1F67, 
+-0x1F68, 0x1F6E, 
+-0x1F69, 0x1F6F, 
+-IBUS_KEY_dead_tilde, 0x007E, 
+-IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_iota, 0x1FD7, 
+-IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_upsilon, 0x1FE7, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F0E, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F2E, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_IOTA, 0x1F3E, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1F6E, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F06, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F26, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_iota, 0x1F36, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_upsilon, 0x1F56, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1F66, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F0F, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F2F, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_IOTA, 0x1F3F, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_UPSILON, 0x1F5F, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1F6F, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F07, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F27, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_iota, 0x1F37, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_upsilon, 0x1F57, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1F67, 
+-IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota, 0x1FD7, 
+-IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon, 0x1FE7, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F0F, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F2F, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA, 0x1F3F, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON, 0x1F5F, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1F6F, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F07, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F27, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_iota, 0x1F37, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon, 0x1F57, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1F67, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F0E, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F2E, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA, 0x1F3E, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1F6E, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F06, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F26, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_iota, 0x1F36, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon, 0x1F56, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1F66, 
+-IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_O, 0x1EE0, 
+-IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_U, 0x1EEE, 
+-IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_o, 0x1EE1, 
+-IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_u, 0x1EEF, 
+-IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_A, 0x1EB4, 
+-IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_a, 0x1EB5, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_A, 0x1EAA, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_E, 0x1EC4, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_O, 0x1ED6, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_a, 0x1EAB, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_e, 0x1EC5, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_o, 0x1ED7, 
+-IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_A, 0x1EB4, 
+-IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_a, 0x1EB5, 
+-IBUS_KEY_space, 0x00AF, 
+-IBUS_KEY_V, 0x01D5, 
+-IBUS_KEY_v, 0x01D6, 
+-IBUS_KEY_nobreakspace, 0x0304, 
+-IBUS_KEY_Egrave, 0x1E14, 
+-IBUS_KEY_Eacute, 0x1E16, 
+-IBUS_KEY_Ograve, 0x1E50, 
+-IBUS_KEY_Oacute, 0x1E52, 
+-IBUS_KEY_egrave, 0x1E15, 
+-IBUS_KEY_eacute, 0x1E17, 
+-IBUS_KEY_ograve, 0x1E51, 
+-IBUS_KEY_oacute, 0x1E53, 
+-IBUS_KEY_Cyrillic_i, 0x04E3, 
+-IBUS_KEY_Cyrillic_u, 0x04EF, 
+-IBUS_KEY_Cyrillic_I, 0x04E2, 
+-IBUS_KEY_Cyrillic_U, 0x04EE, 
+-IBUS_KEY_Greek_ALPHA, 0x1FB9, 
+-IBUS_KEY_Greek_IOTA, 0x1FD9, 
+-IBUS_KEY_Greek_UPSILON, 0x1FE9, 
+-IBUS_KEY_Greek_alpha, 0x1FB1, 
+-IBUS_KEY_Greek_iota, 0x1FD1, 
+-IBUS_KEY_Greek_upsilon, 0x1FE1, 
+-IBUS_KEY_dead_macron, 0x00AF, 
+-IBUS_KEY_dead_greek, IBUS_KEY_A, 0x1FB9, 
+-IBUS_KEY_dead_greek, IBUS_KEY_I, 0x1FD9, 
+-IBUS_KEY_dead_greek, IBUS_KEY_U, 0x1FE9, 
+-IBUS_KEY_dead_greek, IBUS_KEY_a, 0x1FB1, 
+-IBUS_KEY_dead_greek, IBUS_KEY_i, 0x1FD1, 
+-IBUS_KEY_dead_greek, IBUS_KEY_u, 0x1FE1, 
+-IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_L, 0x1E38, 
+-IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_R, 0x1E5C, 
+-IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_l, 0x1E39, 
+-IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_r, 0x1E5D, 
+-IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_A, 0x01DE, 
+-IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_O, 0x022A, 
+-IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01D5, 
+-IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_a, 0x01DF, 
+-IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_o, 0x022B, 
+-IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01D6, 
+-IBUS_KEY_Multi_key, IBUS_KEY_period, IBUS_KEY_A, 0x01E0, 
+-IBUS_KEY_Multi_key, IBUS_KEY_period, IBUS_KEY_O, 0x0230, 
+-IBUS_KEY_Multi_key, IBUS_KEY_period, IBUS_KEY_a, 0x01E1, 
+-IBUS_KEY_Multi_key, IBUS_KEY_period, IBUS_KEY_o, 0x0231, 
+-IBUS_KEY_Multi_key, IBUS_KEY_semicolon, IBUS_KEY_O, 0x01EC, 
+-IBUS_KEY_Multi_key, IBUS_KEY_semicolon, IBUS_KEY_o, 0x01ED, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_O, 0x022C, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_o, 0x022D, 
+-IBUS_KEY_space, 0x02D8, 
+-IBUS_KEY_nobreakspace, 0x0306, 
+-IBUS_KEY_Agrave, 0x1EB0, 
+-IBUS_KEY_Aacute, 0x1EAE, 
+-IBUS_KEY_Atilde, 0x1EB4, 
+-IBUS_KEY_agrave, 0x1EB1, 
+-IBUS_KEY_aacute, 0x1EAF, 
+-IBUS_KEY_atilde, 0x1EB5, 
+-IBUS_KEY_Cyrillic_a, 0x04D1, 
+-IBUS_KEY_Cyrillic_ie, 0x04D7, 
+-IBUS_KEY_Cyrillic_i, 0x0439, 
+-IBUS_KEY_Cyrillic_u, 0x045E, 
+-IBUS_KEY_Cyrillic_zhe, 0x04C2, 
+-IBUS_KEY_Cyrillic_A, 0x04D0, 
+-IBUS_KEY_Cyrillic_IE, 0x04D6, 
+-IBUS_KEY_Cyrillic_I, 0x0419, 
+-IBUS_KEY_Cyrillic_U, 0x040E, 
+-IBUS_KEY_Cyrillic_ZHE, 0x04C1, 
+-IBUS_KEY_Greek_ALPHA, 0x1FB8, 
+-IBUS_KEY_Greek_IOTA, 0x1FD8, 
+-IBUS_KEY_Greek_UPSILON, 0x1FE8, 
+-IBUS_KEY_Greek_alpha, 0x1FB0, 
+-IBUS_KEY_Greek_iota, 0x1FD0, 
+-IBUS_KEY_Greek_upsilon, 0x1FE0, 
+-IBUS_KEY_dead_breve, 0x02D8, 
+-IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_A, 0x1EB6, 
+-IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_a, 0x1EB7, 
+-IBUS_KEY_Multi_key, IBUS_KEY_comma, IBUS_KEY_E, 0x1E1C, 
+-IBUS_KEY_Multi_key, IBUS_KEY_comma, IBUS_KEY_e, 0x1E1D, 
+-IBUS_KEY_Multi_key, IBUS_KEY_cedilla, IBUS_KEY_E, 0x1E1C, 
+-IBUS_KEY_Multi_key, IBUS_KEY_cedilla, IBUS_KEY_e, 0x1E1D, 
+-IBUS_KEY_space, 0x02D9, 
+-IBUS_KEY_L, 0x013F, 
+-IBUS_KEY_i, 0x0131, 
+-IBUS_KEY_j, 0x0237, 
+-IBUS_KEY_l, 0x0140, 
+-IBUS_KEY_nobreakspace, 0x0307, 
+-IBUS_KEY_Sacute, 0x1E64, 
+-IBUS_KEY_Scaron, 0x1E66, 
+-IBUS_KEY_sacute, 0x1E65, 
+-IBUS_KEY_scaron, 0x1E67, 
+-IBUS_KEY_Amacron, 0x01E0, 
+-IBUS_KEY_Omacron, 0x0230, 
+-IBUS_KEY_amacron, 0x01E1, 
+-IBUS_KEY_omacron, 0x0231, 
+-IBUS_KEY_dead_abovedot, 0x02D9, 
+-IBUS_KEY_dead_stroke, IBUS_KEY_j, 0x025F, 
+-IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_S, 0x1E68, 
+-IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_s, 0x1E69, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_S, 0x1E64, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_s, 0x1E65, 
+-IBUS_KEY_Multi_key, IBUS_KEY_c, IBUS_KEY_S, 0x1E66, 
+-IBUS_KEY_Multi_key, IBUS_KEY_c, IBUS_KEY_s, 0x1E67, 
+-IBUS_KEY_Multi_key, IBUS_KEY_f, IBUS_KEY_s, 0x1E9B, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_S, 0x1E64, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_s, 0x1E65, 
+-IBUS_KEY_space, 0x0022, 
+-IBUS_KEY_apostrophe, 0x0344, 
+-IBUS_KEY_nobreakspace, 0x0308, 
+-IBUS_KEY_acute, 0x0344, 
+-IBUS_KEY_Iacute, 0x1E2E, 
+-IBUS_KEY_Ugrave, 0x01DB, 
+-IBUS_KEY_Uacute, 0x01D7, 
+-IBUS_KEY_iacute, 0x1E2F, 
+-IBUS_KEY_ugrave, 0x01DC, 
+-IBUS_KEY_uacute, 0x01D8, 
+-0x01D3, 0x01D9, 
+-0x01D4, 0x01DA, 
+-IBUS_KEY_Amacron, 0x01DE, 
+-IBUS_KEY_Umacron, 0x1E7A, 
+-IBUS_KEY_amacron, 0x01DF, 
+-IBUS_KEY_omacron, 0x022B, 
+-IBUS_KEY_umacron, 0x1E7B, 
+-IBUS_KEY_Ukrainian_i, 0x0457, 
+-IBUS_KEY_Ukrainian_I, 0x0407, 
+-IBUS_KEY_Cyrillic_a, 0x04D3, 
+-IBUS_KEY_Cyrillic_ie, 0x0451, 
+-IBUS_KEY_Cyrillic_i, 0x04E5, 
+-IBUS_KEY_Cyrillic_o, 0x04E7, 
+-IBUS_KEY_Cyrillic_u, 0x04F1, 
+-IBUS_KEY_Cyrillic_zhe, 0x04DD, 
+-IBUS_KEY_Cyrillic_yeru, 0x04F9, 
+-IBUS_KEY_Cyrillic_ze, 0x04DF, 
+-IBUS_KEY_Cyrillic_e, 0x04ED, 
+-IBUS_KEY_Cyrillic_che, 0x04F5, 
+-IBUS_KEY_Cyrillic_A, 0x04D2, 
+-IBUS_KEY_Cyrillic_IE, 0x0401, 
+-IBUS_KEY_Cyrillic_I, 0x04E4, 
+-IBUS_KEY_Cyrillic_O, 0x04E6, 
+-IBUS_KEY_Cyrillic_U, 0x04F0, 
+-IBUS_KEY_Cyrillic_ZHE, 0x04DC, 
+-IBUS_KEY_Cyrillic_YERU, 0x04F8, 
+-IBUS_KEY_Cyrillic_ZE, 0x04DE, 
+-IBUS_KEY_Cyrillic_E, 0x04EC, 
+-IBUS_KEY_Cyrillic_CHE, 0x04F4, 
+-IBUS_KEY_Greek_IOTA, 0x03AA, 
+-IBUS_KEY_Greek_UPSILON, 0x03AB, 
+-IBUS_KEY_Greek_iota, 0x03CA, 
+-IBUS_KEY_Greek_upsilon, 0x03CB, 
+-IBUS_KEY_dead_diaeresis, 0x00A8, 
+-IBUS_KEY_dead_acute, IBUS_KEY_space, 0x0385, 
+-IBUS_KEY_dead_acute, IBUS_KEY_Greek_iota, 0x0390, 
+-IBUS_KEY_dead_acute, IBUS_KEY_Greek_upsilon, 0x03B0, 
+-IBUS_KEY_dead_belowdiaeresis, IBUS_KEY_equal, 0x2A77, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_U, 0x1E7A, 
+-IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_u, 0x1E7B, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_O, 0x1E4E, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_o, 0x1E4F, 
+-IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_U, 0x1E7A, 
+-IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_u, 0x1E7B, 
+-IBUS_KEY_space, 0x00B0, 
+-IBUS_KEY_nobreakspace, 0x030A, 
+-IBUS_KEY_Aacute, 0x01FA, 
+-IBUS_KEY_aacute, 0x01FB, 
+-IBUS_KEY_dead_abovering, 0x00B0, 
+-IBUS_KEY_space, 0x02DD, 
+-IBUS_KEY_nobreakspace, 0x030B, 
+-IBUS_KEY_Cyrillic_u, 0x04F3, 
+-IBUS_KEY_Cyrillic_U, 0x04F2, 
+-IBUS_KEY_dead_doubleacute, 0x02DD, 
+-IBUS_KEY_space, 0x02C7, 
+-IBUS_KEY_parenleft, 0x208D, 
+-IBUS_KEY_parenright, 0x208E, 
+-IBUS_KEY_plus, 0x208A, 
+-IBUS_KEY_minus, 0x208B, 
+-IBUS_KEY_0, 0x2080, 
+-IBUS_KEY_1, 0x2081, 
+-IBUS_KEY_2, 0x2082, 
+-IBUS_KEY_3, 0x2083, 
+-IBUS_KEY_4, 0x2084, 
+-IBUS_KEY_5, 0x2085, 
+-IBUS_KEY_6, 0x2086, 
+-IBUS_KEY_7, 0x2087, 
+-IBUS_KEY_8, 0x2088, 
+-IBUS_KEY_9, 0x2089, 
+-IBUS_KEY_equal, 0x208C, 
+-IBUS_KEY_V, 0x01D9, 
+-IBUS_KEY_v, 0x01DA, 
+-IBUS_KEY_nobreakspace, 0x030C, 
+-0x01F2, 0x01C5, 
+-IBUS_KEY_dead_caron, 0x02C7, 
+-IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01D9, 
+-IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01DA, 
+-IBUS_KEY_space, 0x00B8, 
+-IBUS_KEY_nobreakspace, 0x0327, 
+-IBUS_KEY_cent, 0x20B5, 
+-IBUS_KEY_Cacute, 0x1E08, 
+-IBUS_KEY_cacute, 0x1E09, 
+-IBUS_KEY_dead_cedilla, 0x00B8, 
+-IBUS_KEY_dead_currency, IBUS_KEY_C, 0x20B5, 
+-IBUS_KEY_dead_currency, IBUS_KEY_c, 0x20B5, 
+-IBUS_KEY_space, 0x02DB, 
+-IBUS_KEY_nobreakspace, 0x0328, 
+-IBUS_KEY_Omacron, 0x01EC, 
+-IBUS_KEY_omacron, 0x01ED, 
+-IBUS_KEY_dead_ogonek, 0x02DB, 
+-IBUS_KEY_space, 0x037A, 
+-IBUS_KEY_Greek_alphaaccent, 0x1FB4, 
+-IBUS_KEY_Greek_etaaccent, 0x1FC4, 
+-IBUS_KEY_Greek_omegaaccent, 0x1FF4, 
+-IBUS_KEY_Greek_ALPHA, 0x1FBC, 
+-IBUS_KEY_Greek_ETA, 0x1FCC, 
+-IBUS_KEY_Greek_OMEGA, 0x1FFC, 
+-IBUS_KEY_Greek_alpha, 0x1FB3, 
+-IBUS_KEY_Greek_eta, 0x1FC3, 
+-IBUS_KEY_Greek_omega, 0x1FF3, 
+-IBUS_KEY_dead_iota, 0x037A, 
+-IBUS_KEY_dead_grave, IBUS_KEY_Greek_alpha, 0x1FB2, 
+-IBUS_KEY_dead_grave, IBUS_KEY_Greek_eta, 0x1FC2, 
+-IBUS_KEY_dead_grave, IBUS_KEY_Greek_omega, 0x1FF2, 
+-IBUS_KEY_dead_acute, IBUS_KEY_Greek_alpha, 0x1FB4, 
+-IBUS_KEY_dead_acute, IBUS_KEY_Greek_eta, 0x1FC4, 
+-IBUS_KEY_dead_acute, IBUS_KEY_Greek_omega, 0x1FF4, 
+-IBUS_KEY_dead_tilde, IBUS_KEY_Greek_alpha, 0x1FB7, 
+-IBUS_KEY_dead_tilde, IBUS_KEY_Greek_eta, 0x1FC7, 
+-IBUS_KEY_dead_tilde, IBUS_KEY_Greek_omega, 0x1FF7, 
+-IBUS_KEY_dead_tilde, 0x1F00, 0x1F86, 
+-IBUS_KEY_dead_tilde, 0x1F01, 0x1F87, 
+-IBUS_KEY_dead_tilde, 0x1F08, 0x1F8E, 
+-IBUS_KEY_dead_tilde, 0x1F09, 0x1F8F, 
+-IBUS_KEY_dead_tilde, 0x1F20, 0x1F96, 
+-IBUS_KEY_dead_tilde, 0x1F21, 0x1F97, 
+-IBUS_KEY_dead_tilde, 0x1F28, 0x1F9E, 
+-IBUS_KEY_dead_tilde, 0x1F29, 0x1F9F, 
+-IBUS_KEY_dead_tilde, 0x1F60, 0x1FA6, 
+-IBUS_KEY_dead_tilde, 0x1F61, 0x1FA7, 
+-IBUS_KEY_dead_tilde, 0x1F68, 0x1FAE, 
+-IBUS_KEY_dead_tilde, 0x1F69, 0x1FAF, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F88, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F98, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FA8, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F80, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F90, 
+-IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA0, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F89, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F99, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FA9, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F81, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F91, 
+-IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA1, 
+-IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8A, 
+-IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9A, 
+-IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAA, 
+-IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F82, 
+-IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F92, 
+-IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA2, 
+-IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8B, 
+-IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9B, 
+-IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAB, 
+-IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F83, 
+-IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F93, 
+-IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA3, 
+-IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8C, 
+-IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9C, 
+-IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAC, 
+-IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F84, 
+-IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F94, 
+-IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA4, 
+-IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8D, 
+-IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9D, 
+-IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAD, 
+-IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F85, 
+-IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F95, 
+-IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA5, 
+-IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8E, 
+-IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9E, 
+-IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAE, 
+-IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F86, 
+-IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F96, 
+-IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA6, 
+-IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8F, 
+-IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9F, 
+-IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAF, 
+-IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F87, 
+-IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F97, 
+-IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA7, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_Greek_alpha, 0x1FB4, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_Greek_eta, 0x1FC4, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_Greek_omega, 0x1FF4, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F00, 0x1F84, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F01, 0x1F85, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F08, 0x1F8C, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F09, 0x1F8D, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F20, 0x1F94, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F21, 0x1F95, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F28, 0x1F9C, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F29, 0x1F9D, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F60, 0x1FA4, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F61, 0x1FA5, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F68, 0x1FAC, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F69, 0x1FAD, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F89, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F99, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FA9, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F81, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F91, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA1, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F88, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F98, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FA8, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F80, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F90, 
+-IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA0, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_Greek_alpha, 0x1FB2, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_Greek_eta, 0x1FC2, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_Greek_omega, 0x1FF2, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F00, 0x1F82, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F01, 0x1F83, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F08, 0x1F8A, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F09, 0x1F8B, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F20, 0x1F92, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F21, 0x1F93, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F28, 0x1F9A, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F29, 0x1F9B, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F60, 0x1FA2, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F61, 0x1FA3, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F68, 0x1FAA, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F69, 0x1FAB, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_Greek_alpha, 0x1FB7, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_Greek_eta, 0x1FC7, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_Greek_omega, 0x1FF7, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F00, 0x1F86, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F01, 0x1F87, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F08, 0x1F8E, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F09, 0x1F8F, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F20, 0x1F96, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F21, 0x1F97, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F28, 0x1F9E, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F29, 0x1F9F, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F60, 0x1FA6, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F61, 0x1FA7, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F68, 0x1FAE, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F69, 0x1FAF, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_Greek_alpha, 0x1FB4, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_Greek_eta, 0x1FC4, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_Greek_omega, 0x1FF4, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F00, 0x1F84, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F01, 0x1F85, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F08, 0x1F8C, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F09, 0x1F8D, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F20, 0x1F94, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F21, 0x1F95, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F28, 0x1F9C, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F29, 0x1F9D, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F60, 0x1FA4, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F61, 0x1FA5, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F68, 0x1FAC, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F69, 0x1FAD, 
+-IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8B, 
+-IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9B, 
+-IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAB, 
+-IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F83, 
+-IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F93, 
+-IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA3, 
+-IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8A, 
+-IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9A, 
+-IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAA, 
+-IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F82, 
+-IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F92, 
+-IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA2, 
+-IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8D, 
+-IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9D, 
+-IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAD, 
+-IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F85, 
+-IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F95, 
+-IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA5, 
+-IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8C, 
+-IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9C, 
+-IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAC, 
+-IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F84, 
+-IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F94, 
+-IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA4, 
+-IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8F, 
+-IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9F, 
+-IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAF, 
+-IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F87, 
+-IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F97, 
+-IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA7, 
+-IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8E, 
+-IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9E, 
+-IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAE, 
+-IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F86, 
+-IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F96, 
+-IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA6, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8D, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9D, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAD, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F85, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F95, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA5, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8C, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9C, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAC, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F84, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F94, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA4, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8C, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9C, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAC, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F84, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F94, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA4, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8D, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9D, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAD, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F85, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F95, 
+-IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA5, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8B, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9B, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAB, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F83, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F93, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA3, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8A, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9A, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAA, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F82, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F92, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA2, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8A, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9A, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAA, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F82, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F92, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA2, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8B, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9B, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAB, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F83, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F93, 
+-IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA3, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8F, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9F, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAF, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F87, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F97, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA7, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8E, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9E, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAE, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F86, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F96, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA6, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8E, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9E, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAE, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F86, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F96, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA6, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8F, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9F, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAF, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F87, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F97, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA7, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8D, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9D, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAD, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F85, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F95, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA5, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8C, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9C, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAC, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F84, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F94, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA4, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8C, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9C, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAC, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F84, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F94, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA4, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8D, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9D, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAD, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F85, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F95, 
+-IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA5, 
+-IBUS_KEY_kana_WO, 0x30FA, 
+-IBUS_KEY_kana_U, 0x30F4, 
+-IBUS_KEY_kana_KA, 0x30AC, 
+-IBUS_KEY_kana_KI, 0x30AE, 
+-IBUS_KEY_kana_KU, 0x30B0, 
+-IBUS_KEY_kana_KE, 0x30B2, 
+-IBUS_KEY_kana_KO, 0x30B4, 
+-IBUS_KEY_kana_SA, 0x30B6, 
+-IBUS_KEY_kana_SHI, 0x30B8, 
+-IBUS_KEY_kana_SU, 0x30BA, 
+-IBUS_KEY_kana_SE, 0x30BC, 
+-IBUS_KEY_kana_SO, 0x30BE, 
+-IBUS_KEY_kana_TA, 0x30C0, 
+-IBUS_KEY_kana_CHI, 0x30C2, 
+-IBUS_KEY_kana_TSU, 0x30C5, 
+-IBUS_KEY_kana_TE, 0x30C7, 
+-IBUS_KEY_kana_TO, 0x30C9, 
+-IBUS_KEY_kana_HA, 0x30D0, 
+-IBUS_KEY_kana_HI, 0x30D3, 
+-IBUS_KEY_kana_FU, 0x30D6, 
+-IBUS_KEY_kana_HE, 0x30D9, 
+-IBUS_KEY_kana_HO, 0x30DC, 
+-IBUS_KEY_kana_WA, 0x30F7, 
+-IBUS_KEY_kana_HA, 0x30D1, 
+-IBUS_KEY_kana_HI, 0x30D4, 
+-IBUS_KEY_kana_FU, 0x30D7, 
+-IBUS_KEY_kana_HE, 0x30DA, 
+-IBUS_KEY_kana_HO, 0x30DD, 
+-IBUS_KEY_space, 0x0323, 
+-IBUS_KEY_plus, 0x2A25, 
+-IBUS_KEY_minus, 0x2A2A, 
+-IBUS_KEY_equal, 0x2A66, 
+-IBUS_KEY_nobreakspace, 0x0323, 
+-IBUS_KEY_Abreve, 0x1EB6, 
+-IBUS_KEY_abreve, 0x1EB7, 
+-IBUS_KEY_dead_belowdot, 0x0323, 
+-IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_O, 0x1EE2, 
+-IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_U, 0x1EF0, 
+-IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_o, 0x1EE3, 
+-IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_u, 0x1EF1, 
+-IBUS_KEY_space, 0x0309, 
+-IBUS_KEY_B, 0x0181, 
+-IBUS_KEY_C, 0x0187, 
+-IBUS_KEY_D, 0x018A, 
+-IBUS_KEY_F, 0x0191, 
+-IBUS_KEY_G, 0x0193, 
+-IBUS_KEY_K, 0x0198, 
+-IBUS_KEY_M, 0x2C6E, 
+-IBUS_KEY_N, 0x019D, 
+-IBUS_KEY_P, 0x01A4, 
+-IBUS_KEY_T, 0x01AC, 
+-IBUS_KEY_V, 0x01B2, 
+-IBUS_KEY_W, 0x2C72, 
+-IBUS_KEY_Z, 0x0224, 
+-IBUS_KEY_b, 0x0253, 
+-IBUS_KEY_c, 0x0188, 
+-IBUS_KEY_d, 0x0257, 
+-IBUS_KEY_f, 0x0192, 
+-IBUS_KEY_g, 0x0260, 
+-IBUS_KEY_h, 0x0266, 
+-IBUS_KEY_k, 0x0199, 
+-IBUS_KEY_m, 0x0271, 
+-IBUS_KEY_n, 0x0272, 
+-IBUS_KEY_p, 0x01A5, 
+-IBUS_KEY_q, 0x02A0, 
+-IBUS_KEY_r, 0x027C, 
+-IBUS_KEY_s, 0x0282, 
+-IBUS_KEY_t, 0x01AD, 
+-IBUS_KEY_v, 0x028B, 
+-IBUS_KEY_w, 0x2C73, 
+-IBUS_KEY_z, 0x0225, 
+-IBUS_KEY_nobreakspace, 0x0309, 
+-IBUS_KEY_Abreve, 0x1EB2, 
+-IBUS_KEY_abreve, 0x1EB3, 
+-0x0256, 0x1D91, 
+-0x025C, 0x025D, 
+-0x025F, 0x0284, 
+-0x0279, 0x027B, 
+-IBUS_KEY_dead_hook, 0x0309, 
+-IBUS_KEY_dead_greek, IBUS_KEY_U, 0x03D2, 
+-IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_O, 0x1EDE, 
+-IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_U, 0x1EEC, 
+-IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_o, 0x1EDF, 
+-IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_u, 0x1EED, 
+-IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_A, 0x1EB2, 
+-IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_a, 0x1EB3, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_A, 0x1EA8, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_E, 0x1EC2, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_O, 0x1ED4, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_a, 0x1EA9, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_e, 0x1EC3, 
+-IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_o, 0x1ED5, 
+-IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_A, 0x1EB2, 
+-IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_a, 0x1EB3, 
+-IBUS_KEY_space, 0x031B, 
+-IBUS_KEY_nobreakspace, 0x031B, 
+-IBUS_KEY_Utilde, 0x1EEE, 
+-IBUS_KEY_utilde, 0x1EEF, 
+-IBUS_KEY_dead_horn, 0x031B, 
+-IBUS_KEY_space, 0x002F, 
+-IBUS_KEY_2, 0x01BB, 
+-IBUS_KEY_A, 0x023A, 
+-IBUS_KEY_B, 0x0243, 
+-IBUS_KEY_C, 0x023B, 
+-IBUS_KEY_D, 0x0110, 
+-IBUS_KEY_E, 0x0246, 
+-IBUS_KEY_G, 0x01E4, 
+-IBUS_KEY_H, 0x0126, 
+-IBUS_KEY_I, 0x0197, 
+-IBUS_KEY_J, 0x0248, 
+-IBUS_KEY_L, 0x0141, 
+-IBUS_KEY_O, 0x00D8, 
+-IBUS_KEY_P, 0x2C63, 
+-IBUS_KEY_R, 0x024C, 
+-IBUS_KEY_T, 0x0166, 
+-IBUS_KEY_U, 0x0244, 
+-IBUS_KEY_Y, 0x024E, 
+-IBUS_KEY_Z, 0x01B5, 
+-IBUS_KEY_a, 0x2C65, 
+-IBUS_KEY_b, 0x0180, 
+-IBUS_KEY_c, 0x023C, 
+-IBUS_KEY_d, 0x0111, 
+-IBUS_KEY_e, 0x0247, 
+-IBUS_KEY_g, 0x01E5, 
+-IBUS_KEY_h, 0x0127, 
+-IBUS_KEY_i, 0x0268, 
+-IBUS_KEY_j, 0x0249, 
+-IBUS_KEY_l, 0x0142, 
+-IBUS_KEY_o, 0x00F8, 
+-IBUS_KEY_p, 0x1D7D, 
+-IBUS_KEY_r, 0x024D, 
+-IBUS_KEY_t, 0x0167, 
+-IBUS_KEY_u, 0x0289, 
+-IBUS_KEY_y, 0x024F, 
+-IBUS_KEY_z, 0x01B6, 
+-IBUS_KEY_nobreakspace, 0x0338, 
+-IBUS_KEY_Oacute, 0x01FE, 
+-IBUS_KEY_oacute, 0x01FF, 
+-0x0237, 0x025F, 
+-0x0269, 0x1D7C, 
+-IBUS_KEY_lessthanequal, 0x2270, 
+-IBUS_KEY_greaterthanequal, 0x2271, 
+-IBUS_KEY_dead_stroke, 0x002F, 
+-IBUS_KEY_dead_acute, IBUS_KEY_O, 0x01FE, 
+-IBUS_KEY_dead_acute, IBUS_KEY_o, 0x01FF, 
+-IBUS_KEY_dead_abovedot, IBUS_KEY_j, 0x025F, 
+-IBUS_KEY_dead_greek, IBUS_KEY_r, 0x03FC, 
+-IBUS_KEY_Greek_ALPHA, 0x1F08, 
+-IBUS_KEY_Greek_EPSILON, 0x1F18, 
+-IBUS_KEY_Greek_ETA, 0x1F28, 
+-IBUS_KEY_Greek_IOTA, 0x1F38, 
+-IBUS_KEY_Greek_OMICRON, 0x1F48, 
+-IBUS_KEY_Greek_OMEGA, 0x1F68, 
+-IBUS_KEY_Greek_alpha, 0x1F00, 
+-IBUS_KEY_Greek_epsilon, 0x1F10, 
+-IBUS_KEY_Greek_eta, 0x1F20, 
+-IBUS_KEY_Greek_iota, 0x1F30, 
+-IBUS_KEY_Greek_omicron, 0x1F40, 
+-IBUS_KEY_Greek_rho, 0x1FE4, 
+-IBUS_KEY_Greek_upsilon, 0x1F50, 
+-IBUS_KEY_Greek_omega, 0x1F60, 
+-IBUS_KEY_Greek_ALPHA, 0x1F09, 
+-IBUS_KEY_Greek_EPSILON, 0x1F19, 
+-IBUS_KEY_Greek_ETA, 0x1F29, 
+-IBUS_KEY_Greek_IOTA, 0x1F39, 
+-IBUS_KEY_Greek_OMICRON, 0x1F49, 
+-IBUS_KEY_Greek_RHO, 0x1FEC, 
+-IBUS_KEY_Greek_UPSILON, 0x1F59, 
+-IBUS_KEY_Greek_OMEGA, 0x1F69, 
+-IBUS_KEY_Greek_alpha, 0x1F01, 
+-IBUS_KEY_Greek_epsilon, 0x1F11, 
+-IBUS_KEY_Greek_eta, 0x1F21, 
+-IBUS_KEY_Greek_iota, 0x1F31, 
+-IBUS_KEY_Greek_omicron, 0x1F41, 
+-IBUS_KEY_Greek_rho, 0x1FE5, 
+-IBUS_KEY_Greek_upsilon, 0x1F51, 
+-IBUS_KEY_Greek_omega, 0x1F61, 
+-IBUS_KEY_bar, 0x2AF0, 
+-IBUS_KEY_plus, 0x2A26, 
+-IBUS_KEY_dead_diaeresis, IBUS_KEY_equal, 0x2A77, 
+-IBUS_KEY_space, 0x002C, 
+-IBUS_KEY_S, 0x0218, 
+-IBUS_KEY_T, 0x021A, 
+-IBUS_KEY_s, 0x0219, 
+-IBUS_KEY_t, 0x021B, 
+-IBUS_KEY_nobreakspace, 0x0326, 
+-IBUS_KEY_dead_belowcomma, 0x002C, 
+-IBUS_KEY_space, 0x00A4, 
+-IBUS_KEY_A, 0x20B3, 
+-IBUS_KEY_B, 0x20B1, 
+-IBUS_KEY_C, 0x20A1, 
+-IBUS_KEY_D, 0x20AF, 
+-IBUS_KEY_E, 0x20A0, 
+-IBUS_KEY_F, 0x20A3, 
+-IBUS_KEY_G, 0x20B2, 
+-IBUS_KEY_H, 0x20B4, 
+-IBUS_KEY_I, 0x17DB, 
+-IBUS_KEY_K, 0x20AD, 
+-IBUS_KEY_L, 0x20A4, 
+-IBUS_KEY_M, 0x2133, 
+-IBUS_KEY_N, 0x20A6, 
+-IBUS_KEY_O, 0x0AF1, 
+-IBUS_KEY_P, 0x20A7, 
+-IBUS_KEY_R, 0x20A8, 
+-IBUS_KEY_S, 0x0024, 
+-IBUS_KEY_T, 0x20AE, 
+-IBUS_KEY_U, 0x5713, 
+-IBUS_KEY_W, 0x20A9, 
+-IBUS_KEY_Y, 0x5186, 
+-IBUS_KEY_a, 0x060B, 
+-IBUS_KEY_b, 0x0E3F, 
+-IBUS_KEY_c, 0x00A2, 
+-IBUS_KEY_d, 0x20AB, 
+-IBUS_KEY_e, 0x20AC, 
+-IBUS_KEY_f, 0x0192, 
+-IBUS_KEY_g, 0x20B2, 
+-IBUS_KEY_h, 0x20B4, 
+-IBUS_KEY_i, 0xFDFC, 
+-IBUS_KEY_k, 0x20AD, 
+-IBUS_KEY_l, 0x00A3, 
+-IBUS_KEY_m, 0x20A5, 
+-IBUS_KEY_n, 0x20A6, 
+-IBUS_KEY_o, 0x0BF9, 
+-IBUS_KEY_p, 0x20B0, 
+-IBUS_KEY_r, 0x20A2, 
+-IBUS_KEY_s, 0x20AA, 
+-IBUS_KEY_t, 0x09F3, 
+-IBUS_KEY_u, 0x5143, 
+-IBUS_KEY_w, 0x20A9, 
+-IBUS_KEY_y, 0x00A5, 
+-IBUS_KEY_nobreakspace, 0x00A4, 
+-IBUS_KEY_Ccedilla, 0x20B5, 
+-IBUS_KEY_THORN, 0x09F2, 
+-IBUS_KEY_ccedilla, 0x20B5, 
+-IBUS_KEY_thorn, 0x09F2, 
+-IBUS_KEY_dead_currency, 0x00A4, 
+-IBUS_KEY_dead_cedilla, IBUS_KEY_C, 0x20B5, 
+-IBUS_KEY_dead_cedilla, IBUS_KEY_c, 0x20B5, 
+-IBUS_KEY_space, 0x00B5, 
+-IBUS_KEY_A, 0x0391, 
+-IBUS_KEY_B, 0x0392, 
+-IBUS_KEY_D, 0x0394, 
+-IBUS_KEY_E, 0x0395, 
+-IBUS_KEY_F, 0x03A6, 
+-IBUS_KEY_G, 0x0393, 
+-IBUS_KEY_H, 0x0397, 
+-IBUS_KEY_I, 0x0399, 
+-IBUS_KEY_J, 0x0398, 
+-IBUS_KEY_K, 0x039A, 
+-IBUS_KEY_L, 0x039B, 
+-IBUS_KEY_M, 0x039C, 
+-IBUS_KEY_N, 0x039D, 
+-IBUS_KEY_O, 0x039F, 
+-IBUS_KEY_P, 0x03A0, 
+-IBUS_KEY_Q, 0x03A7, 
+-IBUS_KEY_R, 0x03A1, 
+-IBUS_KEY_S, 0x03A3, 
+-IBUS_KEY_T, 0x03A4, 
+-IBUS_KEY_U, 0x03A5, 
+-IBUS_KEY_W, 0x03A9, 
+-IBUS_KEY_X, 0x039E, 
+-IBUS_KEY_Y, 0x03A8, 
+-IBUS_KEY_Z, 0x0396, 
+-IBUS_KEY_a, 0x03B1, 
+-IBUS_KEY_b, 0x03B2, 
+-IBUS_KEY_d, 0x03B4, 
+-IBUS_KEY_e, 0x03B5, 
+-IBUS_KEY_f, 0x03C6, 
+-IBUS_KEY_g, 0x03B3, 
+-IBUS_KEY_h, 0x03B7, 
+-IBUS_KEY_i, 0x03B9, 
+-IBUS_KEY_j, 0x03B8, 
+-IBUS_KEY_k, 0x03BA, 
+-IBUS_KEY_l, 0x03BB, 
+-IBUS_KEY_m, 0x03BC, 
+-IBUS_KEY_n, 0x03BD, 
+-IBUS_KEY_o, 0x03BF, 
+-IBUS_KEY_p, 0x03C0, 
+-IBUS_KEY_q, 0x03C7, 
+-IBUS_KEY_r, 0x03C1, 
+-IBUS_KEY_s, 0x03C3, 
+-IBUS_KEY_t, 0x03C4, 
+-IBUS_KEY_u, 0x03C5, 
+-IBUS_KEY_w, 0x03C9, 
+-IBUS_KEY_x, 0x03BE, 
+-IBUS_KEY_y, 0x03C8, 
+-IBUS_KEY_z, 0x03B6, 
+-IBUS_KEY_nobreakspace, 0x00B5, 
+-IBUS_KEY_dead_greek, 0x00B5, 
+-IBUS_KEY_dead_macron, IBUS_KEY_A, 0x1FB9, 
+-IBUS_KEY_dead_macron, IBUS_KEY_I, 0x1FD9, 
+-IBUS_KEY_dead_macron, IBUS_KEY_U, 0x1FE9, 
+-IBUS_KEY_dead_macron, IBUS_KEY_a, 0x1FB1, 
+-IBUS_KEY_dead_macron, IBUS_KEY_i, 0x1FD1, 
+-IBUS_KEY_dead_macron, IBUS_KEY_u, 0x1FE1, 
+-IBUS_KEY_dead_hook, IBUS_KEY_U, 0x03D2, 
+-IBUS_KEY_dead_stroke, IBUS_KEY_r, 0x03FC, 
+-IBUS_KEY_space, IBUS_KEY_space, 0x00A0, 
+-IBUS_KEY_space, IBUS_KEY_apostrophe, 0x0027, 
+-IBUS_KEY_space, IBUS_KEY_parenleft, 0x02D8, 
+-IBUS_KEY_space, IBUS_KEY_comma, 0x00B8, 
+-IBUS_KEY_space, IBUS_KEY_minus, 0x007E, 
+-IBUS_KEY_space, IBUS_KEY_period, 0x2008, 
+-IBUS_KEY_space, IBUS_KEY_less, 0x02C7, 
+-IBUS_KEY_space, IBUS_KEY_greater, 0x005E, 
+-IBUS_KEY_space, IBUS_KEY_asciicircum, 0x005E, 
+-IBUS_KEY_space, IBUS_KEY_grave, 0x0060, 
+-IBUS_KEY_space, IBUS_KEY_asciitilde, 0x007E, 
+-IBUS_KEY_exclam, IBUS_KEY_exclam, 0x00A1, 
+-IBUS_KEY_exclam, IBUS_KEY_question, 0x203D, 
+-IBUS_KEY_exclam, IBUS_KEY_A, 0x1EA0, 
+-IBUS_KEY_exclam, IBUS_KEY_B, 0x1E04, 
+-IBUS_KEY_exclam, IBUS_KEY_D, 0x1E0C, 
+-IBUS_KEY_exclam, IBUS_KEY_E, 0x1EB8, 
+-IBUS_KEY_exclam, IBUS_KEY_H, 0x1E24, 
+-IBUS_KEY_exclam, IBUS_KEY_I, 0x1ECA, 
+-IBUS_KEY_exclam, IBUS_KEY_K, 0x1E32, 
+-IBUS_KEY_exclam, IBUS_KEY_L, 0x1E36, 
+-IBUS_KEY_exclam, IBUS_KEY_M, 0x1E42, 
+-IBUS_KEY_exclam, IBUS_KEY_N, 0x1E46, 
+-IBUS_KEY_exclam, IBUS_KEY_O, 0x1ECC, 
+-IBUS_KEY_exclam, IBUS_KEY_R, 0x1E5A, 
+-IBUS_KEY_exclam, IBUS_KEY_S, 0x1E62, 
+-IBUS_KEY_exclam, IBUS_KEY_T, 0x1E6C, 
+-IBUS_KEY_exclam, IBUS_KEY_U, 0x1EE4, 
+-IBUS_KEY_exclam, IBUS_KEY_V, 0x1E7E, 
+-IBUS_KEY_exclam, IBUS_KEY_W, 0x1E88, 
+-IBUS_KEY_exclam, IBUS_KEY_Y, 0x1EF4, 
+-IBUS_KEY_exclam, IBUS_KEY_Z, 0x1E92, 
+-IBUS_KEY_exclam, IBUS_KEY_asciicircum, 0x00A6, 
+-IBUS_KEY_exclam, IBUS_KEY_a, 0x1EA1, 
+-IBUS_KEY_exclam, IBUS_KEY_b, 0x1E05, 
+-IBUS_KEY_exclam, IBUS_KEY_d, 0x1E0D, 
+-IBUS_KEY_exclam, IBUS_KEY_e, 0x1EB9, 
+-IBUS_KEY_exclam, IBUS_KEY_h, 0x1E25, 
+-IBUS_KEY_exclam, IBUS_KEY_i, 0x1ECB, 
+-IBUS_KEY_exclam, IBUS_KEY_k, 0x1E33, 
+-IBUS_KEY_exclam, IBUS_KEY_l, 0x1E37, 
+-IBUS_KEY_exclam, IBUS_KEY_m, 0x1E43, 
+-IBUS_KEY_exclam, IBUS_KEY_n, 0x1E47, 
+-IBUS_KEY_exclam, IBUS_KEY_o, 0x1ECD, 
+-IBUS_KEY_exclam, IBUS_KEY_r, 0x1E5B, 
+-IBUS_KEY_exclam, IBUS_KEY_s, 0x1E63, 
+-IBUS_KEY_exclam, IBUS_KEY_t, 0x1E6D, 
+-IBUS_KEY_exclam, IBUS_KEY_u, 0x1EE5, 
+-IBUS_KEY_exclam, IBUS_KEY_v, 0x1E7F, 
+-IBUS_KEY_exclam, IBUS_KEY_w, 0x1E89, 
+-IBUS_KEY_exclam, IBUS_KEY_y, 0x1EF5, 
+-IBUS_KEY_exclam, IBUS_KEY_z, 0x1E93, 
+-IBUS_KEY_quotedbl, IBUS_KEY_quotedbl, 0x00A8, 
+-IBUS_KEY_quotedbl, IBUS_KEY_apostrophe, 0x0344, 
+-IBUS_KEY_quotedbl, IBUS_KEY_comma, 0x201E, 
+-IBUS_KEY_quotedbl, IBUS_KEY_less, 0x201C, 
+-IBUS_KEY_quotedbl, IBUS_KEY_greater, 0x201D, 
+-IBUS_KEY_quotedbl, IBUS_KEY_A, 0x00C4, 
+-IBUS_KEY_quotedbl, IBUS_KEY_E, 0x00CB, 
+-IBUS_KEY_quotedbl, IBUS_KEY_H, 0x1E26, 
+-IBUS_KEY_quotedbl, IBUS_KEY_I, 0x00CF, 
+-IBUS_KEY_quotedbl, IBUS_KEY_O, 0x00D6, 
+-IBUS_KEY_quotedbl, IBUS_KEY_U, 0x00DC, 
+-IBUS_KEY_quotedbl, IBUS_KEY_W, 0x1E84, 
+-IBUS_KEY_quotedbl, IBUS_KEY_X, 0x1E8C, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Y, 0x0178, 
+-IBUS_KEY_quotedbl, IBUS_KEY_a, 0x00E4, 
+-IBUS_KEY_quotedbl, IBUS_KEY_e, 0x00EB, 
+-IBUS_KEY_quotedbl, IBUS_KEY_h, 0x1E27, 
+-IBUS_KEY_quotedbl, IBUS_KEY_i, 0x00EF, 
+-IBUS_KEY_quotedbl, IBUS_KEY_o, 0x00F6, 
+-IBUS_KEY_quotedbl, IBUS_KEY_t, 0x1E97, 
+-IBUS_KEY_quotedbl, IBUS_KEY_u, 0x00FC, 
+-IBUS_KEY_quotedbl, IBUS_KEY_w, 0x1E85, 
+-IBUS_KEY_quotedbl, IBUS_KEY_x, 0x1E8D, 
+-IBUS_KEY_quotedbl, IBUS_KEY_y, 0x00FF, 
+-IBUS_KEY_quotedbl, IBUS_KEY_acute, 0x0344, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Otilde, 0x1E4E, 
+-IBUS_KEY_quotedbl, IBUS_KEY_otilde, 0x1E4F, 
+-IBUS_KEY_quotedbl, 0x03D2, 0x03D4, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Umacron, 0x1E7A, 
+-IBUS_KEY_quotedbl, IBUS_KEY_umacron, 0x1E7B, 
+-IBUS_KEY_quotedbl, 0x04D8, 0x04DA, 
+-IBUS_KEY_quotedbl, 0x04D9, 0x04DB, 
+-IBUS_KEY_quotedbl, 0x04E8, 0x04EA, 
+-IBUS_KEY_quotedbl, 0x04E9, 0x04EB, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Ukrainian_i, 0x0457, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Ukrainian_I, 0x0407, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_a, 0x04D3, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_ie, 0x0451, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_i, 0x04E5, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_o, 0x04E7, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_u, 0x04F1, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_zhe, 0x04DD, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_yeru, 0x04F9, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_ze, 0x04DF, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_e, 0x04ED, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_che, 0x04F5, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_A, 0x04D2, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_IE, 0x0401, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_I, 0x04E4, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_O, 0x04E6, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_U, 0x04F0, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_ZHE, 0x04DC, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_YERU, 0x04F8, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_ZE, 0x04DE, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_E, 0x04EC, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_CHE, 0x04F4, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Greek_IOTA, 0x03AA, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Greek_UPSILON, 0x03AB, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota, 0x03CA, 
+-IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon, 0x03CB, 
+-IBUS_KEY_quotedbl, IBUS_KEY_dead_acute, 0x0344, 
+-IBUS_KEY_numbersign, IBUS_KEY_numbersign, 0x266F, 
+-IBUS_KEY_numbersign, IBUS_KEY_E, 0x266B, 
+-IBUS_KEY_numbersign, IBUS_KEY_S, 0x266C, 
+-IBUS_KEY_numbersign, IBUS_KEY_b, 0x266D, 
+-IBUS_KEY_numbersign, IBUS_KEY_e, 0x266A, 
+-IBUS_KEY_numbersign, IBUS_KEY_f, 0x266E, 
+-IBUS_KEY_numbersign, IBUS_KEY_q, 0x2669, 
+-IBUS_KEY_percent, IBUS_KEY_o, 0x2030, 
+-IBUS_KEY_apostrophe, IBUS_KEY_space, 0x0027, 
+-IBUS_KEY_apostrophe, IBUS_KEY_apostrophe, 0x00B4, 
+-IBUS_KEY_apostrophe, IBUS_KEY_comma, 0x201A, 
+-IBUS_KEY_apostrophe, IBUS_KEY_less, 0x2018, 
+-IBUS_KEY_apostrophe, IBUS_KEY_greater, 0x2019, 
+-IBUS_KEY_apostrophe, IBUS_KEY_A, 0x00C1, 
+-IBUS_KEY_apostrophe, IBUS_KEY_C, 0x0106, 
+-IBUS_KEY_apostrophe, IBUS_KEY_E, 0x00C9, 
+-IBUS_KEY_apostrophe, IBUS_KEY_G, 0x01F4, 
+-IBUS_KEY_apostrophe, IBUS_KEY_I, 0x00CD, 
+-IBUS_KEY_apostrophe, IBUS_KEY_K, 0x1E30, 
+-IBUS_KEY_apostrophe, IBUS_KEY_L, 0x0139, 
+-IBUS_KEY_apostrophe, IBUS_KEY_M, 0x1E3E, 
+-IBUS_KEY_apostrophe, IBUS_KEY_N, 0x0143, 
+-IBUS_KEY_apostrophe, IBUS_KEY_O, 0x00D3, 
+-IBUS_KEY_apostrophe, IBUS_KEY_P, 0x1E54, 
+-IBUS_KEY_apostrophe, IBUS_KEY_R, 0x0154, 
+-IBUS_KEY_apostrophe, IBUS_KEY_S, 0x015A, 
+-IBUS_KEY_apostrophe, IBUS_KEY_U, 0x00DA, 
+-IBUS_KEY_apostrophe, IBUS_KEY_W, 0x1E82, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Y, 0x00DD, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Z, 0x0179, 
+-IBUS_KEY_apostrophe, IBUS_KEY_a, 0x00E1, 
+-IBUS_KEY_apostrophe, IBUS_KEY_c, 0x0107, 
+-IBUS_KEY_apostrophe, IBUS_KEY_e, 0x00E9, 
+-IBUS_KEY_apostrophe, IBUS_KEY_g, 0x01F5, 
+-IBUS_KEY_apostrophe, IBUS_KEY_i, 0x00ED, 
+-IBUS_KEY_apostrophe, IBUS_KEY_k, 0x1E31, 
+-IBUS_KEY_apostrophe, IBUS_KEY_l, 0x013A, 
+-IBUS_KEY_apostrophe, IBUS_KEY_m, 0x1E3F, 
+-IBUS_KEY_apostrophe, IBUS_KEY_n, 0x0144, 
+-IBUS_KEY_apostrophe, IBUS_KEY_o, 0x00F3, 
+-IBUS_KEY_apostrophe, IBUS_KEY_p, 0x1E55, 
+-IBUS_KEY_apostrophe, IBUS_KEY_r, 0x0155, 
+-IBUS_KEY_apostrophe, IBUS_KEY_s, 0x015B, 
+-IBUS_KEY_apostrophe, IBUS_KEY_u, 0x00FA, 
+-IBUS_KEY_apostrophe, IBUS_KEY_w, 0x1E83, 
+-IBUS_KEY_apostrophe, IBUS_KEY_y, 0x00FD, 
+-IBUS_KEY_apostrophe, IBUS_KEY_z, 0x017A, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Acircumflex, 0x1EA4, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Aring, 0x01FA, 
+-IBUS_KEY_apostrophe, IBUS_KEY_AE, 0x01FC, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Ccedilla, 0x1E08, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Ecircumflex, 0x1EBE, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Idiaeresis, 0x1E2E, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Ocircumflex, 0x1ED0, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Otilde, 0x1E4C, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Ooblique, 0x01FE, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Udiaeresis, 0x01D7, 
+-IBUS_KEY_apostrophe, IBUS_KEY_acircumflex, 0x1EA5, 
+-IBUS_KEY_apostrophe, IBUS_KEY_aring, 0x01FB, 
+-IBUS_KEY_apostrophe, IBUS_KEY_ae, 0x01FD, 
+-IBUS_KEY_apostrophe, IBUS_KEY_ccedilla, 0x1E09, 
+-IBUS_KEY_apostrophe, IBUS_KEY_ecircumflex, 0x1EBF, 
+-IBUS_KEY_apostrophe, IBUS_KEY_idiaeresis, 0x1E2F, 
+-IBUS_KEY_apostrophe, IBUS_KEY_ocircumflex, 0x1ED1, 
+-IBUS_KEY_apostrophe, IBUS_KEY_otilde, 0x1E4D, 
+-IBUS_KEY_apostrophe, IBUS_KEY_oslash, 0x01FF, 
+-IBUS_KEY_apostrophe, IBUS_KEY_udiaeresis, 0x01D8, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Abreve, 0x1EAE, 
+-IBUS_KEY_apostrophe, IBUS_KEY_abreve, 0x1EAF, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Emacron, 0x1E16, 
+-IBUS_KEY_apostrophe, IBUS_KEY_emacron, 0x1E17, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Omacron, 0x1E52, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Utilde, 0x1E78, 
+-IBUS_KEY_apostrophe, IBUS_KEY_omacron, 0x1E53, 
+-IBUS_KEY_apostrophe, IBUS_KEY_utilde, 0x1E79, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_ghe, 0x0453, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_ka, 0x045C, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_GHE, 0x0403, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_KA, 0x040C, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Greek_iotadieresis, 0x0390, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Greek_upsilondieresis, 0x03B0, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Greek_ALPHA, 0x0386, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Greek_EPSILON, 0x0388, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Greek_ETA, 0x0389, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Greek_IOTA, 0x038A, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Greek_OMICRON, 0x038C, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Greek_UPSILON, 0x038E, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Greek_OMEGA, 0x038F, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Greek_alpha, 0x03AC, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Greek_epsilon, 0x03AD, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Greek_eta, 0x03AE, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Greek_iota, 0x03AF, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Greek_omicron, 0x03CC, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Greek_upsilon, 0x03CD, 
+-IBUS_KEY_apostrophe, IBUS_KEY_Greek_omega, 0x03CE, 
+-IBUS_KEY_apostrophe, 0x1F00, 0x1F04, 
+-IBUS_KEY_apostrophe, 0x1F01, 0x1F05, 
+-IBUS_KEY_apostrophe, 0x1F08, 0x1F0C, 
+-IBUS_KEY_apostrophe, 0x1F09, 0x1F0D, 
+-IBUS_KEY_apostrophe, 0x1F10, 0x1F14, 
+-IBUS_KEY_apostrophe, 0x1F11, 0x1F15, 
+-IBUS_KEY_apostrophe, 0x1F18, 0x1F1C, 
+-IBUS_KEY_apostrophe, 0x1F19, 0x1F1D, 
+-IBUS_KEY_apostrophe, 0x1F20, 0x1F24, 
+-IBUS_KEY_apostrophe, 0x1F21, 0x1F25, 
+-IBUS_KEY_apostrophe, 0x1F28, 0x1F2C, 
+-IBUS_KEY_apostrophe, 0x1F29, 0x1F2D, 
+-IBUS_KEY_apostrophe, 0x1F30, 0x1F34, 
+-IBUS_KEY_apostrophe, 0x1F31, 0x1F35, 
+-IBUS_KEY_apostrophe, 0x1F38, 0x1F3C, 
+-IBUS_KEY_apostrophe, 0x1F39, 0x1F3D, 
+-IBUS_KEY_apostrophe, 0x1F40, 0x1F44, 
+-IBUS_KEY_apostrophe, 0x1F41, 0x1F45, 
+-IBUS_KEY_apostrophe, 0x1F48, 0x1F4C, 
+-IBUS_KEY_apostrophe, 0x1F49, 0x1F4D, 
+-IBUS_KEY_apostrophe, 0x1F50, 0x1F54, 
+-IBUS_KEY_apostrophe, 0x1F51, 0x1F55, 
+-IBUS_KEY_apostrophe, 0x1F59, 0x1F5D, 
+-IBUS_KEY_apostrophe, 0x1F60, 0x1F64, 
+-IBUS_KEY_apostrophe, 0x1F61, 0x1F65, 
+-IBUS_KEY_apostrophe, 0x1F68, 0x1F6C, 
+-IBUS_KEY_apostrophe, 0x1F69, 0x1F6D, 
+-IBUS_KEY_apostrophe, 0x2395, 0x235E, 
+-IBUS_KEY_parenleft, IBUS_KEY_space, 0x02D8, 
+-IBUS_KEY_parenleft, IBUS_KEY_parenleft, 0x005B, 
+-IBUS_KEY_parenleft, IBUS_KEY_minus, 0x007B, 
+-IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F09, 
+-IBUS_KEY_parenleft, IBUS_KEY_Greek_EPSILON, 0x1F19, 
+-IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F29, 
+-IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA, 0x1F39, 
+-IBUS_KEY_parenleft, IBUS_KEY_Greek_OMICRON, 0x1F49, 
+-IBUS_KEY_parenleft, IBUS_KEY_Greek_RHO, 0x1FEC, 
+-IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON, 0x1F59, 
+-IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1F69, 
+-IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F01, 
+-IBUS_KEY_parenleft, IBUS_KEY_Greek_epsilon, 0x1F11, 
+-IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F21, 
+-IBUS_KEY_parenleft, IBUS_KEY_Greek_iota, 0x1F31, 
+-IBUS_KEY_parenleft, IBUS_KEY_Greek_omicron, 0x1F41, 
+-IBUS_KEY_parenleft, IBUS_KEY_Greek_rho, 0x1FE5, 
+-IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon, 0x1F51, 
+-IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1F61, 
+-IBUS_KEY_parenright, IBUS_KEY_parenright, 0x005D, 
+-IBUS_KEY_parenright, IBUS_KEY_minus, 0x007D, 
+-IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F08, 
+-IBUS_KEY_parenright, IBUS_KEY_Greek_EPSILON, 0x1F18, 
+-IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F28, 
+-IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA, 0x1F38, 
+-IBUS_KEY_parenright, IBUS_KEY_Greek_OMICRON, 0x1F48, 
+-IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1F68, 
+-IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F00, 
+-IBUS_KEY_parenright, IBUS_KEY_Greek_epsilon, 0x1F10, 
+-IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F20, 
+-IBUS_KEY_parenright, IBUS_KEY_Greek_iota, 0x1F30, 
+-IBUS_KEY_parenright, IBUS_KEY_Greek_omicron, 0x1F40, 
+-IBUS_KEY_parenright, IBUS_KEY_Greek_rho, 0x1FE4, 
+-IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon, 0x1F50, 
+-IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1F60, 
+-IBUS_KEY_asterisk, IBUS_KEY_0, 0x00B0, 
+-IBUS_KEY_asterisk, IBUS_KEY_A, 0x00C5, 
+-IBUS_KEY_asterisk, IBUS_KEY_U, 0x016E, 
+-IBUS_KEY_asterisk, IBUS_KEY_a, 0x00E5, 
+-IBUS_KEY_asterisk, IBUS_KEY_u, 0x016F, 
+-IBUS_KEY_asterisk, IBUS_KEY_diaeresis, 0x2363, 
+-IBUS_KEY_asterisk, IBUS_KEY_emopencircle, 0x235F, 
+-IBUS_KEY_plus, IBUS_KEY_plus, 0x0023, 
+-IBUS_KEY_plus, IBUS_KEY_minus, 0x00B1, 
+-IBUS_KEY_plus, IBUS_KEY_O, 0x01A0, 
+-IBUS_KEY_plus, IBUS_KEY_U, 0x01AF, 
+-IBUS_KEY_plus, IBUS_KEY_o, 0x01A1, 
+-IBUS_KEY_plus, IBUS_KEY_u, 0x01B0, 
+-IBUS_KEY_comma, IBUS_KEY_space, 0x00B8, 
+-IBUS_KEY_comma, IBUS_KEY_quotedbl, 0x201E, 
+-IBUS_KEY_comma, IBUS_KEY_apostrophe, 0x201A, 
+-IBUS_KEY_comma, IBUS_KEY_comma, 0x00B8, 
+-IBUS_KEY_comma, IBUS_KEY_minus, 0x00AC, 
+-IBUS_KEY_comma, IBUS_KEY_A, 0x0104, 
+-IBUS_KEY_comma, IBUS_KEY_C, 0x00C7, 
+-IBUS_KEY_comma, IBUS_KEY_D, 0x1E10, 
+-IBUS_KEY_comma, IBUS_KEY_E, 0x0118, 
+-IBUS_KEY_comma, IBUS_KEY_G, 0x0122, 
+-IBUS_KEY_comma, IBUS_KEY_H, 0x1E28, 
+-IBUS_KEY_comma, IBUS_KEY_I, 0x012E, 
+-IBUS_KEY_comma, IBUS_KEY_K, 0x0136, 
+-IBUS_KEY_comma, IBUS_KEY_L, 0x013B, 
+-IBUS_KEY_comma, IBUS_KEY_N, 0x0145, 
+-IBUS_KEY_comma, IBUS_KEY_O, 0x01EA, 
+-IBUS_KEY_comma, IBUS_KEY_R, 0x0156, 
+-IBUS_KEY_comma, IBUS_KEY_S, 0x015E, 
+-IBUS_KEY_comma, IBUS_KEY_T, 0x0162, 
+-IBUS_KEY_comma, IBUS_KEY_U, 0x0172, 
+-IBUS_KEY_comma, IBUS_KEY_a, 0x0105, 
+-IBUS_KEY_comma, IBUS_KEY_c, 0x00E7, 
+-IBUS_KEY_comma, IBUS_KEY_d, 0x1E11, 
+-IBUS_KEY_comma, IBUS_KEY_e, 0x0119, 
+-IBUS_KEY_comma, IBUS_KEY_g, 0x0123, 
+-IBUS_KEY_comma, IBUS_KEY_h, 0x1E29, 
+-IBUS_KEY_comma, IBUS_KEY_i, 0x012F, 
+-IBUS_KEY_comma, IBUS_KEY_k, 0x0137, 
+-IBUS_KEY_comma, IBUS_KEY_l, 0x013C, 
+-IBUS_KEY_comma, IBUS_KEY_n, 0x0146, 
+-IBUS_KEY_comma, IBUS_KEY_o, 0x01EB, 
+-IBUS_KEY_comma, IBUS_KEY_r, 0x0157, 
+-IBUS_KEY_comma, IBUS_KEY_s, 0x015F, 
+-IBUS_KEY_comma, IBUS_KEY_t, 0x0163, 
+-IBUS_KEY_comma, IBUS_KEY_u, 0x0173, 
+-IBUS_KEY_minus, IBUS_KEY_space, 0x007E, 
+-IBUS_KEY_minus, IBUS_KEY_parenleft, 0x007B, 
+-IBUS_KEY_minus, IBUS_KEY_parenright, 0x007D, 
+-IBUS_KEY_minus, IBUS_KEY_plus, 0x00B1, 
+-IBUS_KEY_minus, IBUS_KEY_comma, 0x00AC, 
+-IBUS_KEY_minus, IBUS_KEY_slash, 0x233F, 
+-IBUS_KEY_minus, IBUS_KEY_colon, 0x00F7, 
+-IBUS_KEY_minus, IBUS_KEY_greater, 0x2192, 
+-IBUS_KEY_minus, IBUS_KEY_A, 0x0100, 
+-IBUS_KEY_minus, IBUS_KEY_D, 0x0110, 
+-IBUS_KEY_minus, IBUS_KEY_E, 0x0112, 
+-IBUS_KEY_minus, IBUS_KEY_I, 0x012A, 
+-IBUS_KEY_minus, IBUS_KEY_L, 0x00A3, 
+-IBUS_KEY_minus, IBUS_KEY_O, 0x014C, 
+-IBUS_KEY_minus, IBUS_KEY_U, 0x016A, 
+-IBUS_KEY_minus, IBUS_KEY_Y, 0x00A5, 
+-IBUS_KEY_minus, IBUS_KEY_backslash, 0x2340, 
+-IBUS_KEY_minus, IBUS_KEY_asciicircum, 0x00AF, 
+-IBUS_KEY_minus, IBUS_KEY_a, 0x0101, 
+-IBUS_KEY_minus, IBUS_KEY_d, 0x0111, 
+-IBUS_KEY_minus, IBUS_KEY_e, 0x0113, 
+-IBUS_KEY_minus, IBUS_KEY_i, 0x012B, 
+-IBUS_KEY_minus, IBUS_KEY_l, 0x00A3, 
+-IBUS_KEY_minus, IBUS_KEY_o, 0x014D, 
+-IBUS_KEY_minus, IBUS_KEY_u, 0x016B, 
+-IBUS_KEY_minus, IBUS_KEY_y, 0x00A5, 
+-IBUS_KEY_minus, 0x2191, 0x234F, 
+-IBUS_KEY_minus, 0x2193, 0x2356, 
+-IBUS_KEY_minus, IBUS_KEY_emopencircle, 0x2296, 
+-IBUS_KEY_period, IBUS_KEY_minus, 0x00B7, 
+-IBUS_KEY_period, IBUS_KEY_period, 0x2026, 
+-IBUS_KEY_period, IBUS_KEY_colon, 0x2235, 
+-IBUS_KEY_period, IBUS_KEY_less, 0x2039, 
+-IBUS_KEY_period, IBUS_KEY_equal, 0x2022, 
+-IBUS_KEY_period, IBUS_KEY_greater, 0x203A, 
+-IBUS_KEY_period, IBUS_KEY_A, 0x0226, 
+-IBUS_KEY_period, IBUS_KEY_B, 0x1E02, 
+-IBUS_KEY_period, IBUS_KEY_C, 0x010A, 
+-IBUS_KEY_period, IBUS_KEY_D, 0x1E0A, 
+-IBUS_KEY_period, IBUS_KEY_E, 0x0116, 
+-IBUS_KEY_period, IBUS_KEY_F, 0x1E1E, 
+-IBUS_KEY_period, IBUS_KEY_G, 0x0120, 
+-IBUS_KEY_period, IBUS_KEY_H, 0x1E22, 
+-IBUS_KEY_period, IBUS_KEY_I, 0x0130, 
+-IBUS_KEY_period, IBUS_KEY_M, 0x1E40, 
+-IBUS_KEY_period, IBUS_KEY_N, 0x1E44, 
+-IBUS_KEY_period, IBUS_KEY_O, 0x022E, 
+-IBUS_KEY_period, IBUS_KEY_P, 0x1E56, 
+-IBUS_KEY_period, IBUS_KEY_R, 0x1E58, 
+-IBUS_KEY_period, IBUS_KEY_S, 0x1E60, 
+-IBUS_KEY_period, IBUS_KEY_T, 0x1E6A, 
+-IBUS_KEY_period, IBUS_KEY_W, 0x1E86, 
+-IBUS_KEY_period, IBUS_KEY_X, 0x1E8A, 
+-IBUS_KEY_period, IBUS_KEY_Y, 0x1E8E, 
+-IBUS_KEY_period, IBUS_KEY_Z, 0x017B, 
+-IBUS_KEY_period, IBUS_KEY_asciicircum, 0x00B7, 
+-IBUS_KEY_period, IBUS_KEY_a, 0x0227, 
+-IBUS_KEY_period, IBUS_KEY_b, 0x1E03, 
+-IBUS_KEY_period, IBUS_KEY_c, 0x010B, 
+-IBUS_KEY_period, IBUS_KEY_d, 0x1E0B, 
+-IBUS_KEY_period, IBUS_KEY_e, 0x0117, 
+-IBUS_KEY_period, IBUS_KEY_f, 0x1E1F, 
+-IBUS_KEY_period, IBUS_KEY_g, 0x0121, 
+-IBUS_KEY_period, IBUS_KEY_h, 0x1E23, 
+-IBUS_KEY_period, IBUS_KEY_i, 0x0131, 
+-IBUS_KEY_period, IBUS_KEY_m, 0x1E41, 
+-IBUS_KEY_period, IBUS_KEY_n, 0x1E45, 
+-IBUS_KEY_period, IBUS_KEY_o, 0x022F, 
+-IBUS_KEY_period, IBUS_KEY_p, 0x1E57, 
+-IBUS_KEY_period, IBUS_KEY_r, 0x1E59, 
+-IBUS_KEY_period, IBUS_KEY_s, 0x1E61, 
+-IBUS_KEY_period, IBUS_KEY_t, 0x1E6B, 
+-IBUS_KEY_period, IBUS_KEY_w, 0x1E87, 
+-IBUS_KEY_period, IBUS_KEY_x, 0x1E8B, 
+-IBUS_KEY_period, IBUS_KEY_y, 0x1E8F, 
+-IBUS_KEY_period, IBUS_KEY_z, 0x017C, 
+-IBUS_KEY_period, 0x017F, 0x1E9B, 
+-IBUS_KEY_period, IBUS_KEY_Sacute, 0x1E64, 
+-IBUS_KEY_period, IBUS_KEY_Scaron, 0x1E66, 
+-IBUS_KEY_period, IBUS_KEY_sacute, 0x1E65, 
+-IBUS_KEY_period, IBUS_KEY_scaron, 0x1E67, 
+-IBUS_KEY_period, 0x1E62, 0x1E68, 
+-IBUS_KEY_period, 0x1E63, 0x1E69, 
+-IBUS_KEY_period, IBUS_KEY_emopencircle, 0x2299, 
+-IBUS_KEY_slash, IBUS_KEY_minus, 0x233F, 
+-IBUS_KEY_slash, IBUS_KEY_slash, 0x005C, 
+-IBUS_KEY_slash, IBUS_KEY_less, 0x005C, 
+-IBUS_KEY_slash, IBUS_KEY_equal, 0x2260, 
+-IBUS_KEY_slash, IBUS_KEY_C, 0x20A1, 
+-IBUS_KEY_slash, IBUS_KEY_D, 0x0110, 
+-IBUS_KEY_slash, IBUS_KEY_G, 0x01E4, 
+-IBUS_KEY_slash, IBUS_KEY_H, 0x0126, 
+-IBUS_KEY_slash, IBUS_KEY_I, 0x0197, 
+-IBUS_KEY_slash, IBUS_KEY_L, 0x0141, 
+-IBUS_KEY_slash, IBUS_KEY_O, 0x00D8, 
+-IBUS_KEY_slash, IBUS_KEY_T, 0x0166, 
+-IBUS_KEY_slash, IBUS_KEY_Z, 0x01B5, 
+-IBUS_KEY_slash, IBUS_KEY_asciicircum, 0x007C, 
+-IBUS_KEY_slash, IBUS_KEY_b, 0x0180, 
+-IBUS_KEY_slash, IBUS_KEY_c, 0x00A2, 
+-IBUS_KEY_slash, IBUS_KEY_d, 0x0111, 
+-IBUS_KEY_slash, IBUS_KEY_g, 0x01E5, 
+-IBUS_KEY_slash, IBUS_KEY_h, 0x0127, 
+-IBUS_KEY_slash, IBUS_KEY_i, 0x0268, 
+-IBUS_KEY_slash, IBUS_KEY_l, 0x0142, 
+-IBUS_KEY_slash, IBUS_KEY_m, 0x20A5, 
+-IBUS_KEY_slash, IBUS_KEY_o, 0x00F8, 
+-IBUS_KEY_slash, IBUS_KEY_t, 0x0167, 
+-IBUS_KEY_slash, IBUS_KEY_u, 0x00B5, 
+-IBUS_KEY_slash, IBUS_KEY_v, 0x221A, 
+-IBUS_KEY_slash, IBUS_KEY_z, 0x01B6, 
+-IBUS_KEY_slash, 0x0294, 0x02A1, 
+-IBUS_KEY_slash, 0x04AE, 0x04B0, 
+-IBUS_KEY_slash, 0x04AF, 0x04B1, 
+-IBUS_KEY_slash, IBUS_KEY_Cyrillic_ghe, 0x0493, 
+-IBUS_KEY_slash, IBUS_KEY_Cyrillic_ka, 0x049F, 
+-IBUS_KEY_slash, IBUS_KEY_Cyrillic_GHE, 0x0492, 
+-IBUS_KEY_slash, IBUS_KEY_Cyrillic_KA, 0x049E, 
+-IBUS_KEY_slash, IBUS_KEY_leftarrow, 0x219A, 
+-IBUS_KEY_slash, IBUS_KEY_rightarrow, 0x219B, 
+-IBUS_KEY_slash, 0x2194, 0x21AE, 
+-IBUS_KEY_slash, 0x2395, 0x2341, 
+-IBUS_KEY_0, IBUS_KEY_asterisk, 0x00B0, 
+-IBUS_KEY_0, IBUS_KEY_3, 0x2189, 
+-IBUS_KEY_0, IBUS_KEY_asciitilde, 0x236C, 
+-IBUS_KEY_1, IBUS_KEY_2, 0x00BD, 
+-IBUS_KEY_1, IBUS_KEY_3, 0x2153, 
+-IBUS_KEY_1, IBUS_KEY_4, 0x00BC, 
+-IBUS_KEY_1, IBUS_KEY_5, 0x2155, 
+-IBUS_KEY_1, IBUS_KEY_6, 0x2159, 
+-IBUS_KEY_1, IBUS_KEY_7, 0x2150, 
+-IBUS_KEY_1, IBUS_KEY_8, 0x215B, 
+-IBUS_KEY_1, IBUS_KEY_9, 0x2151, 
+-IBUS_KEY_1, IBUS_KEY_asciicircum, 0x00B9, 
+-IBUS_KEY_2, IBUS_KEY_3, 0x2154, 
+-IBUS_KEY_2, IBUS_KEY_5, 0x2156, 
+-IBUS_KEY_2, IBUS_KEY_asciicircum, 0x00B2, 
+-IBUS_KEY_3, IBUS_KEY_4, 0x00BE, 
+-IBUS_KEY_3, IBUS_KEY_5, 0x2157, 
+-IBUS_KEY_3, IBUS_KEY_8, 0x215C, 
+-IBUS_KEY_3, IBUS_KEY_asciicircum, 0x00B3, 
+-IBUS_KEY_4, IBUS_KEY_5, 0x2158, 
+-IBUS_KEY_5, IBUS_KEY_6, 0x215A, 
+-IBUS_KEY_5, IBUS_KEY_8, 0x215D, 
+-IBUS_KEY_7, IBUS_KEY_8, 0x215E, 
+-IBUS_KEY_8, IBUS_KEY_8, 0x221E, 
+-IBUS_KEY_colon, IBUS_KEY_parenleft, 0x2639, 
+-IBUS_KEY_colon, IBUS_KEY_parenright, 0x263A, 
+-IBUS_KEY_colon, IBUS_KEY_minus, 0x00F7, 
+-IBUS_KEY_colon, IBUS_KEY_period, 0x2234, 
+-IBUS_KEY_colon, 0x2395, 0x2360, 
+-IBUS_KEY_semicolon, IBUS_KEY_A, 0x0104, 
+-IBUS_KEY_semicolon, IBUS_KEY_E, 0x0118, 
+-IBUS_KEY_semicolon, IBUS_KEY_I, 0x012E, 
+-IBUS_KEY_semicolon, IBUS_KEY_O, 0x01EA, 
+-IBUS_KEY_semicolon, IBUS_KEY_S, 0x0218, 
+-IBUS_KEY_semicolon, IBUS_KEY_T, 0x021A, 
+-IBUS_KEY_semicolon, IBUS_KEY_U, 0x0172, 
+-IBUS_KEY_semicolon, IBUS_KEY_underscore, 0x236E, 
+-IBUS_KEY_semicolon, IBUS_KEY_a, 0x0105, 
+-IBUS_KEY_semicolon, IBUS_KEY_e, 0x0119, 
+-IBUS_KEY_semicolon, IBUS_KEY_i, 0x012F, 
+-IBUS_KEY_semicolon, IBUS_KEY_o, 0x01EB, 
+-IBUS_KEY_semicolon, IBUS_KEY_s, 0x0219, 
+-IBUS_KEY_semicolon, IBUS_KEY_t, 0x021B, 
+-IBUS_KEY_semicolon, IBUS_KEY_u, 0x0173, 
+-IBUS_KEY_less, IBUS_KEY_space, 0x02C7, 
+-IBUS_KEY_less, IBUS_KEY_quotedbl, 0x201C, 
+-IBUS_KEY_less, IBUS_KEY_apostrophe, 0x2018, 
+-IBUS_KEY_less, IBUS_KEY_minus, 0x2190, 
+-IBUS_KEY_less, IBUS_KEY_slash, 0x005C, 
+-IBUS_KEY_less, IBUS_KEY_3, 0x2665, 
+-IBUS_KEY_less, IBUS_KEY_less, 0x00AB, 
+-IBUS_KEY_less, IBUS_KEY_equal, 0x2264, 
+-IBUS_KEY_less, IBUS_KEY_greater, 0x22C4, 
+-IBUS_KEY_less, IBUS_KEY_C, 0x010C, 
+-IBUS_KEY_less, IBUS_KEY_D, 0x010E, 
+-IBUS_KEY_less, IBUS_KEY_E, 0x011A, 
+-IBUS_KEY_less, IBUS_KEY_L, 0x013D, 
+-IBUS_KEY_less, IBUS_KEY_N, 0x0147, 
+-IBUS_KEY_less, IBUS_KEY_R, 0x0158, 
+-IBUS_KEY_less, IBUS_KEY_S, 0x0160, 
+-IBUS_KEY_less, IBUS_KEY_T, 0x0164, 
+-IBUS_KEY_less, IBUS_KEY_Z, 0x017D, 
+-IBUS_KEY_less, IBUS_KEY_underscore, 0x2264, 
+-IBUS_KEY_less, IBUS_KEY_c, 0x010D, 
+-IBUS_KEY_less, IBUS_KEY_d, 0x010F, 
+-IBUS_KEY_less, IBUS_KEY_e, 0x011B, 
+-IBUS_KEY_less, IBUS_KEY_l, 0x013E, 
+-IBUS_KEY_less, IBUS_KEY_n, 0x0148, 
+-IBUS_KEY_less, IBUS_KEY_r, 0x0159, 
+-IBUS_KEY_less, IBUS_KEY_s, 0x0161, 
+-IBUS_KEY_less, IBUS_KEY_t, 0x0165, 
+-IBUS_KEY_less, IBUS_KEY_z, 0x017E, 
+-IBUS_KEY_less, 0x0338, 0x226E, 
+-IBUS_KEY_less, 0x2395, 0x2343, 
+-IBUS_KEY_equal, IBUS_KEY_slash, 0x2260, 
+-IBUS_KEY_equal, IBUS_KEY_greater, 0x21D2, 
+-IBUS_KEY_equal, IBUS_KEY_C, 0x20AC, 
+-IBUS_KEY_equal, IBUS_KEY_E, 0x20AC, 
+-IBUS_KEY_equal, IBUS_KEY_L, 0x20A4, 
+-IBUS_KEY_equal, IBUS_KEY_N, 0x20A6, 
+-IBUS_KEY_equal, IBUS_KEY_O, 0x0150, 
+-IBUS_KEY_equal, IBUS_KEY_U, 0x0170, 
+-IBUS_KEY_equal, IBUS_KEY_W, 0x20A9, 
+-IBUS_KEY_equal, IBUS_KEY_Y, 0x00A5, 
+-IBUS_KEY_equal, IBUS_KEY_underscore, 0x2261, 
+-IBUS_KEY_equal, IBUS_KEY_c, 0x20AC, 
+-IBUS_KEY_equal, IBUS_KEY_d, 0x20AB, 
+-IBUS_KEY_equal, IBUS_KEY_e, 0x20AC, 
+-IBUS_KEY_equal, IBUS_KEY_o, 0x0151, 
+-IBUS_KEY_equal, IBUS_KEY_u, 0x0171, 
+-IBUS_KEY_equal, IBUS_KEY_y, 0x00A5, 
+-IBUS_KEY_equal, 0x0338, 0x2260, 
+-IBUS_KEY_equal, IBUS_KEY_Cyrillic_u, 0x04F3, 
+-IBUS_KEY_equal, IBUS_KEY_Cyrillic_IE, 0x20AC, 
+-IBUS_KEY_equal, IBUS_KEY_Cyrillic_ES, 0x20AC, 
+-IBUS_KEY_equal, IBUS_KEY_Cyrillic_U, 0x04F2, 
+-IBUS_KEY_equal, 0x2395, 0x2338, 
+-IBUS_KEY_greater, IBUS_KEY_space, 0x005E, 
+-IBUS_KEY_greater, IBUS_KEY_quotedbl, 0x201D, 
+-IBUS_KEY_greater, IBUS_KEY_apostrophe, 0x2019, 
+-IBUS_KEY_greater, IBUS_KEY_less, 0x22C4, 
+-IBUS_KEY_greater, IBUS_KEY_equal, 0x2265, 
+-IBUS_KEY_greater, IBUS_KEY_greater, 0x00BB, 
+-IBUS_KEY_greater, IBUS_KEY_A, 0x00C2, 
+-IBUS_KEY_greater, IBUS_KEY_E, 0x00CA, 
+-IBUS_KEY_greater, IBUS_KEY_I, 0x00CE, 
+-IBUS_KEY_greater, IBUS_KEY_O, 0x00D4, 
+-IBUS_KEY_greater, IBUS_KEY_U, 0x00DB, 
+-IBUS_KEY_greater, IBUS_KEY_underscore, 0x2265, 
+-IBUS_KEY_greater, IBUS_KEY_a, 0x00E2, 
+-IBUS_KEY_greater, IBUS_KEY_e, 0x00EA, 
+-IBUS_KEY_greater, IBUS_KEY_i, 0x00EE, 
+-IBUS_KEY_greater, IBUS_KEY_o, 0x00F4, 
+-IBUS_KEY_greater, IBUS_KEY_u, 0x00FB, 
+-IBUS_KEY_greater, IBUS_KEY_diaeresis, 0x2369, 
+-IBUS_KEY_greater, 0x0338, 0x226F, 
+-IBUS_KEY_greater, 0x2395, 0x2344, 
+-IBUS_KEY_question, IBUS_KEY_exclam, 0x2E18, 
+-IBUS_KEY_question, IBUS_KEY_question, 0x00BF, 
+-IBUS_KEY_question, IBUS_KEY_A, 0x1EA2, 
+-IBUS_KEY_question, IBUS_KEY_E, 0x1EBA, 
+-IBUS_KEY_question, IBUS_KEY_I, 0x1EC8, 
+-IBUS_KEY_question, IBUS_KEY_O, 0x1ECE, 
+-IBUS_KEY_question, IBUS_KEY_U, 0x1EE6, 
+-IBUS_KEY_question, IBUS_KEY_Y, 0x1EF6, 
+-IBUS_KEY_question, IBUS_KEY_a, 0x1EA3, 
+-IBUS_KEY_question, IBUS_KEY_e, 0x1EBB, 
+-IBUS_KEY_question, IBUS_KEY_i, 0x1EC9, 
+-IBUS_KEY_question, IBUS_KEY_o, 0x1ECF, 
+-IBUS_KEY_question, IBUS_KEY_u, 0x1EE7, 
+-IBUS_KEY_question, IBUS_KEY_y, 0x1EF7, 
+-IBUS_KEY_question, IBUS_KEY_Acircumflex, 0x1EA8, 
+-IBUS_KEY_question, IBUS_KEY_Ecircumflex, 0x1EC2, 
+-IBUS_KEY_question, IBUS_KEY_Ocircumflex, 0x1ED4, 
+-IBUS_KEY_question, IBUS_KEY_acircumflex, 0x1EA9, 
+-IBUS_KEY_question, IBUS_KEY_ecircumflex, 0x1EC3, 
+-IBUS_KEY_question, IBUS_KEY_ocircumflex, 0x1ED5, 
+-IBUS_KEY_question, IBUS_KEY_Abreve, 0x1EB2, 
+-IBUS_KEY_question, IBUS_KEY_abreve, 0x1EB3, 
+-IBUS_KEY_question, 0x2395, 0x2370, 
+-IBUS_KEY_A, IBUS_KEY_quotedbl, 0x00C4, 
+-IBUS_KEY_A, IBUS_KEY_apostrophe, 0x00C1, 
+-IBUS_KEY_A, IBUS_KEY_parenleft, 0x0102, 
+-IBUS_KEY_A, IBUS_KEY_asterisk, 0x00C5, 
+-IBUS_KEY_A, IBUS_KEY_comma, 0x0104, 
+-IBUS_KEY_A, IBUS_KEY_minus, 0x0100, 
+-IBUS_KEY_A, IBUS_KEY_semicolon, 0x0104, 
+-IBUS_KEY_A, IBUS_KEY_greater, 0x00C2, 
+-IBUS_KEY_A, IBUS_KEY_A, 0x00C5, 
+-IBUS_KEY_A, IBUS_KEY_E, 0x00C6, 
+-IBUS_KEY_A, IBUS_KEY_T, 0x0040, 
+-IBUS_KEY_A, IBUS_KEY_asciicircum, 0x00C2, 
+-IBUS_KEY_A, IBUS_KEY_underscore, 0x0100, 
+-IBUS_KEY_A, IBUS_KEY_grave, 0x00C0, 
+-IBUS_KEY_A, IBUS_KEY_asciitilde, 0x00C3, 
+-IBUS_KEY_A, IBUS_KEY_diaeresis, 0x00C4, 
+-IBUS_KEY_A, IBUS_KEY_acute, 0x00C1, 
+-IBUS_KEY_B, IBUS_KEY_period, 0x1E02, 
+-IBUS_KEY_C, IBUS_KEY_apostrophe, 0x0106, 
+-IBUS_KEY_C, IBUS_KEY_comma, 0x00C7, 
+-IBUS_KEY_C, IBUS_KEY_period, 0x010A, 
+-IBUS_KEY_C, IBUS_KEY_slash, 0x20A1, 
+-IBUS_KEY_C, IBUS_KEY_less, 0x010C, 
+-IBUS_KEY_C, IBUS_KEY_equal, 0x20AC, 
+-IBUS_KEY_C, IBUS_KEY_E, 0x20A0, 
+-IBUS_KEY_C, IBUS_KEY_O, 0x00A9, 
+-IBUS_KEY_C, IBUS_KEY_o, 0x00A9, 
+-IBUS_KEY_C, IBUS_KEY_r, 0x20A2, 
+-IBUS_KEY_C, IBUS_KEY_bar, 0x00A2, 
+-IBUS_KEY_D, IBUS_KEY_comma, 0x1E10, 
+-IBUS_KEY_D, IBUS_KEY_minus, 0x0110, 
+-IBUS_KEY_D, IBUS_KEY_period, 0x1E0A, 
+-IBUS_KEY_D, IBUS_KEY_less, 0x010E, 
+-IBUS_KEY_D, IBUS_KEY_H, 0x00D0, 
+-IBUS_KEY_E, IBUS_KEY_quotedbl, 0x00CB, 
+-IBUS_KEY_E, IBUS_KEY_apostrophe, 0x00C9, 
+-IBUS_KEY_E, IBUS_KEY_comma, 0x0118, 
+-IBUS_KEY_E, IBUS_KEY_minus, 0x0112, 
+-IBUS_KEY_E, IBUS_KEY_period, 0x0116, 
+-IBUS_KEY_E, IBUS_KEY_semicolon, 0x0118, 
+-IBUS_KEY_E, IBUS_KEY_less, 0x011A, 
+-IBUS_KEY_E, IBUS_KEY_equal, 0x20AC, 
+-IBUS_KEY_E, IBUS_KEY_greater, 0x00CA, 
+-IBUS_KEY_E, IBUS_KEY_asciicircum, 0x00CA, 
+-IBUS_KEY_E, IBUS_KEY_underscore, 0x0112, 
+-IBUS_KEY_E, IBUS_KEY_grave, 0x00C8, 
+-IBUS_KEY_E, IBUS_KEY_diaeresis, 0x00CB, 
+-IBUS_KEY_E, IBUS_KEY_acute, 0x00C9, 
+-IBUS_KEY_F, IBUS_KEY_period, 0x1E1E, 
+-IBUS_KEY_F, IBUS_KEY_i, 0xFB03, 
+-IBUS_KEY_F, IBUS_KEY_l, 0xFB04, 
+-IBUS_KEY_F, IBUS_KEY_r, 0x20A3, 
+-IBUS_KEY_G, IBUS_KEY_parenleft, 0x011E, 
+-IBUS_KEY_G, IBUS_KEY_comma, 0x0122, 
+-IBUS_KEY_G, IBUS_KEY_period, 0x0120, 
+-IBUS_KEY_G, IBUS_KEY_U, 0x011E, 
+-IBUS_KEY_G, IBUS_KEY_breve, 0x011E, 
+-IBUS_KEY_H, IBUS_KEY_comma, 0x1E28, 
+-IBUS_KEY_I, IBUS_KEY_quotedbl, 0x00CF, 
+-IBUS_KEY_I, IBUS_KEY_apostrophe, 0x00CD, 
+-IBUS_KEY_I, IBUS_KEY_comma, 0x012E, 
+-IBUS_KEY_I, IBUS_KEY_minus, 0x012A, 
+-IBUS_KEY_I, IBUS_KEY_period, 0x0130, 
+-IBUS_KEY_I, IBUS_KEY_semicolon, 0x012E, 
+-IBUS_KEY_I, IBUS_KEY_greater, 0x00CE, 
+-IBUS_KEY_I, IBUS_KEY_J, 0x0132, 
+-IBUS_KEY_I, IBUS_KEY_asciicircum, 0x00CE, 
+-IBUS_KEY_I, IBUS_KEY_underscore, 0x012A, 
+-IBUS_KEY_I, IBUS_KEY_grave, 0x00CC, 
+-IBUS_KEY_I, IBUS_KEY_j, 0x0132, 
+-IBUS_KEY_I, IBUS_KEY_asciitilde, 0x0128, 
+-IBUS_KEY_I, IBUS_KEY_diaeresis, 0x00CF, 
+-IBUS_KEY_I, IBUS_KEY_acute, 0x00CD, 
+-IBUS_KEY_K, IBUS_KEY_comma, 0x0136, 
+-IBUS_KEY_L, IBUS_KEY_apostrophe, 0x0139, 
+-IBUS_KEY_L, IBUS_KEY_comma, 0x013B, 
+-IBUS_KEY_L, IBUS_KEY_minus, 0x00A3, 
+-IBUS_KEY_L, IBUS_KEY_slash, 0x0141, 
+-IBUS_KEY_L, IBUS_KEY_less, 0x013D, 
+-IBUS_KEY_L, IBUS_KEY_equal, 0x20A4, 
+-IBUS_KEY_L, IBUS_KEY_V, 0x007C, 
+-IBUS_KEY_M, IBUS_KEY_period, 0x1E40, 
+-IBUS_KEY_N, IBUS_KEY_apostrophe, 0x0143, 
+-IBUS_KEY_N, IBUS_KEY_comma, 0x0145, 
+-IBUS_KEY_N, IBUS_KEY_less, 0x0147, 
+-IBUS_KEY_N, IBUS_KEY_equal, 0x20A6, 
+-IBUS_KEY_N, IBUS_KEY_G, 0x014A, 
+-IBUS_KEY_N, IBUS_KEY_O, 0x2116, 
+-IBUS_KEY_N, IBUS_KEY_o, 0x2116, 
+-IBUS_KEY_N, IBUS_KEY_asciitilde, 0x00D1, 
+-IBUS_KEY_O, IBUS_KEY_quotedbl, 0x00D6, 
+-IBUS_KEY_O, IBUS_KEY_apostrophe, 0x00D3, 
+-IBUS_KEY_O, IBUS_KEY_comma, 0x01EA, 
+-IBUS_KEY_O, IBUS_KEY_minus, 0x014C, 
+-IBUS_KEY_O, IBUS_KEY_slash, 0x00D8, 
+-IBUS_KEY_O, IBUS_KEY_semicolon, 0x01EA, 
+-IBUS_KEY_O, IBUS_KEY_greater, 0x00D4, 
+-IBUS_KEY_O, IBUS_KEY_A, 0x24B6, 
+-IBUS_KEY_O, IBUS_KEY_C, 0x00A9, 
+-IBUS_KEY_O, IBUS_KEY_E, 0x0152, 
+-IBUS_KEY_O, IBUS_KEY_R, 0x00AE, 
+-IBUS_KEY_O, IBUS_KEY_S, 0x00A7, 
+-IBUS_KEY_O, IBUS_KEY_X, 0x00A4, 
+-IBUS_KEY_O, IBUS_KEY_asciicircum, 0x00D4, 
+-IBUS_KEY_O, IBUS_KEY_underscore, 0x014C, 
+-IBUS_KEY_O, IBUS_KEY_grave, 0x00D2, 
+-IBUS_KEY_O, IBUS_KEY_c, 0x00A9, 
+-IBUS_KEY_O, IBUS_KEY_r, 0x00AE, 
+-IBUS_KEY_O, IBUS_KEY_x, 0x00A4, 
+-IBUS_KEY_O, IBUS_KEY_asciitilde, 0x00D5, 
+-IBUS_KEY_O, IBUS_KEY_diaeresis, 0x00D6, 
+-IBUS_KEY_O, IBUS_KEY_acute, 0x00D3, 
+-IBUS_KEY_P, IBUS_KEY_exclam, 0x00B6, 
+-IBUS_KEY_P, IBUS_KEY_period, 0x1E56, 
+-IBUS_KEY_P, IBUS_KEY_P, 0x00B6, 
+-IBUS_KEY_P, IBUS_KEY_t, 0x20A7, 
+-IBUS_KEY_R, IBUS_KEY_apostrophe, 0x0154, 
+-IBUS_KEY_R, IBUS_KEY_comma, 0x0156, 
+-IBUS_KEY_R, IBUS_KEY_less, 0x0158, 
+-IBUS_KEY_R, IBUS_KEY_O, 0x00AE, 
+-IBUS_KEY_R, IBUS_KEY_s, 0x20A8, 
+-IBUS_KEY_S, IBUS_KEY_exclam, 0x00A7, 
+-IBUS_KEY_S, IBUS_KEY_apostrophe, 0x015A, 
+-IBUS_KEY_S, IBUS_KEY_comma, 0x015E, 
+-IBUS_KEY_S, IBUS_KEY_period, 0x1E60, 
+-IBUS_KEY_S, IBUS_KEY_semicolon, 0x0218, 
+-IBUS_KEY_S, IBUS_KEY_less, 0x0160, 
+-IBUS_KEY_S, IBUS_KEY_M, 0x2120, 
+-IBUS_KEY_S, IBUS_KEY_O, 0x00A7, 
+-IBUS_KEY_S, IBUS_KEY_S, 0x1E9E, 
+-IBUS_KEY_S, IBUS_KEY_m, 0x2120, 
+-IBUS_KEY_T, IBUS_KEY_comma, 0x0162, 
+-IBUS_KEY_T, IBUS_KEY_minus, 0x0166, 
+-IBUS_KEY_T, IBUS_KEY_period, 0x1E6A, 
+-IBUS_KEY_T, IBUS_KEY_slash, 0x0166, 
+-IBUS_KEY_T, IBUS_KEY_semicolon, 0x021A, 
+-IBUS_KEY_T, IBUS_KEY_less, 0x0164, 
+-IBUS_KEY_T, IBUS_KEY_H, 0x00DE, 
+-IBUS_KEY_T, IBUS_KEY_M, 0x2122, 
+-IBUS_KEY_T, IBUS_KEY_m, 0x2122, 
+-IBUS_KEY_U, IBUS_KEY_quotedbl, 0x00DC, 
+-IBUS_KEY_U, IBUS_KEY_apostrophe, 0x00DA, 
+-IBUS_KEY_U, IBUS_KEY_asterisk, 0x016E, 
+-IBUS_KEY_U, IBUS_KEY_comma, 0x0172, 
+-IBUS_KEY_U, IBUS_KEY_minus, 0x016A, 
+-IBUS_KEY_U, IBUS_KEY_semicolon, 0x0172, 
+-IBUS_KEY_U, IBUS_KEY_greater, 0x00DB, 
+-IBUS_KEY_U, IBUS_KEY_A, 0x0102, 
+-IBUS_KEY_U, IBUS_KEY_E, 0x0114, 
+-IBUS_KEY_U, IBUS_KEY_G, 0x011E, 
+-IBUS_KEY_U, IBUS_KEY_I, 0x012C, 
+-IBUS_KEY_U, IBUS_KEY_O, 0x014E, 
+-IBUS_KEY_U, IBUS_KEY_U, 0x016C, 
+-IBUS_KEY_U, IBUS_KEY_asciicircum, 0x00DB, 
+-IBUS_KEY_U, IBUS_KEY_underscore, 0x016A, 
+-IBUS_KEY_U, IBUS_KEY_grave, 0x00D9, 
+-IBUS_KEY_U, IBUS_KEY_a, 0x0103, 
+-IBUS_KEY_U, IBUS_KEY_e, 0x0115, 
+-IBUS_KEY_U, IBUS_KEY_g, 0x011F, 
+-IBUS_KEY_U, IBUS_KEY_i, 0x012D, 
+-IBUS_KEY_U, IBUS_KEY_o, 0x014F, 
+-IBUS_KEY_U, IBUS_KEY_u, 0x016D, 
+-IBUS_KEY_U, IBUS_KEY_asciitilde, 0x0168, 
+-IBUS_KEY_U, IBUS_KEY_diaeresis, 0x00DC, 
+-IBUS_KEY_U, IBUS_KEY_acute, 0x00DA, 
+-IBUS_KEY_U, 0x0228, 0x1E1C, 
+-IBUS_KEY_U, 0x0229, 0x1E1D, 
+-IBUS_KEY_U, IBUS_KEY_Cyrillic_a, 0x04D1, 
+-IBUS_KEY_U, IBUS_KEY_Cyrillic_ie, 0x04D7, 
+-IBUS_KEY_U, IBUS_KEY_Cyrillic_i, 0x0439, 
+-IBUS_KEY_U, IBUS_KEY_Cyrillic_u, 0x045E, 
+-IBUS_KEY_U, IBUS_KEY_Cyrillic_zhe, 0x04C2, 
+-IBUS_KEY_U, IBUS_KEY_Cyrillic_A, 0x04D0, 
+-IBUS_KEY_U, IBUS_KEY_Cyrillic_IE, 0x04D6, 
+-IBUS_KEY_U, IBUS_KEY_Cyrillic_I, 0x0419, 
+-IBUS_KEY_U, IBUS_KEY_Cyrillic_U, 0x040E, 
+-IBUS_KEY_U, IBUS_KEY_Cyrillic_ZHE, 0x04C1, 
+-IBUS_KEY_U, IBUS_KEY_Greek_ALPHA, 0x1FB8, 
+-IBUS_KEY_U, IBUS_KEY_Greek_IOTA, 0x1FD8, 
+-IBUS_KEY_U, IBUS_KEY_Greek_UPSILON, 0x1FE8, 
+-IBUS_KEY_U, IBUS_KEY_Greek_alpha, 0x1FB0, 
+-IBUS_KEY_U, IBUS_KEY_Greek_iota, 0x1FD0, 
+-IBUS_KEY_U, IBUS_KEY_Greek_upsilon, 0x1FE0, 
+-IBUS_KEY_U, 0x1EA0, 0x1EB6, 
+-IBUS_KEY_U, 0x1EA1, 0x1EB7, 
+-IBUS_KEY_V, IBUS_KEY_L, 0x007C, 
+-IBUS_KEY_W, IBUS_KEY_equal, 0x20A9, 
+-IBUS_KEY_W, IBUS_KEY_asciicircum, 0x0174, 
+-IBUS_KEY_X, IBUS_KEY_O, 0x00A4, 
+-IBUS_KEY_X, IBUS_KEY_o, 0x00A4, 
+-IBUS_KEY_Y, IBUS_KEY_quotedbl, 0x0178, 
+-IBUS_KEY_Y, IBUS_KEY_apostrophe, 0x00DD, 
+-IBUS_KEY_Y, IBUS_KEY_minus, 0x00A5, 
+-IBUS_KEY_Y, IBUS_KEY_equal, 0x00A5, 
+-IBUS_KEY_Y, IBUS_KEY_asciicircum, 0x0176, 
+-IBUS_KEY_Y, IBUS_KEY_diaeresis, 0x0178, 
+-IBUS_KEY_Y, IBUS_KEY_acute, 0x00DD, 
+-IBUS_KEY_Z, IBUS_KEY_apostrophe, 0x0179, 
+-IBUS_KEY_Z, IBUS_KEY_period, 0x017B, 
+-IBUS_KEY_Z, IBUS_KEY_less, 0x017D, 
+-IBUS_KEY_bracketleft, IBUS_KEY_bracketright, 0x2337, 
+-IBUS_KEY_backslash, IBUS_KEY_minus, 0x2340, 
+-IBUS_KEY_backslash, 0x2395, 0x2342, 
+-IBUS_KEY_backslash, IBUS_KEY_emopencircle, 0x2349, 
+-IBUS_KEY_bracketright, IBUS_KEY_bracketleft, 0x2337, 
+-IBUS_KEY_asciicircum, IBUS_KEY_space, 0x005E, 
+-IBUS_KEY_asciicircum, IBUS_KEY_parenleft, 0x207D, 
+-IBUS_KEY_asciicircum, IBUS_KEY_parenright, 0x207E, 
+-IBUS_KEY_asciicircum, IBUS_KEY_plus, 0x207A, 
+-IBUS_KEY_asciicircum, IBUS_KEY_minus, 0x00AF, 
+-IBUS_KEY_asciicircum, IBUS_KEY_period, 0x00B7, 
+-IBUS_KEY_asciicircum, IBUS_KEY_slash, 0x007C, 
+-IBUS_KEY_asciicircum, IBUS_KEY_0, 0x2070, 
+-IBUS_KEY_asciicircum, IBUS_KEY_1, 0x00B9, 
+-IBUS_KEY_asciicircum, IBUS_KEY_2, 0x00B2, 
+-IBUS_KEY_asciicircum, IBUS_KEY_3, 0x00B3, 
+-IBUS_KEY_asciicircum, IBUS_KEY_4, 0x2074, 
+-IBUS_KEY_asciicircum, IBUS_KEY_5, 0x2075, 
+-IBUS_KEY_asciicircum, IBUS_KEY_6, 0x2076, 
+-IBUS_KEY_asciicircum, IBUS_KEY_7, 0x2077, 
+-IBUS_KEY_asciicircum, IBUS_KEY_8, 0x2078, 
+-IBUS_KEY_asciicircum, IBUS_KEY_9, 0x2079, 
+-IBUS_KEY_asciicircum, IBUS_KEY_equal, 0x207C, 
+-IBUS_KEY_asciicircum, IBUS_KEY_A, 0x00C2, 
+-IBUS_KEY_asciicircum, IBUS_KEY_C, 0x0108, 
+-IBUS_KEY_asciicircum, IBUS_KEY_E, 0x00CA, 
+-IBUS_KEY_asciicircum, IBUS_KEY_G, 0x011C, 
+-IBUS_KEY_asciicircum, IBUS_KEY_H, 0x0124, 
+-IBUS_KEY_asciicircum, IBUS_KEY_I, 0x00CE, 
+-IBUS_KEY_asciicircum, IBUS_KEY_J, 0x0134, 
+-IBUS_KEY_asciicircum, IBUS_KEY_O, 0x00D4, 
+-IBUS_KEY_asciicircum, IBUS_KEY_S, 0x015C, 
+-IBUS_KEY_asciicircum, IBUS_KEY_U, 0x00DB, 
+-IBUS_KEY_asciicircum, IBUS_KEY_W, 0x0174, 
+-IBUS_KEY_asciicircum, IBUS_KEY_Y, 0x0176, 
+-IBUS_KEY_asciicircum, IBUS_KEY_Z, 0x1E90, 
+-IBUS_KEY_asciicircum, IBUS_KEY_a, 0x00E2, 
+-IBUS_KEY_asciicircum, IBUS_KEY_c, 0x0109, 
+-IBUS_KEY_asciicircum, IBUS_KEY_e, 0x00EA, 
+-IBUS_KEY_asciicircum, IBUS_KEY_g, 0x011D, 
+-IBUS_KEY_asciicircum, IBUS_KEY_h, 0x0125, 
+-IBUS_KEY_asciicircum, IBUS_KEY_i, 0x00EE, 
+-IBUS_KEY_asciicircum, IBUS_KEY_j, 0x0135, 
+-IBUS_KEY_asciicircum, IBUS_KEY_o, 0x00F4, 
+-IBUS_KEY_asciicircum, IBUS_KEY_s, 0x015D, 
+-IBUS_KEY_asciicircum, IBUS_KEY_u, 0x00FB, 
+-IBUS_KEY_asciicircum, IBUS_KEY_w, 0x0175, 
+-IBUS_KEY_asciicircum, IBUS_KEY_y, 0x0177, 
+-IBUS_KEY_asciicircum, IBUS_KEY_z, 0x1E91, 
+-IBUS_KEY_asciicircum, 0x1EA0, 0x1EAC, 
+-IBUS_KEY_asciicircum, 0x1EA1, 0x1EAD, 
+-IBUS_KEY_asciicircum, 0x1EB8, 0x1EC6, 
+-IBUS_KEY_asciicircum, 0x1EB9, 0x1EC7, 
+-IBUS_KEY_asciicircum, 0x1ECC, 0x1ED8, 
+-IBUS_KEY_asciicircum, 0x1ECD, 0x1ED9, 
+-IBUS_KEY_asciicircum, 0x2212, 0x207B, 
+-IBUS_KEY_asciicircum, 0x4E00, 0x3192, 
+-IBUS_KEY_asciicircum, 0x4E01, 0x319C, 
+-IBUS_KEY_asciicircum, 0x4E09, 0x3194, 
+-IBUS_KEY_asciicircum, 0x4E0A, 0x3196, 
+-IBUS_KEY_asciicircum, 0x4E0B, 0x3198, 
+-IBUS_KEY_asciicircum, 0x4E19, 0x319B, 
+-IBUS_KEY_asciicircum, 0x4E2D, 0x3197, 
+-IBUS_KEY_asciicircum, 0x4E59, 0x319A, 
+-IBUS_KEY_asciicircum, 0x4E8C, 0x3193, 
+-IBUS_KEY_asciicircum, 0x4EBA, 0x319F, 
+-IBUS_KEY_asciicircum, 0x56DB, 0x3195, 
+-IBUS_KEY_asciicircum, 0x5730, 0x319E, 
+-IBUS_KEY_asciicircum, 0x5929, 0x319D, 
+-IBUS_KEY_asciicircum, 0x7532, 0x3199, 
+-IBUS_KEY_asciicircum, IBUS_KEY_KP_Space, 0x00B2, 
+-IBUS_KEY_asciicircum, IBUS_KEY_KP_Add, 0x207A, 
+-IBUS_KEY_asciicircum, IBUS_KEY_KP_0, 0x2070, 
+-IBUS_KEY_asciicircum, IBUS_KEY_KP_1, 0x00B9, 
+-IBUS_KEY_asciicircum, IBUS_KEY_KP_2, 0x00B2, 
+-IBUS_KEY_asciicircum, IBUS_KEY_KP_3, 0x00B3, 
+-IBUS_KEY_asciicircum, IBUS_KEY_KP_4, 0x2074, 
+-IBUS_KEY_asciicircum, IBUS_KEY_KP_5, 0x2075, 
+-IBUS_KEY_asciicircum, IBUS_KEY_KP_6, 0x2076, 
+-IBUS_KEY_asciicircum, IBUS_KEY_KP_7, 0x2077, 
+-IBUS_KEY_asciicircum, IBUS_KEY_KP_8, 0x2078, 
+-IBUS_KEY_asciicircum, IBUS_KEY_KP_9, 0x2079, 
+-IBUS_KEY_asciicircum, IBUS_KEY_KP_Equal, 0x207C, 
+-IBUS_KEY_underscore, IBUS_KEY_apostrophe, 0x2358, 
+-IBUS_KEY_underscore, IBUS_KEY_parenleft, 0x208D, 
+-IBUS_KEY_underscore, IBUS_KEY_parenright, 0x208E, 
+-IBUS_KEY_underscore, IBUS_KEY_plus, 0x208A, 
+-IBUS_KEY_underscore, IBUS_KEY_0, 0x2080, 
+-IBUS_KEY_underscore, IBUS_KEY_1, 0x2081, 
+-IBUS_KEY_underscore, IBUS_KEY_2, 0x2082, 
+-IBUS_KEY_underscore, IBUS_KEY_3, 0x2083, 
+-IBUS_KEY_underscore, IBUS_KEY_4, 0x2084, 
+-IBUS_KEY_underscore, IBUS_KEY_5, 0x2085, 
+-IBUS_KEY_underscore, IBUS_KEY_6, 0x2086, 
+-IBUS_KEY_underscore, IBUS_KEY_7, 0x2087, 
+-IBUS_KEY_underscore, IBUS_KEY_8, 0x2088, 
+-IBUS_KEY_underscore, IBUS_KEY_9, 0x2089, 
+-IBUS_KEY_underscore, IBUS_KEY_less, 0x2264, 
+-IBUS_KEY_underscore, IBUS_KEY_equal, 0x208C, 
+-IBUS_KEY_underscore, IBUS_KEY_greater, 0x2265, 
+-IBUS_KEY_underscore, IBUS_KEY_A, 0x0100, 
+-IBUS_KEY_underscore, IBUS_KEY_E, 0x0112, 
+-IBUS_KEY_underscore, IBUS_KEY_G, 0x1E20, 
+-IBUS_KEY_underscore, IBUS_KEY_I, 0x012A, 
+-IBUS_KEY_underscore, IBUS_KEY_O, 0x014C, 
+-IBUS_KEY_underscore, IBUS_KEY_U, 0x016A, 
+-IBUS_KEY_underscore, IBUS_KEY_Y, 0x0232, 
+-IBUS_KEY_underscore, IBUS_KEY_asciicircum, 0x00AF, 
+-IBUS_KEY_underscore, IBUS_KEY_underscore, 0x00AF, 
+-IBUS_KEY_underscore, IBUS_KEY_a, 0x0101, 
+-IBUS_KEY_underscore, IBUS_KEY_e, 0x0113, 
+-IBUS_KEY_underscore, IBUS_KEY_g, 0x1E21, 
+-IBUS_KEY_underscore, IBUS_KEY_i, 0x012B, 
+-IBUS_KEY_underscore, IBUS_KEY_o, 0x014D, 
+-IBUS_KEY_underscore, IBUS_KEY_u, 0x016B, 
+-IBUS_KEY_underscore, IBUS_KEY_y, 0x0233, 
+-IBUS_KEY_underscore, IBUS_KEY_Adiaeresis, 0x01DE, 
+-IBUS_KEY_underscore, IBUS_KEY_AE, 0x01E2, 
+-IBUS_KEY_underscore, IBUS_KEY_Otilde, 0x022C, 
+-IBUS_KEY_underscore, IBUS_KEY_Odiaeresis, 0x022A, 
+-IBUS_KEY_underscore, IBUS_KEY_Udiaeresis, 0x01D5, 
+-IBUS_KEY_underscore, IBUS_KEY_adiaeresis, 0x01DF, 
+-IBUS_KEY_underscore, IBUS_KEY_ae, 0x01E3, 
+-IBUS_KEY_underscore, IBUS_KEY_otilde, 0x022D, 
+-IBUS_KEY_underscore, IBUS_KEY_odiaeresis, 0x022B, 
+-IBUS_KEY_underscore, IBUS_KEY_udiaeresis, 0x01D6, 
+-IBUS_KEY_underscore, 0x01EA, 0x01EC, 
+-IBUS_KEY_underscore, 0x01EB, 0x01ED, 
+-IBUS_KEY_underscore, 0x0226, 0x01E0, 
+-IBUS_KEY_underscore, 0x0227, 0x01E1, 
+-IBUS_KEY_underscore, 0x022E, 0x0230, 
+-IBUS_KEY_underscore, 0x022F, 0x0231, 
+-IBUS_KEY_underscore, IBUS_KEY_Cyrillic_i, 0x04E3, 
+-IBUS_KEY_underscore, IBUS_KEY_Cyrillic_u, 0x04EF, 
+-IBUS_KEY_underscore, IBUS_KEY_Cyrillic_I, 0x04E2, 
+-IBUS_KEY_underscore, IBUS_KEY_Cyrillic_U, 0x04EE, 
+-IBUS_KEY_underscore, IBUS_KEY_Greek_ALPHA, 0x1FB9, 
+-IBUS_KEY_underscore, IBUS_KEY_Greek_IOTA, 0x1FD9, 
+-IBUS_KEY_underscore, IBUS_KEY_Greek_UPSILON, 0x1FE9, 
+-IBUS_KEY_underscore, IBUS_KEY_Greek_alpha, 0x1FB1, 
+-IBUS_KEY_underscore, IBUS_KEY_Greek_iota, 0x1FD1, 
+-IBUS_KEY_underscore, IBUS_KEY_Greek_upsilon, 0x1FE1, 
+-IBUS_KEY_underscore, 0x1E36, 0x1E38, 
+-IBUS_KEY_underscore, 0x1E37, 0x1E39, 
+-IBUS_KEY_underscore, 0x1E5A, 0x1E5C, 
+-IBUS_KEY_underscore, 0x1E5B, 0x1E5D, 
+-IBUS_KEY_underscore, 0x2206, 0x2359, 
+-IBUS_KEY_underscore, 0x220A, 0x2377, 
+-IBUS_KEY_underscore, 0x2212, 0x208B, 
+-IBUS_KEY_underscore, 0x2218, 0x235B, 
+-IBUS_KEY_underscore, 0x2260, 0x2262, 
+-IBUS_KEY_underscore, 0x2282, 0x2286, 
+-IBUS_KEY_underscore, 0x2283, 0x2287, 
+-IBUS_KEY_underscore, IBUS_KEY_downtack, 0x234A, 
+-IBUS_KEY_underscore, 0x22C4, 0x235A, 
+-IBUS_KEY_underscore, 0x2373, 0x2378, 
+-IBUS_KEY_underscore, 0x2375, 0x2379, 
+-IBUS_KEY_underscore, 0x237A, 0x2376, 
+-IBUS_KEY_underscore, IBUS_KEY_emopencircle, 0x235C, 
+-IBUS_KEY_underscore, IBUS_KEY_KP_Space, 0x2082, 
+-IBUS_KEY_underscore, IBUS_KEY_KP_Add, 0x208A, 
+-IBUS_KEY_underscore, IBUS_KEY_KP_0, 0x2080, 
+-IBUS_KEY_underscore, IBUS_KEY_KP_1, 0x2081, 
+-IBUS_KEY_underscore, IBUS_KEY_KP_2, 0x2082, 
+-IBUS_KEY_underscore, IBUS_KEY_KP_3, 0x2083, 
+-IBUS_KEY_underscore, IBUS_KEY_KP_4, 0x2084, 
+-IBUS_KEY_underscore, IBUS_KEY_KP_5, 0x2085, 
+-IBUS_KEY_underscore, IBUS_KEY_KP_6, 0x2086, 
+-IBUS_KEY_underscore, IBUS_KEY_KP_7, 0x2087, 
+-IBUS_KEY_underscore, IBUS_KEY_KP_8, 0x2088, 
+-IBUS_KEY_underscore, IBUS_KEY_KP_9, 0x2089, 
+-IBUS_KEY_underscore, IBUS_KEY_KP_Equal, 0x208C, 
+-IBUS_KEY_grave, IBUS_KEY_space, 0x0060, 
+-IBUS_KEY_grave, IBUS_KEY_A, 0x00C0, 
+-IBUS_KEY_grave, IBUS_KEY_E, 0x00C8, 
+-IBUS_KEY_grave, IBUS_KEY_I, 0x00CC, 
+-IBUS_KEY_grave, IBUS_KEY_N, 0x01F8, 
+-IBUS_KEY_grave, IBUS_KEY_O, 0x00D2, 
+-IBUS_KEY_grave, IBUS_KEY_U, 0x00D9, 
+-IBUS_KEY_grave, IBUS_KEY_W, 0x1E80, 
+-IBUS_KEY_grave, IBUS_KEY_Y, 0x1EF2, 
+-IBUS_KEY_grave, IBUS_KEY_a, 0x00E0, 
+-IBUS_KEY_grave, IBUS_KEY_e, 0x00E8, 
+-IBUS_KEY_grave, IBUS_KEY_i, 0x00EC, 
+-IBUS_KEY_grave, IBUS_KEY_n, 0x01F9, 
+-IBUS_KEY_grave, IBUS_KEY_o, 0x00F2, 
+-IBUS_KEY_grave, IBUS_KEY_u, 0x00F9, 
+-IBUS_KEY_grave, IBUS_KEY_w, 0x1E81, 
+-IBUS_KEY_grave, IBUS_KEY_y, 0x1EF3, 
+-IBUS_KEY_grave, IBUS_KEY_Acircumflex, 0x1EA6, 
+-IBUS_KEY_grave, IBUS_KEY_Ecircumflex, 0x1EC0, 
+-IBUS_KEY_grave, IBUS_KEY_Ocircumflex, 0x1ED2, 
+-IBUS_KEY_grave, IBUS_KEY_Udiaeresis, 0x01DB, 
+-IBUS_KEY_grave, IBUS_KEY_acircumflex, 0x1EA7, 
+-IBUS_KEY_grave, IBUS_KEY_ecircumflex, 0x1EC1, 
+-IBUS_KEY_grave, IBUS_KEY_ocircumflex, 0x1ED3, 
+-IBUS_KEY_grave, IBUS_KEY_udiaeresis, 0x01DC, 
+-IBUS_KEY_grave, IBUS_KEY_Abreve, 0x1EB0, 
+-IBUS_KEY_grave, IBUS_KEY_abreve, 0x1EB1, 
+-IBUS_KEY_grave, IBUS_KEY_Emacron, 0x1E14, 
+-IBUS_KEY_grave, IBUS_KEY_emacron, 0x1E15, 
+-IBUS_KEY_grave, IBUS_KEY_Omacron, 0x1E50, 
+-IBUS_KEY_grave, IBUS_KEY_omacron, 0x1E51, 
+-IBUS_KEY_grave, IBUS_KEY_Cyrillic_ie, 0x0450, 
+-IBUS_KEY_grave, IBUS_KEY_Cyrillic_i, 0x045D, 
+-IBUS_KEY_grave, IBUS_KEY_Cyrillic_IE, 0x0400, 
+-IBUS_KEY_grave, IBUS_KEY_Cyrillic_I, 0x040D, 
+-IBUS_KEY_grave, IBUS_KEY_Greek_iotadieresis, 0x1FD2, 
+-IBUS_KEY_grave, IBUS_KEY_Greek_upsilondieresis, 0x1FE2, 
+-IBUS_KEY_grave, IBUS_KEY_Greek_ALPHA, 0x1FBA, 
+-IBUS_KEY_grave, IBUS_KEY_Greek_EPSILON, 0x1FC8, 
+-IBUS_KEY_grave, IBUS_KEY_Greek_ETA, 0x1FCA, 
+-IBUS_KEY_grave, IBUS_KEY_Greek_IOTA, 0x1FDA, 
+-IBUS_KEY_grave, IBUS_KEY_Greek_OMICRON, 0x1FF8, 
+-IBUS_KEY_grave, IBUS_KEY_Greek_UPSILON, 0x1FEA, 
+-IBUS_KEY_grave, IBUS_KEY_Greek_OMEGA, 0x1FFA, 
+-IBUS_KEY_grave, IBUS_KEY_Greek_alpha, 0x1F70, 
+-IBUS_KEY_grave, IBUS_KEY_Greek_epsilon, 0x1F72, 
+-IBUS_KEY_grave, IBUS_KEY_Greek_eta, 0x1F74, 
+-IBUS_KEY_grave, IBUS_KEY_Greek_iota, 0x1F76, 
+-IBUS_KEY_grave, IBUS_KEY_Greek_omicron, 0x1F78, 
+-IBUS_KEY_grave, IBUS_KEY_Greek_upsilon, 0x1F7A, 
+-IBUS_KEY_grave, IBUS_KEY_Greek_omega, 0x1F7C, 
+-IBUS_KEY_grave, 0x1F00, 0x1F02, 
+-IBUS_KEY_grave, 0x1F01, 0x1F03, 
+-IBUS_KEY_grave, 0x1F08, 0x1F0A, 
+-IBUS_KEY_grave, 0x1F09, 0x1F0B, 
+-IBUS_KEY_grave, 0x1F10, 0x1F12, 
+-IBUS_KEY_grave, 0x1F11, 0x1F13, 
+-IBUS_KEY_grave, 0x1F18, 0x1F1A, 
+-IBUS_KEY_grave, 0x1F19, 0x1F1B, 
+-IBUS_KEY_grave, 0x1F20, 0x1F22, 
+-IBUS_KEY_grave, 0x1F21, 0x1F23, 
+-IBUS_KEY_grave, 0x1F28, 0x1F2A, 
+-IBUS_KEY_grave, 0x1F29, 0x1F2B, 
+-IBUS_KEY_grave, 0x1F30, 0x1F32, 
+-IBUS_KEY_grave, 0x1F31, 0x1F33, 
+-IBUS_KEY_grave, 0x1F38, 0x1F3A, 
+-IBUS_KEY_grave, 0x1F39, 0x1F3B, 
+-IBUS_KEY_grave, 0x1F40, 0x1F42, 
+-IBUS_KEY_grave, 0x1F41, 0x1F43, 
+-IBUS_KEY_grave, 0x1F48, 0x1F4A, 
+-IBUS_KEY_grave, 0x1F49, 0x1F4B, 
+-IBUS_KEY_grave, 0x1F50, 0x1F52, 
+-IBUS_KEY_grave, 0x1F51, 0x1F53, 
+-IBUS_KEY_grave, 0x1F59, 0x1F5B, 
+-IBUS_KEY_grave, 0x1F60, 0x1F62, 
+-IBUS_KEY_grave, 0x1F61, 0x1F63, 
+-IBUS_KEY_grave, 0x1F68, 0x1F6A, 
+-IBUS_KEY_grave, 0x1F69, 0x1F6B, 
+-IBUS_KEY_a, IBUS_KEY_quotedbl, 0x00E4, 
+-IBUS_KEY_a, IBUS_KEY_apostrophe, 0x00E1, 
+-IBUS_KEY_a, IBUS_KEY_parenleft, 0x0103, 
+-IBUS_KEY_a, IBUS_KEY_asterisk, 0x00E5, 
+-IBUS_KEY_a, IBUS_KEY_comma, 0x0105, 
+-IBUS_KEY_a, IBUS_KEY_minus, 0x0101, 
+-IBUS_KEY_a, IBUS_KEY_semicolon, 0x0105, 
+-IBUS_KEY_a, IBUS_KEY_greater, 0x00E2, 
+-IBUS_KEY_a, IBUS_KEY_asciicircum, 0x00E2, 
+-IBUS_KEY_a, IBUS_KEY_underscore, 0x0101, 
+-IBUS_KEY_a, IBUS_KEY_grave, 0x00E0, 
+-IBUS_KEY_a, IBUS_KEY_a, 0x00E5, 
+-IBUS_KEY_a, IBUS_KEY_e, 0x00E6, 
+-IBUS_KEY_a, IBUS_KEY_asciitilde, 0x00E3, 
+-IBUS_KEY_a, IBUS_KEY_diaeresis, 0x00E4, 
+-IBUS_KEY_a, IBUS_KEY_acute, 0x00E1, 
+-IBUS_KEY_b, IBUS_KEY_period, 0x1E03, 
+-IBUS_KEY_b, IBUS_KEY_A, 0x0102, 
+-IBUS_KEY_b, IBUS_KEY_E, 0x0114, 
+-IBUS_KEY_b, IBUS_KEY_G, 0x011E, 
+-IBUS_KEY_b, IBUS_KEY_I, 0x012C, 
+-IBUS_KEY_b, IBUS_KEY_O, 0x014E, 
+-IBUS_KEY_b, IBUS_KEY_U, 0x016C, 
+-IBUS_KEY_b, IBUS_KEY_a, 0x0103, 
+-IBUS_KEY_b, IBUS_KEY_e, 0x0115, 
+-IBUS_KEY_b, IBUS_KEY_g, 0x011F, 
+-IBUS_KEY_b, IBUS_KEY_i, 0x012D, 
+-IBUS_KEY_b, IBUS_KEY_o, 0x014F, 
+-IBUS_KEY_b, IBUS_KEY_u, 0x016D, 
+-IBUS_KEY_b, 0x0228, 0x1E1C, 
+-IBUS_KEY_b, 0x0229, 0x1E1D, 
+-IBUS_KEY_b, IBUS_KEY_Cyrillic_a, 0x04D1, 
+-IBUS_KEY_b, IBUS_KEY_Cyrillic_ie, 0x04D7, 
+-IBUS_KEY_b, IBUS_KEY_Cyrillic_i, 0x0439, 
+-IBUS_KEY_b, IBUS_KEY_Cyrillic_u, 0x045E, 
+-IBUS_KEY_b, IBUS_KEY_Cyrillic_zhe, 0x04C2, 
+-IBUS_KEY_b, IBUS_KEY_Cyrillic_A, 0x04D0, 
+-IBUS_KEY_b, IBUS_KEY_Cyrillic_IE, 0x04D6, 
+-IBUS_KEY_b, IBUS_KEY_Cyrillic_I, 0x0419, 
+-IBUS_KEY_b, IBUS_KEY_Cyrillic_U, 0x040E, 
+-IBUS_KEY_b, IBUS_KEY_Cyrillic_ZHE, 0x04C1, 
+-IBUS_KEY_b, IBUS_KEY_Greek_ALPHA, 0x1FB8, 
+-IBUS_KEY_b, IBUS_KEY_Greek_IOTA, 0x1FD8, 
+-IBUS_KEY_b, IBUS_KEY_Greek_UPSILON, 0x1FE8, 
+-IBUS_KEY_b, IBUS_KEY_Greek_alpha, 0x1FB0, 
+-IBUS_KEY_b, IBUS_KEY_Greek_iota, 0x1FD0, 
+-IBUS_KEY_b, IBUS_KEY_Greek_upsilon, 0x1FE0, 
+-IBUS_KEY_b, 0x1EA0, 0x1EB6, 
+-IBUS_KEY_b, 0x1EA1, 0x1EB7, 
+-IBUS_KEY_c, IBUS_KEY_apostrophe, 0x0107, 
+-IBUS_KEY_c, IBUS_KEY_comma, 0x00E7, 
+-IBUS_KEY_c, IBUS_KEY_period, 0x010B, 
+-IBUS_KEY_c, IBUS_KEY_slash, 0x00A2, 
+-IBUS_KEY_c, IBUS_KEY_less, 0x010D, 
+-IBUS_KEY_c, IBUS_KEY_equal, 0x20AC, 
+-IBUS_KEY_c, IBUS_KEY_A, 0x01CD, 
+-IBUS_KEY_c, IBUS_KEY_C, 0x010C, 
+-IBUS_KEY_c, IBUS_KEY_D, 0x010E, 
+-IBUS_KEY_c, IBUS_KEY_E, 0x011A, 
+-IBUS_KEY_c, IBUS_KEY_G, 0x01E6, 
+-IBUS_KEY_c, IBUS_KEY_H, 0x021E, 
+-IBUS_KEY_c, IBUS_KEY_I, 0x01CF, 
+-IBUS_KEY_c, IBUS_KEY_K, 0x01E8, 
+-IBUS_KEY_c, IBUS_KEY_L, 0x013D, 
+-IBUS_KEY_c, IBUS_KEY_N, 0x0147, 
+-IBUS_KEY_c, IBUS_KEY_O, 0x01D1, 
+-IBUS_KEY_c, IBUS_KEY_R, 0x0158, 
+-IBUS_KEY_c, IBUS_KEY_S, 0x0160, 
+-IBUS_KEY_c, IBUS_KEY_T, 0x0164, 
+-IBUS_KEY_c, IBUS_KEY_U, 0x01D3, 
+-IBUS_KEY_c, IBUS_KEY_Z, 0x017D, 
+-IBUS_KEY_c, IBUS_KEY_a, 0x01CE, 
+-IBUS_KEY_c, IBUS_KEY_c, 0x010D, 
+-IBUS_KEY_c, IBUS_KEY_d, 0x010F, 
+-IBUS_KEY_c, IBUS_KEY_e, 0x011B, 
+-IBUS_KEY_c, IBUS_KEY_g, 0x01E7, 
+-IBUS_KEY_c, IBUS_KEY_h, 0x021F, 
+-IBUS_KEY_c, IBUS_KEY_i, 0x01D0, 
+-IBUS_KEY_c, IBUS_KEY_j, 0x01F0, 
+-IBUS_KEY_c, IBUS_KEY_k, 0x01E9, 
+-IBUS_KEY_c, IBUS_KEY_l, 0x013E, 
+-IBUS_KEY_c, IBUS_KEY_n, 0x0148, 
+-IBUS_KEY_c, IBUS_KEY_o, 0x01D2, 
+-IBUS_KEY_c, IBUS_KEY_r, 0x0159, 
+-IBUS_KEY_c, IBUS_KEY_s, 0x0161, 
+-IBUS_KEY_c, IBUS_KEY_t, 0x0165, 
+-IBUS_KEY_c, IBUS_KEY_u, 0x01D4, 
+-IBUS_KEY_c, IBUS_KEY_z, 0x017E, 
+-IBUS_KEY_c, IBUS_KEY_bar, 0x00A2, 
+-IBUS_KEY_c, IBUS_KEY_Udiaeresis, 0x01D9, 
+-IBUS_KEY_c, IBUS_KEY_udiaeresis, 0x01DA, 
+-IBUS_KEY_d, IBUS_KEY_comma, 0x1E11, 
+-IBUS_KEY_d, IBUS_KEY_minus, 0x0111, 
+-IBUS_KEY_d, IBUS_KEY_period, 0x1E0B, 
+-IBUS_KEY_d, IBUS_KEY_less, 0x010F, 
+-IBUS_KEY_d, IBUS_KEY_equal, 0x20AB, 
+-IBUS_KEY_d, IBUS_KEY_h, 0x00F0, 
+-IBUS_KEY_d, IBUS_KEY_i, 0x2300, 
+-IBUS_KEY_e, IBUS_KEY_quotedbl, 0x00EB, 
+-IBUS_KEY_e, IBUS_KEY_apostrophe, 0x00E9, 
+-IBUS_KEY_e, IBUS_KEY_comma, 0x0119, 
+-IBUS_KEY_e, IBUS_KEY_minus, 0x0113, 
+-IBUS_KEY_e, IBUS_KEY_period, 0x0117, 
+-IBUS_KEY_e, IBUS_KEY_semicolon, 0x0119, 
+-IBUS_KEY_e, IBUS_KEY_less, 0x011B, 
+-IBUS_KEY_e, IBUS_KEY_equal, 0x20AC, 
+-IBUS_KEY_e, IBUS_KEY_greater, 0x00EA, 
+-IBUS_KEY_e, IBUS_KEY_asciicircum, 0x00EA, 
+-IBUS_KEY_e, IBUS_KEY_underscore, 0x0113, 
+-IBUS_KEY_e, IBUS_KEY_grave, 0x00E8, 
+-IBUS_KEY_e, IBUS_KEY_e, 0x0259, 
+-IBUS_KEY_e, IBUS_KEY_diaeresis, 0x00EB, 
+-IBUS_KEY_e, IBUS_KEY_acute, 0x00E9, 
+-IBUS_KEY_f, IBUS_KEY_period, 0x1E1F, 
+-IBUS_KEY_f, IBUS_KEY_S, 0x017F, 
+-IBUS_KEY_f, IBUS_KEY_f, 0xFB00, 
+-IBUS_KEY_f, IBUS_KEY_i, 0xFB01, 
+-IBUS_KEY_f, IBUS_KEY_l, 0xFB02, 
+-IBUS_KEY_f, IBUS_KEY_s, 0x017F, 
+-IBUS_KEY_g, IBUS_KEY_parenleft, 0x011F, 
+-IBUS_KEY_g, IBUS_KEY_comma, 0x0123, 
+-IBUS_KEY_g, IBUS_KEY_period, 0x0121, 
+-IBUS_KEY_g, IBUS_KEY_U, 0x011F, 
+-IBUS_KEY_g, IBUS_KEY_breve, 0x011F, 
+-IBUS_KEY_h, IBUS_KEY_comma, 0x1E29, 
+-IBUS_KEY_i, IBUS_KEY_quotedbl, 0x00EF, 
+-IBUS_KEY_i, IBUS_KEY_apostrophe, 0x00ED, 
+-IBUS_KEY_i, IBUS_KEY_comma, 0x012F, 
+-IBUS_KEY_i, IBUS_KEY_minus, 0x012B, 
+-IBUS_KEY_i, IBUS_KEY_period, 0x0131, 
+-IBUS_KEY_i, IBUS_KEY_semicolon, 0x012F, 
+-IBUS_KEY_i, IBUS_KEY_greater, 0x00EE, 
+-IBUS_KEY_i, IBUS_KEY_asciicircum, 0x00EE, 
+-IBUS_KEY_i, IBUS_KEY_underscore, 0x012B, 
+-IBUS_KEY_i, IBUS_KEY_grave, 0x00EC, 
+-IBUS_KEY_i, IBUS_KEY_j, 0x0133, 
+-IBUS_KEY_i, IBUS_KEY_asciitilde, 0x0129, 
+-IBUS_KEY_i, IBUS_KEY_diaeresis, 0x00EF, 
+-IBUS_KEY_i, IBUS_KEY_acute, 0x00ED, 
+-IBUS_KEY_k, IBUS_KEY_comma, 0x0137, 
+-IBUS_KEY_k, IBUS_KEY_k, 0x0138, 
+-IBUS_KEY_l, IBUS_KEY_apostrophe, 0x013A, 
+-IBUS_KEY_l, IBUS_KEY_comma, 0x013C, 
+-IBUS_KEY_l, IBUS_KEY_minus, 0x00A3, 
+-IBUS_KEY_l, IBUS_KEY_slash, 0x0142, 
+-IBUS_KEY_l, IBUS_KEY_less, 0x013E, 
+-IBUS_KEY_l, IBUS_KEY_v, 0x007C, 
+-IBUS_KEY_m, IBUS_KEY_period, 0x1E41, 
+-IBUS_KEY_m, IBUS_KEY_slash, 0x20A5, 
+-IBUS_KEY_m, IBUS_KEY_u, 0x00B5, 
+-IBUS_KEY_n, IBUS_KEY_apostrophe, 0x0144, 
+-IBUS_KEY_n, IBUS_KEY_comma, 0x0146, 
+-IBUS_KEY_n, IBUS_KEY_less, 0x0148, 
+-IBUS_KEY_n, IBUS_KEY_g, 0x014B, 
+-IBUS_KEY_n, IBUS_KEY_asciitilde, 0x00F1, 
+-IBUS_KEY_o, IBUS_KEY_quotedbl, 0x00F6, 
+-IBUS_KEY_o, IBUS_KEY_apostrophe, 0x00F3, 
+-IBUS_KEY_o, IBUS_KEY_comma, 0x01EB, 
+-IBUS_KEY_o, IBUS_KEY_minus, 0x014D, 
+-IBUS_KEY_o, IBUS_KEY_slash, 0x00F8, 
+-IBUS_KEY_o, IBUS_KEY_semicolon, 0x01EB, 
+-IBUS_KEY_o, IBUS_KEY_greater, 0x00F4, 
+-IBUS_KEY_o, IBUS_KEY_A, 0x00C5, 
+-IBUS_KEY_o, IBUS_KEY_C, 0x00A9, 
+-IBUS_KEY_o, IBUS_KEY_R, 0x00AE, 
+-IBUS_KEY_o, IBUS_KEY_U, 0x016E, 
+-IBUS_KEY_o, IBUS_KEY_X, 0x00A4, 
+-IBUS_KEY_o, IBUS_KEY_asciicircum, 0x00F4, 
+-IBUS_KEY_o, IBUS_KEY_underscore, 0x014D, 
+-IBUS_KEY_o, IBUS_KEY_grave, 0x00F2, 
+-IBUS_KEY_o, IBUS_KEY_a, 0x00E5, 
+-IBUS_KEY_o, IBUS_KEY_c, 0x00A9, 
+-IBUS_KEY_o, IBUS_KEY_e, 0x0153, 
+-IBUS_KEY_o, IBUS_KEY_o, 0x00B0, 
+-IBUS_KEY_o, IBUS_KEY_r, 0x00AE, 
+-IBUS_KEY_o, IBUS_KEY_s, 0x00A7, 
+-IBUS_KEY_o, IBUS_KEY_u, 0x016F, 
+-IBUS_KEY_o, IBUS_KEY_w, 0x1E98, 
+-IBUS_KEY_o, IBUS_KEY_x, 0x00A4, 
+-IBUS_KEY_o, IBUS_KEY_y, 0x1E99, 
+-IBUS_KEY_o, IBUS_KEY_asciitilde, 0x00F5, 
+-IBUS_KEY_o, IBUS_KEY_diaeresis, 0x00F6, 
+-IBUS_KEY_o, IBUS_KEY_acute, 0x00F3, 
+-IBUS_KEY_p, IBUS_KEY_exclam, 0x00B6, 
+-IBUS_KEY_p, IBUS_KEY_period, 0x1E57, 
+-IBUS_KEY_r, IBUS_KEY_apostrophe, 0x0155, 
+-IBUS_KEY_r, IBUS_KEY_comma, 0x0157, 
+-IBUS_KEY_r, IBUS_KEY_less, 0x0159, 
+-IBUS_KEY_s, IBUS_KEY_exclam, 0x00A7, 
+-IBUS_KEY_s, IBUS_KEY_apostrophe, 0x015B, 
+-IBUS_KEY_s, IBUS_KEY_comma, 0x015F, 
+-IBUS_KEY_s, IBUS_KEY_period, 0x1E61, 
+-IBUS_KEY_s, IBUS_KEY_semicolon, 0x0219, 
+-IBUS_KEY_s, IBUS_KEY_less, 0x0161, 
+-IBUS_KEY_s, IBUS_KEY_M, 0x2120, 
+-IBUS_KEY_s, IBUS_KEY_m, 0x2120, 
+-IBUS_KEY_s, IBUS_KEY_o, 0x00A7, 
+-IBUS_KEY_s, IBUS_KEY_s, 0x00DF, 
+-IBUS_KEY_s, IBUS_KEY_cedilla, 0x015F, 
+-IBUS_KEY_t, IBUS_KEY_comma, 0x0163, 
+-IBUS_KEY_t, IBUS_KEY_minus, 0x0167, 
+-IBUS_KEY_t, IBUS_KEY_period, 0x1E6B, 
+-IBUS_KEY_t, IBUS_KEY_slash, 0x0167, 
+-IBUS_KEY_t, IBUS_KEY_semicolon, 0x021B, 
+-IBUS_KEY_t, IBUS_KEY_less, 0x0165, 
+-IBUS_KEY_t, IBUS_KEY_M, 0x2122, 
+-IBUS_KEY_t, IBUS_KEY_h, 0x00FE, 
+-IBUS_KEY_t, IBUS_KEY_m, 0x2122, 
+-IBUS_KEY_u, IBUS_KEY_quotedbl, 0x00FC, 
+-IBUS_KEY_u, IBUS_KEY_apostrophe, 0x00FA, 
+-IBUS_KEY_u, IBUS_KEY_asterisk, 0x016F, 
+-IBUS_KEY_u, IBUS_KEY_comma, 0x0173, 
+-IBUS_KEY_u, IBUS_KEY_minus, 0x016B, 
+-IBUS_KEY_u, IBUS_KEY_slash, 0x00B5, 
+-IBUS_KEY_u, IBUS_KEY_semicolon, 0x0173, 
+-IBUS_KEY_u, IBUS_KEY_greater, 0x00FB, 
+-IBUS_KEY_u, IBUS_KEY_A, 0x0102, 
+-IBUS_KEY_u, IBUS_KEY_U, 0x016C, 
+-IBUS_KEY_u, IBUS_KEY_asciicircum, 0x00FB, 
+-IBUS_KEY_u, IBUS_KEY_underscore, 0x016B, 
+-IBUS_KEY_u, IBUS_KEY_grave, 0x00F9, 
+-IBUS_KEY_u, IBUS_KEY_a, 0x0103, 
+-IBUS_KEY_u, IBUS_KEY_u, 0x016D, 
+-IBUS_KEY_u, IBUS_KEY_asciitilde, 0x0169, 
+-IBUS_KEY_u, IBUS_KEY_diaeresis, 0x00FC, 
+-IBUS_KEY_u, IBUS_KEY_acute, 0x00FA, 
+-IBUS_KEY_v, IBUS_KEY_slash, 0x221A, 
+-IBUS_KEY_v, IBUS_KEY_Z, 0x017D, 
+-IBUS_KEY_v, IBUS_KEY_l, 0x007C, 
+-IBUS_KEY_v, IBUS_KEY_z, 0x017E, 
+-IBUS_KEY_w, IBUS_KEY_asciicircum, 0x0175, 
+-IBUS_KEY_x, IBUS_KEY_O, 0x00A4, 
+-IBUS_KEY_x, IBUS_KEY_o, 0x00A4, 
+-IBUS_KEY_x, IBUS_KEY_x, 0x00D7, 
+-IBUS_KEY_y, IBUS_KEY_quotedbl, 0x00FF, 
+-IBUS_KEY_y, IBUS_KEY_apostrophe, 0x00FD, 
+-IBUS_KEY_y, IBUS_KEY_minus, 0x00A5, 
+-IBUS_KEY_y, IBUS_KEY_equal, 0x00A5, 
+-IBUS_KEY_y, IBUS_KEY_asciicircum, 0x0177, 
+-IBUS_KEY_y, IBUS_KEY_diaeresis, 0x00FF, 
+-IBUS_KEY_y, IBUS_KEY_acute, 0x00FD, 
+-IBUS_KEY_z, IBUS_KEY_apostrophe, 0x017A, 
+-IBUS_KEY_z, IBUS_KEY_period, 0x017C, 
+-IBUS_KEY_z, IBUS_KEY_less, 0x017E, 
+-IBUS_KEY_braceleft, IBUS_KEY_braceright, 0x2205, 
+-IBUS_KEY_bar, IBUS_KEY_C, 0x00A2, 
+-IBUS_KEY_bar, IBUS_KEY_c, 0x00A2, 
+-IBUS_KEY_bar, IBUS_KEY_asciitilde, 0x236D, 
+-IBUS_KEY_bar, 0x2190, 0x2345, 
+-IBUS_KEY_bar, 0x2192, 0x2346, 
+-IBUS_KEY_bar, 0x2206, 0x234B, 
+-IBUS_KEY_bar, 0x2207, 0x2352, 
+-IBUS_KEY_bar, IBUS_KEY_union, 0x2366, 
+-IBUS_KEY_bar, 0x2282, 0x2367, 
+-IBUS_KEY_bar, IBUS_KEY_emopencircle, 0x233D, 
+-IBUS_KEY_asciitilde, IBUS_KEY_space, 0x007E, 
+-IBUS_KEY_asciitilde, IBUS_KEY_0, 0x236C, 
+-IBUS_KEY_asciitilde, IBUS_KEY_A, 0x00C3, 
+-IBUS_KEY_asciitilde, IBUS_KEY_E, 0x1EBC, 
+-IBUS_KEY_asciitilde, IBUS_KEY_I, 0x0128, 
+-IBUS_KEY_asciitilde, IBUS_KEY_N, 0x00D1, 
+-IBUS_KEY_asciitilde, IBUS_KEY_O, 0x00D5, 
+-IBUS_KEY_asciitilde, IBUS_KEY_U, 0x0168, 
+-IBUS_KEY_asciitilde, IBUS_KEY_V, 0x1E7C, 
+-IBUS_KEY_asciitilde, IBUS_KEY_Y, 0x1EF8, 
+-IBUS_KEY_asciitilde, IBUS_KEY_a, 0x00E3, 
+-IBUS_KEY_asciitilde, IBUS_KEY_e, 0x1EBD, 
+-IBUS_KEY_asciitilde, IBUS_KEY_i, 0x0129, 
+-IBUS_KEY_asciitilde, IBUS_KEY_n, 0x00F1, 
+-IBUS_KEY_asciitilde, IBUS_KEY_o, 0x00F5, 
+-IBUS_KEY_asciitilde, IBUS_KEY_u, 0x0169, 
+-IBUS_KEY_asciitilde, IBUS_KEY_v, 0x1E7D, 
+-IBUS_KEY_asciitilde, IBUS_KEY_y, 0x1EF9, 
+-IBUS_KEY_asciitilde, IBUS_KEY_bar, 0x236D, 
+-IBUS_KEY_asciitilde, IBUS_KEY_diaeresis, 0x2368, 
+-IBUS_KEY_asciitilde, IBUS_KEY_Acircumflex, 0x1EAA, 
+-IBUS_KEY_asciitilde, IBUS_KEY_Ecircumflex, 0x1EC4, 
+-IBUS_KEY_asciitilde, IBUS_KEY_Ocircumflex, 0x1ED6, 
+-IBUS_KEY_asciitilde, IBUS_KEY_acircumflex, 0x1EAB, 
+-IBUS_KEY_asciitilde, IBUS_KEY_ecircumflex, 0x1EC5, 
+-IBUS_KEY_asciitilde, IBUS_KEY_ocircumflex, 0x1ED7, 
+-IBUS_KEY_asciitilde, IBUS_KEY_Abreve, 0x1EB4, 
+-IBUS_KEY_asciitilde, IBUS_KEY_abreve, 0x1EB5, 
+-IBUS_KEY_asciitilde, IBUS_KEY_Greek_iotadieresis, 0x1FD7, 
+-IBUS_KEY_asciitilde, IBUS_KEY_Greek_upsilondieresis, 0x1FE7, 
+-IBUS_KEY_asciitilde, IBUS_KEY_Greek_alpha, 0x1FB6, 
+-IBUS_KEY_asciitilde, IBUS_KEY_Greek_eta, 0x1FC6, 
+-IBUS_KEY_asciitilde, IBUS_KEY_Greek_iota, 0x1FD6, 
+-IBUS_KEY_asciitilde, IBUS_KEY_Greek_upsilon, 0x1FE6, 
+-IBUS_KEY_asciitilde, IBUS_KEY_Greek_omega, 0x1FF6, 
+-IBUS_KEY_asciitilde, 0x1F00, 0x1F06, 
+-IBUS_KEY_asciitilde, 0x1F01, 0x1F07, 
+-IBUS_KEY_asciitilde, 0x1F08, 0x1F0E, 
+-IBUS_KEY_asciitilde, 0x1F09, 0x1F0F, 
+-IBUS_KEY_asciitilde, 0x1F20, 0x1F26, 
+-IBUS_KEY_asciitilde, 0x1F21, 0x1F27, 
+-IBUS_KEY_asciitilde, 0x1F28, 0x1F2E, 
+-IBUS_KEY_asciitilde, 0x1F29, 0x1F2F, 
+-IBUS_KEY_asciitilde, 0x1F30, 0x1F36, 
+-IBUS_KEY_asciitilde, 0x1F31, 0x1F37, 
+-IBUS_KEY_asciitilde, 0x1F38, 0x1F3E, 
+-IBUS_KEY_asciitilde, 0x1F39, 0x1F3F, 
+-IBUS_KEY_asciitilde, 0x1F50, 0x1F56, 
+-IBUS_KEY_asciitilde, 0x1F51, 0x1F57, 
+-IBUS_KEY_asciitilde, 0x1F59, 0x1F5F, 
+-IBUS_KEY_asciitilde, 0x1F60, 0x1F66, 
+-IBUS_KEY_asciitilde, 0x1F61, 0x1F67, 
+-IBUS_KEY_asciitilde, 0x1F68, 0x1F6E, 
+-IBUS_KEY_asciitilde, 0x1F69, 0x1F6F, 
+-IBUS_KEY_asciitilde, 0x2207, 0x236B, 
+-IBUS_KEY_asciitilde, 0x2227, 0x2372, 
+-IBUS_KEY_asciitilde, 0x2228, 0x2371, 
+-IBUS_KEY_diaeresis, IBUS_KEY_apostrophe, 0x0385, 
+-IBUS_KEY_diaeresis, IBUS_KEY_asterisk, 0x2363, 
+-IBUS_KEY_diaeresis, IBUS_KEY_greater, 0x2369, 
+-IBUS_KEY_diaeresis, IBUS_KEY_A, 0x00C4, 
+-IBUS_KEY_diaeresis, IBUS_KEY_E, 0x00CB, 
+-IBUS_KEY_diaeresis, IBUS_KEY_I, 0x00CF, 
+-IBUS_KEY_diaeresis, IBUS_KEY_O, 0x00D6, 
+-IBUS_KEY_diaeresis, IBUS_KEY_U, 0x00DC, 
+-IBUS_KEY_diaeresis, IBUS_KEY_Y, 0x0178, 
+-IBUS_KEY_diaeresis, IBUS_KEY_grave, 0x1FED, 
+-IBUS_KEY_diaeresis, IBUS_KEY_a, 0x00E4, 
+-IBUS_KEY_diaeresis, IBUS_KEY_e, 0x00EB, 
+-IBUS_KEY_diaeresis, IBUS_KEY_i, 0x00EF, 
+-IBUS_KEY_diaeresis, IBUS_KEY_o, 0x00F6, 
+-IBUS_KEY_diaeresis, IBUS_KEY_u, 0x00FC, 
+-IBUS_KEY_diaeresis, IBUS_KEY_y, 0x00FF, 
+-IBUS_KEY_diaeresis, IBUS_KEY_asciitilde, 0x1FC1, 
+-IBUS_KEY_diaeresis, IBUS_KEY_acute, 0x0385, 
+-IBUS_KEY_diaeresis, 0x2207, 0x2362, 
+-IBUS_KEY_diaeresis, 0x2218, 0x2364, 
+-IBUS_KEY_diaeresis, IBUS_KEY_uptack, 0x2361, 
+-IBUS_KEY_diaeresis, IBUS_KEY_emopencircle, 0x2365, 
+-IBUS_KEY_diaeresis, IBUS_KEY_dead_grave, 0x1FED, 
+-IBUS_KEY_diaeresis, IBUS_KEY_dead_acute, 0x0385, 
+-IBUS_KEY_diaeresis, IBUS_KEY_dead_tilde, 0x1FC1, 
+-IBUS_KEY_macron, IBUS_KEY_A, 0x0100, 
+-IBUS_KEY_macron, IBUS_KEY_E, 0x0112, 
+-IBUS_KEY_macron, IBUS_KEY_G, 0x1E20, 
+-IBUS_KEY_macron, IBUS_KEY_I, 0x012A, 
+-IBUS_KEY_macron, IBUS_KEY_O, 0x014C, 
+-IBUS_KEY_macron, IBUS_KEY_U, 0x016A, 
+-IBUS_KEY_macron, IBUS_KEY_Y, 0x0232, 
+-IBUS_KEY_macron, IBUS_KEY_a, 0x0101, 
+-IBUS_KEY_macron, IBUS_KEY_e, 0x0113, 
+-IBUS_KEY_macron, IBUS_KEY_g, 0x1E21, 
+-IBUS_KEY_macron, IBUS_KEY_i, 0x012B, 
+-IBUS_KEY_macron, IBUS_KEY_o, 0x014D, 
+-IBUS_KEY_macron, IBUS_KEY_u, 0x016B, 
+-IBUS_KEY_macron, IBUS_KEY_y, 0x0233, 
+-IBUS_KEY_macron, IBUS_KEY_Adiaeresis, 0x01DE, 
+-IBUS_KEY_macron, IBUS_KEY_AE, 0x01E2, 
+-IBUS_KEY_macron, IBUS_KEY_Otilde, 0x022C, 
+-IBUS_KEY_macron, IBUS_KEY_Odiaeresis, 0x022A, 
+-IBUS_KEY_macron, IBUS_KEY_Udiaeresis, 0x01D5, 
+-IBUS_KEY_macron, IBUS_KEY_adiaeresis, 0x01DF, 
+-IBUS_KEY_macron, IBUS_KEY_ae, 0x01E3, 
+-IBUS_KEY_macron, IBUS_KEY_otilde, 0x022D, 
+-IBUS_KEY_macron, IBUS_KEY_odiaeresis, 0x022B, 
+-IBUS_KEY_macron, IBUS_KEY_udiaeresis, 0x01D6, 
+-IBUS_KEY_macron, 0x01EA, 0x01EC, 
+-IBUS_KEY_macron, 0x01EB, 0x01ED, 
+-IBUS_KEY_macron, 0x0226, 0x01E0, 
+-IBUS_KEY_macron, 0x0227, 0x01E1, 
+-IBUS_KEY_macron, 0x022E, 0x0230, 
+-IBUS_KEY_macron, 0x022F, 0x0231, 
+-IBUS_KEY_macron, IBUS_KEY_Cyrillic_i, 0x04E3, 
+-IBUS_KEY_macron, IBUS_KEY_Cyrillic_u, 0x04EF, 
+-IBUS_KEY_macron, IBUS_KEY_Cyrillic_I, 0x04E2, 
+-IBUS_KEY_macron, IBUS_KEY_Cyrillic_U, 0x04EE, 
+-IBUS_KEY_macron, IBUS_KEY_Greek_ALPHA, 0x1FB9, 
+-IBUS_KEY_macron, IBUS_KEY_Greek_IOTA, 0x1FD9, 
+-IBUS_KEY_macron, IBUS_KEY_Greek_UPSILON, 0x1FE9, 
+-IBUS_KEY_macron, IBUS_KEY_Greek_alpha, 0x1FB1, 
+-IBUS_KEY_macron, IBUS_KEY_Greek_iota, 0x1FD1, 
+-IBUS_KEY_macron, IBUS_KEY_Greek_upsilon, 0x1FE1, 
+-IBUS_KEY_macron, 0x1E36, 0x1E38, 
+-IBUS_KEY_macron, 0x1E37, 0x1E39, 
+-IBUS_KEY_macron, 0x1E5A, 0x1E5C, 
+-IBUS_KEY_macron, 0x1E5B, 0x1E5D, 
+-IBUS_KEY_macron, IBUS_KEY_uptack, 0x2351, 
+-IBUS_KEY_acute, IBUS_KEY_A, 0x00C1, 
+-IBUS_KEY_acute, IBUS_KEY_C, 0x0106, 
+-IBUS_KEY_acute, IBUS_KEY_E, 0x00C9, 
+-IBUS_KEY_acute, IBUS_KEY_G, 0x01F4, 
+-IBUS_KEY_acute, IBUS_KEY_I, 0x00CD, 
+-IBUS_KEY_acute, IBUS_KEY_K, 0x1E30, 
+-IBUS_KEY_acute, IBUS_KEY_L, 0x0139, 
+-IBUS_KEY_acute, IBUS_KEY_M, 0x1E3E, 
+-IBUS_KEY_acute, IBUS_KEY_N, 0x0143, 
+-IBUS_KEY_acute, IBUS_KEY_O, 0x00D3, 
+-IBUS_KEY_acute, IBUS_KEY_P, 0x1E54, 
+-IBUS_KEY_acute, IBUS_KEY_R, 0x0154, 
+-IBUS_KEY_acute, IBUS_KEY_S, 0x015A, 
+-IBUS_KEY_acute, IBUS_KEY_U, 0x00DA, 
+-IBUS_KEY_acute, IBUS_KEY_W, 0x1E82, 
+-IBUS_KEY_acute, IBUS_KEY_Y, 0x00DD, 
+-IBUS_KEY_acute, IBUS_KEY_Z, 0x0179, 
+-IBUS_KEY_acute, IBUS_KEY_a, 0x00E1, 
+-IBUS_KEY_acute, IBUS_KEY_c, 0x0107, 
+-IBUS_KEY_acute, IBUS_KEY_e, 0x00E9, 
+-IBUS_KEY_acute, IBUS_KEY_g, 0x01F5, 
+-IBUS_KEY_acute, IBUS_KEY_i, 0x00ED, 
+-IBUS_KEY_acute, IBUS_KEY_k, 0x1E31, 
+-IBUS_KEY_acute, IBUS_KEY_l, 0x013A, 
+-IBUS_KEY_acute, IBUS_KEY_m, 0x1E3F, 
+-IBUS_KEY_acute, IBUS_KEY_n, 0x0144, 
+-IBUS_KEY_acute, IBUS_KEY_o, 0x00F3, 
+-IBUS_KEY_acute, IBUS_KEY_p, 0x1E55, 
+-IBUS_KEY_acute, IBUS_KEY_r, 0x0155, 
+-IBUS_KEY_acute, IBUS_KEY_s, 0x015B, 
+-IBUS_KEY_acute, IBUS_KEY_u, 0x00FA, 
+-IBUS_KEY_acute, IBUS_KEY_w, 0x1E83, 
+-IBUS_KEY_acute, IBUS_KEY_y, 0x00FD, 
+-IBUS_KEY_acute, IBUS_KEY_z, 0x017A, 
+-IBUS_KEY_acute, IBUS_KEY_Acircumflex, 0x1EA4, 
+-IBUS_KEY_acute, IBUS_KEY_Aring, 0x01FA, 
+-IBUS_KEY_acute, IBUS_KEY_AE, 0x01FC, 
+-IBUS_KEY_acute, IBUS_KEY_Ccedilla, 0x1E08, 
+-IBUS_KEY_acute, IBUS_KEY_Ecircumflex, 0x1EBE, 
+-IBUS_KEY_acute, IBUS_KEY_Idiaeresis, 0x1E2E, 
+-IBUS_KEY_acute, IBUS_KEY_Ocircumflex, 0x1ED0, 
+-IBUS_KEY_acute, IBUS_KEY_Otilde, 0x1E4C, 
+-IBUS_KEY_acute, IBUS_KEY_Ooblique, 0x01FE, 
+-IBUS_KEY_acute, IBUS_KEY_Udiaeresis, 0x01D7, 
+-IBUS_KEY_acute, IBUS_KEY_acircumflex, 0x1EA5, 
+-IBUS_KEY_acute, IBUS_KEY_aring, 0x01FB, 
+-IBUS_KEY_acute, IBUS_KEY_ae, 0x01FD, 
+-IBUS_KEY_acute, IBUS_KEY_ccedilla, 0x1E09, 
+-IBUS_KEY_acute, IBUS_KEY_ecircumflex, 0x1EBF, 
+-IBUS_KEY_acute, IBUS_KEY_idiaeresis, 0x1E2F, 
+-IBUS_KEY_acute, IBUS_KEY_ocircumflex, 0x1ED1, 
+-IBUS_KEY_acute, IBUS_KEY_otilde, 0x1E4D, 
+-IBUS_KEY_acute, IBUS_KEY_oslash, 0x01FF, 
+-IBUS_KEY_acute, IBUS_KEY_udiaeresis, 0x01D8, 
+-IBUS_KEY_acute, IBUS_KEY_Abreve, 0x1EAE, 
+-IBUS_KEY_acute, IBUS_KEY_abreve, 0x1EAF, 
+-IBUS_KEY_acute, IBUS_KEY_Emacron, 0x1E16, 
+-IBUS_KEY_acute, IBUS_KEY_emacron, 0x1E17, 
+-IBUS_KEY_acute, IBUS_KEY_Omacron, 0x1E52, 
+-IBUS_KEY_acute, IBUS_KEY_Utilde, 0x1E78, 
+-IBUS_KEY_acute, IBUS_KEY_omacron, 0x1E53, 
+-IBUS_KEY_acute, IBUS_KEY_utilde, 0x1E79, 
+-IBUS_KEY_acute, IBUS_KEY_Cyrillic_ghe, 0x0453, 
+-IBUS_KEY_acute, IBUS_KEY_Cyrillic_ka, 0x045C, 
+-IBUS_KEY_acute, IBUS_KEY_Cyrillic_GHE, 0x0403, 
+-IBUS_KEY_acute, IBUS_KEY_Cyrillic_KA, 0x040C, 
+-IBUS_KEY_acute, IBUS_KEY_Greek_iotadieresis, 0x0390, 
+-IBUS_KEY_acute, IBUS_KEY_Greek_upsilondieresis, 0x03B0, 
+-IBUS_KEY_acute, IBUS_KEY_Greek_ALPHA, 0x0386, 
+-IBUS_KEY_acute, IBUS_KEY_Greek_EPSILON, 0x0388, 
+-IBUS_KEY_acute, IBUS_KEY_Greek_ETA, 0x0389, 
+-IBUS_KEY_acute, IBUS_KEY_Greek_IOTA, 0x038A, 
+-IBUS_KEY_acute, IBUS_KEY_Greek_OMICRON, 0x038C, 
+-IBUS_KEY_acute, IBUS_KEY_Greek_UPSILON, 0x038E, 
+-IBUS_KEY_acute, IBUS_KEY_Greek_OMEGA, 0x038F, 
+-IBUS_KEY_acute, IBUS_KEY_Greek_alpha, 0x03AC, 
+-IBUS_KEY_acute, IBUS_KEY_Greek_epsilon, 0x03AD, 
+-IBUS_KEY_acute, IBUS_KEY_Greek_eta, 0x03AE, 
+-IBUS_KEY_acute, IBUS_KEY_Greek_iota, 0x03AF, 
+-IBUS_KEY_acute, IBUS_KEY_Greek_omicron, 0x03CC, 
+-IBUS_KEY_acute, IBUS_KEY_Greek_upsilon, 0x03CD, 
+-IBUS_KEY_acute, IBUS_KEY_Greek_omega, 0x03CE, 
+-IBUS_KEY_acute, 0x1F00, 0x1F04, 
+-IBUS_KEY_acute, 0x1F01, 0x1F05, 
+-IBUS_KEY_acute, 0x1F08, 0x1F0C, 
+-IBUS_KEY_acute, 0x1F09, 0x1F0D, 
+-IBUS_KEY_acute, 0x1F10, 0x1F14, 
+-IBUS_KEY_acute, 0x1F11, 0x1F15, 
+-IBUS_KEY_acute, 0x1F18, 0x1F1C, 
+-IBUS_KEY_acute, 0x1F19, 0x1F1D, 
+-IBUS_KEY_acute, 0x1F20, 0x1F24, 
+-IBUS_KEY_acute, 0x1F21, 0x1F25, 
+-IBUS_KEY_acute, 0x1F28, 0x1F2C, 
+-IBUS_KEY_acute, 0x1F29, 0x1F2D, 
+-IBUS_KEY_acute, 0x1F30, 0x1F34, 
+-IBUS_KEY_acute, 0x1F31, 0x1F35, 
+-IBUS_KEY_acute, 0x1F38, 0x1F3C, 
+-IBUS_KEY_acute, 0x1F39, 0x1F3D, 
+-IBUS_KEY_acute, 0x1F40, 0x1F44, 
+-IBUS_KEY_acute, 0x1F41, 0x1F45, 
+-IBUS_KEY_acute, 0x1F48, 0x1F4C, 
+-IBUS_KEY_acute, 0x1F49, 0x1F4D, 
+-IBUS_KEY_acute, 0x1F50, 0x1F54, 
+-IBUS_KEY_acute, 0x1F51, 0x1F55, 
+-IBUS_KEY_acute, 0x1F59, 0x1F5D, 
+-IBUS_KEY_acute, 0x1F60, 0x1F64, 
+-IBUS_KEY_acute, 0x1F61, 0x1F65, 
+-IBUS_KEY_acute, 0x1F68, 0x1F6C, 
+-IBUS_KEY_acute, 0x1F69, 0x1F6D, 
+-IBUS_KEY_cedilla, IBUS_KEY_C, 0x00C7, 
+-IBUS_KEY_cedilla, IBUS_KEY_D, 0x1E10, 
+-IBUS_KEY_cedilla, IBUS_KEY_E, 0x0228, 
+-IBUS_KEY_cedilla, IBUS_KEY_G, 0x0122, 
+-IBUS_KEY_cedilla, IBUS_KEY_H, 0x1E28, 
+-IBUS_KEY_cedilla, IBUS_KEY_K, 0x0136, 
+-IBUS_KEY_cedilla, IBUS_KEY_L, 0x013B, 
+-IBUS_KEY_cedilla, IBUS_KEY_N, 0x0145, 
+-IBUS_KEY_cedilla, IBUS_KEY_R, 0x0156, 
+-IBUS_KEY_cedilla, IBUS_KEY_S, 0x015E, 
+-IBUS_KEY_cedilla, IBUS_KEY_T, 0x0162, 
+-IBUS_KEY_cedilla, IBUS_KEY_c, 0x00E7, 
+-IBUS_KEY_cedilla, IBUS_KEY_d, 0x1E11, 
+-IBUS_KEY_cedilla, IBUS_KEY_e, 0x0229, 
+-IBUS_KEY_cedilla, IBUS_KEY_g, 0x0123, 
+-IBUS_KEY_cedilla, IBUS_KEY_h, 0x1E29, 
+-IBUS_KEY_cedilla, IBUS_KEY_k, 0x0137, 
+-IBUS_KEY_cedilla, IBUS_KEY_l, 0x013C, 
+-IBUS_KEY_cedilla, IBUS_KEY_n, 0x0146, 
+-IBUS_KEY_cedilla, IBUS_KEY_r, 0x0157, 
+-IBUS_KEY_cedilla, IBUS_KEY_s, 0x015F, 
+-IBUS_KEY_cedilla, IBUS_KEY_t, 0x0163, 
+-IBUS_KEY_division, 0x2395, 0x2339, 
+-IBUS_KEY_breve, IBUS_KEY_G, 0x011E, 
+-IBUS_KEY_breve, IBUS_KEY_g, 0x011F, 
+-0x05B4, IBUS_KEY_hebrew_yod, 0xFB1D, 
+-0x05B7, 0x05F2, 0xFB1F, 
+-0x05B7, IBUS_KEY_hebrew_aleph, 0xFB2E, 
+-0x05B8, IBUS_KEY_hebrew_aleph, 0xFB2F, 
+-0x05B9, IBUS_KEY_hebrew_waw, 0xFB4B, 
+-0x05BC, IBUS_KEY_hebrew_aleph, 0xFB30, 
+-0x05BC, IBUS_KEY_hebrew_beth, 0xFB31, 
+-0x05BC, IBUS_KEY_hebrew_gimmel, 0xFB32, 
+-0x05BC, IBUS_KEY_hebrew_daleth, 0xFB33, 
+-0x05BC, IBUS_KEY_hebrew_he, 0xFB34, 
+-0x05BC, IBUS_KEY_hebrew_waw, 0xFB35, 
+-0x05BC, IBUS_KEY_hebrew_zayin, 0xFB36, 
+-0x05BC, IBUS_KEY_hebrew_teth, 0xFB38, 
+-0x05BC, IBUS_KEY_hebrew_yod, 0xFB39, 
+-0x05BC, IBUS_KEY_hebrew_finalkaph, 0xFB3A, 
+-0x05BC, IBUS_KEY_hebrew_kaph, 0xFB3B, 
+-0x05BC, IBUS_KEY_hebrew_lamed, 0xFB3C, 
+-0x05BC, IBUS_KEY_hebrew_mem, 0xFB3E, 
+-0x05BC, IBUS_KEY_hebrew_nun, 0xFB40, 
+-0x05BC, IBUS_KEY_hebrew_samekh, 0xFB41, 
+-0x05BC, IBUS_KEY_hebrew_finalpe, 0xFB43, 
+-0x05BC, IBUS_KEY_hebrew_pe, 0xFB44, 
+-0x05BC, IBUS_KEY_hebrew_zadi, 0xFB46, 
+-0x05BC, IBUS_KEY_hebrew_qoph, 0xFB47, 
+-0x05BC, IBUS_KEY_hebrew_resh, 0xFB48, 
+-0x05BC, IBUS_KEY_hebrew_shin, 0xFB49, 
+-0x05BC, IBUS_KEY_hebrew_taw, 0xFB4A, 
+-0x05BF, IBUS_KEY_hebrew_beth, 0xFB4C, 
+-0x05BF, IBUS_KEY_hebrew_kaph, 0xFB4D, 
+-0x05BF, IBUS_KEY_hebrew_pe, 0xFB4E, 
+-0x05C1, IBUS_KEY_hebrew_shin, 0xFB2A, 
+-0x05C1, 0xFB49, 0xFB2C, 
+-0x05C2, IBUS_KEY_hebrew_shin, 0xFB2B, 
+-0x05C2, 0xFB49, 0xFB2D, 
+-0x0653, IBUS_KEY_Arabic_alef, 0x0622, 
+-0x0654, IBUS_KEY_Arabic_alef, 0x0623, 
+-0x0654, IBUS_KEY_Arabic_waw, 0x0624, 
+-0x0654, IBUS_KEY_Arabic_yeh, 0x0626, 
+-0x0654, 0x06C1, 0x06C2, 
+-0x0654, 0x06D2, 0x06D3, 
+-0x0654, 0x06D5, 0x06C0, 
+-0x0655, IBUS_KEY_Arabic_alef, 0x0625, 
+-IBUS_KEY_Cyrillic_pe, IBUS_KEY_Cyrillic_a, 0x00A7, 
+-IBUS_KEY_Cyrillic_IE, IBUS_KEY_equal, 0x20AC, 
+-IBUS_KEY_Cyrillic_EN, IBUS_KEY_Cyrillic_o, 0x2116, 
+-IBUS_KEY_Cyrillic_EN, IBUS_KEY_Cyrillic_O, 0x2116, 
+-IBUS_KEY_Cyrillic_ES, IBUS_KEY_equal, 0x20AC, 
+-IBUS_KEY_Greek_ALPHA, IBUS_KEY_apostrophe, 0x0386, 
+-IBUS_KEY_Greek_EPSILON, IBUS_KEY_apostrophe, 0x0388, 
+-IBUS_KEY_Greek_ETA, IBUS_KEY_apostrophe, 0x0389, 
+-IBUS_KEY_Greek_IOTA, IBUS_KEY_quotedbl, 0x03AA, 
+-IBUS_KEY_Greek_IOTA, IBUS_KEY_apostrophe, 0x038A, 
+-IBUS_KEY_Greek_OMICRON, IBUS_KEY_apostrophe, 0x038C, 
+-IBUS_KEY_Greek_UPSILON, IBUS_KEY_quotedbl, 0x03AB, 
+-IBUS_KEY_Greek_UPSILON, IBUS_KEY_apostrophe, 0x038E, 
+-IBUS_KEY_Greek_OMEGA, IBUS_KEY_apostrophe, 0x038F, 
+-IBUS_KEY_Greek_alpha, IBUS_KEY_apostrophe, 0x03AC, 
+-IBUS_KEY_Greek_epsilon, IBUS_KEY_apostrophe, 0x03AD, 
+-IBUS_KEY_Greek_eta, IBUS_KEY_apostrophe, 0x03AE, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_quotedbl, 0x03CA, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_Greek_alphaaccent, 0x1FB4, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_Greek_etaaccent, 0x1FC4, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_Greek_omegaaccent, 0x1FF4, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_Greek_ALPHA, 0x1FBC, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_Greek_ETA, 0x1FCC, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_Greek_OMEGA, 0x1FFC, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_Greek_alpha, 0x1FB3, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_Greek_eta, 0x1FC3, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_Greek_omega, 0x1FF3, 
+-IBUS_KEY_Greek_iota, 0x1F00, 0x1F80, 
+-IBUS_KEY_Greek_iota, 0x1F01, 0x1F81, 
+-IBUS_KEY_Greek_iota, 0x1F02, 0x1F82, 
+-IBUS_KEY_Greek_iota, 0x1F03, 0x1F83, 
+-IBUS_KEY_Greek_iota, 0x1F04, 0x1F84, 
+-IBUS_KEY_Greek_iota, 0x1F05, 0x1F85, 
+-IBUS_KEY_Greek_iota, 0x1F06, 0x1F86, 
+-IBUS_KEY_Greek_iota, 0x1F07, 0x1F87, 
+-IBUS_KEY_Greek_iota, 0x1F08, 0x1F88, 
+-IBUS_KEY_Greek_iota, 0x1F09, 0x1F89, 
+-IBUS_KEY_Greek_iota, 0x1F0A, 0x1F8A, 
+-IBUS_KEY_Greek_iota, 0x1F0B, 0x1F8B, 
+-IBUS_KEY_Greek_iota, 0x1F0C, 0x1F8C, 
+-IBUS_KEY_Greek_iota, 0x1F0D, 0x1F8D, 
+-IBUS_KEY_Greek_iota, 0x1F0E, 0x1F8E, 
+-IBUS_KEY_Greek_iota, 0x1F0F, 0x1F8F, 
+-IBUS_KEY_Greek_iota, 0x1F20, 0x1F90, 
+-IBUS_KEY_Greek_iota, 0x1F21, 0x1F91, 
+-IBUS_KEY_Greek_iota, 0x1F22, 0x1F92, 
+-IBUS_KEY_Greek_iota, 0x1F23, 0x1F93, 
+-IBUS_KEY_Greek_iota, 0x1F24, 0x1F94, 
+-IBUS_KEY_Greek_iota, 0x1F25, 0x1F95, 
+-IBUS_KEY_Greek_iota, 0x1F26, 0x1F96, 
+-IBUS_KEY_Greek_iota, 0x1F27, 0x1F97, 
+-IBUS_KEY_Greek_iota, 0x1F28, 0x1F98, 
+-IBUS_KEY_Greek_iota, 0x1F29, 0x1F99, 
+-IBUS_KEY_Greek_iota, 0x1F2A, 0x1F9A, 
+-IBUS_KEY_Greek_iota, 0x1F2B, 0x1F9B, 
+-IBUS_KEY_Greek_iota, 0x1F2C, 0x1F9C, 
+-IBUS_KEY_Greek_iota, 0x1F2D, 0x1F9D, 
+-IBUS_KEY_Greek_iota, 0x1F2E, 0x1F9E, 
+-IBUS_KEY_Greek_iota, 0x1F2F, 0x1F9F, 
+-IBUS_KEY_Greek_iota, 0x1F60, 0x1FA0, 
+-IBUS_KEY_Greek_iota, 0x1F61, 0x1FA1, 
+-IBUS_KEY_Greek_iota, 0x1F62, 0x1FA2, 
+-IBUS_KEY_Greek_iota, 0x1F63, 0x1FA3, 
+-IBUS_KEY_Greek_iota, 0x1F64, 0x1FA4, 
+-IBUS_KEY_Greek_iota, 0x1F65, 0x1FA5, 
+-IBUS_KEY_Greek_iota, 0x1F66, 0x1FA6, 
+-IBUS_KEY_Greek_iota, 0x1F67, 0x1FA7, 
+-IBUS_KEY_Greek_iota, 0x1F68, 0x1FA8, 
+-IBUS_KEY_Greek_iota, 0x1F69, 0x1FA9, 
+-IBUS_KEY_Greek_iota, 0x1F6A, 0x1FAA, 
+-IBUS_KEY_Greek_iota, 0x1F6B, 0x1FAB, 
+-IBUS_KEY_Greek_iota, 0x1F6C, 0x1FAC, 
+-IBUS_KEY_Greek_iota, 0x1F6D, 0x1FAD, 
+-IBUS_KEY_Greek_iota, 0x1F6E, 0x1FAE, 
+-IBUS_KEY_Greek_iota, 0x1F6F, 0x1FAF, 
+-IBUS_KEY_Greek_iota, 0x1F70, 0x1FB2, 
+-IBUS_KEY_Greek_iota, 0x1F74, 0x1FC2, 
+-IBUS_KEY_Greek_iota, 0x1F7C, 0x1FF2, 
+-IBUS_KEY_Greek_iota, 0x1FB6, 0x1FB7, 
+-IBUS_KEY_Greek_iota, 0x1FC6, 0x1FC7, 
+-IBUS_KEY_Greek_iota, 0x1FF6, 0x1FF7, 
+-IBUS_KEY_Greek_omicron, IBUS_KEY_apostrophe, 0x03CC, 
+-IBUS_KEY_Greek_upsilon, IBUS_KEY_quotedbl, 0x03CB, 
+-IBUS_KEY_Greek_upsilon, IBUS_KEY_apostrophe, 0x03CD, 
+-IBUS_KEY_Greek_omega, IBUS_KEY_apostrophe, 0x03CE, 
+-IBUS_KEY_lessthanequal, 0x0338, 0x2270, 
+-IBUS_KEY_greaterthanequal, 0x0338, 0x2271, 
+-IBUS_KEY_approximate, 0x0338, 0x2247, 
+-IBUS_KEY_identical, 0x0338, 0x2262, 
+-IBUS_KEY_includedin, 0x0338, 0x2284, 
+-IBUS_KEY_includes, 0x0338, 0x2285, 
+-0x093C, 0x0915, 0x0958, 
+-0x093C, 0x0916, 0x0959, 
+-0x093C, 0x0917, 0x095A, 
+-0x093C, 0x091C, 0x095B, 
+-0x093C, 0x0921, 0x095C, 
+-0x093C, 0x0922, 0x095D, 
+-0x093C, 0x0928, 0x0929, 
+-0x093C, 0x092B, 0x095E, 
+-0x093C, 0x092F, 0x095F, 
+-0x093C, 0x0930, 0x0931, 
+-0x093C, 0x0933, 0x0934, 
+-0x09BC, 0x09A1, 0x09DC, 
+-0x09BC, 0x09A2, 0x09DD, 
+-0x09BC, 0x09AF, 0x09DF, 
+-0x09C7, 0x09BE, 0x09CB, 
+-0x09C7, 0x09D7, 0x09CC, 
+-0x0A3C, 0x0A16, 0x0A59, 
+-0x0A3C, 0x0A17, 0x0A5A, 
+-0x0A3C, 0x0A1C, 0x0A5B, 
+-0x0A3C, 0x0A2B, 0x0A5E, 
+-0x0A3C, 0x0A32, 0x0A33, 
+-0x0A3C, 0x0A38, 0x0A36, 
+-0x0B3C, 0x0B21, 0x0B5C, 
+-0x0B3C, 0x0B22, 0x0B5D, 
+-0x0B47, 0x0B3E, 0x0B4B, 
+-0x0B47, 0x0B56, 0x0B48, 
+-0x0B47, 0x0B57, 0x0B4C, 
+-IBUS_KEY_leftcaret, 0x0338, 0x226E, 
+-IBUS_KEY_rightcaret, 0x0338, 0x226F, 
+-IBUS_KEY_underbar, IBUS_KEY_parenleft, 0x208D, 
+-IBUS_KEY_underbar, IBUS_KEY_parenright, 0x208E, 
+-IBUS_KEY_underbar, IBUS_KEY_plus, 0x208A, 
+-IBUS_KEY_underbar, IBUS_KEY_0, 0x2080, 
+-IBUS_KEY_underbar, IBUS_KEY_1, 0x2081, 
+-IBUS_KEY_underbar, IBUS_KEY_2, 0x2082, 
+-IBUS_KEY_underbar, IBUS_KEY_3, 0x2083, 
+-IBUS_KEY_underbar, IBUS_KEY_4, 0x2084, 
+-IBUS_KEY_underbar, IBUS_KEY_5, 0x2085, 
+-IBUS_KEY_underbar, IBUS_KEY_6, 0x2086, 
+-IBUS_KEY_underbar, IBUS_KEY_7, 0x2087, 
+-IBUS_KEY_underbar, IBUS_KEY_8, 0x2088, 
+-IBUS_KEY_underbar, IBUS_KEY_9, 0x2089, 
+-IBUS_KEY_underbar, IBUS_KEY_equal, 0x208C, 
+-0x0BC6, 0x0BBE, 0x0BCA, 
+-0x0BC6, 0x0BD7, 0x0BCC, 
+-IBUS_KEY_underbar, 0x2212, 0x208B, 
+-IBUS_KEY_underbar, IBUS_KEY_KP_Space, 0x2082, 
+-IBUS_KEY_underbar, IBUS_KEY_KP_Add, 0x208A, 
+-IBUS_KEY_underbar, IBUS_KEY_KP_0, 0x2080, 
+-IBUS_KEY_underbar, IBUS_KEY_KP_1, 0x2081, 
+-IBUS_KEY_underbar, IBUS_KEY_KP_2, 0x2082, 
+-IBUS_KEY_underbar, IBUS_KEY_KP_3, 0x2083, 
+-IBUS_KEY_underbar, IBUS_KEY_KP_4, 0x2084, 
+-IBUS_KEY_underbar, IBUS_KEY_KP_5, 0x2085, 
+-IBUS_KEY_underbar, IBUS_KEY_KP_6, 0x2086, 
+-IBUS_KEY_underbar, IBUS_KEY_KP_7, 0x2087, 
+-IBUS_KEY_underbar, IBUS_KEY_KP_8, 0x2088, 
+-IBUS_KEY_underbar, IBUS_KEY_KP_9, 0x2089, 
+-IBUS_KEY_underbar, IBUS_KEY_KP_Equal, 0x208C, 
+-0x0BC7, 0x0BBE, 0x0BCB, 
+-0x0BD7, 0x0B92, 0x0B94, 
+-IBUS_KEY_rightshoe, 0x0338, 0x2285, 
+-IBUS_KEY_leftshoe, 0x0338, 0x2284, 
+-IBUS_KEY_righttack, 0x0338, 0x22AC, 
+-0x0C46, 0x0C56, 0x0C48, 
+-0x0CBF, 0x0CD5, 0x0CC0, 
+-0x0CC6, 0x0CC2, 0x0CCA, 
+-0x0CC6, 0x0CD5, 0x0CC7, 
+-0x0CC6, 0x0CD6, 0x0CC8, 
+-0x0CCA, 0x0CD5, 0x0CCB, 
+-0x0D46, 0x0D3E, 0x0D4A, 
+-0x0D46, 0x0D57, 0x0D4C, 
+-0x0D47, 0x0D3E, 0x0D4B, 
+-0x0DD9, 0x0DCA, 0x0DDA, 
+-0x0DD9, 0x0DCF, 0x0DDC, 
+-0x0DD9, 0x0DDF, 0x0DDE, 
+-0x0DDC, 0x0DCA, 0x0DDD, 
+-0x0F71, 0x0F72, 0x0F73, 
+-0x0F71, 0x0F74, 0x0F75, 
+-0x0F71, 0x0F80, 0x0F81, 
+-0x0F90, 0x0FB5, 0x0FB9, 
+-0x0F92, 0x0FB7, 0x0F93, 
+-0x0F9C, 0x0FB7, 0x0F9D, 
+-0x0FA1, 0x0FB7, 0x0FA2, 
+-0x0FA6, 0x0FB7, 0x0FA7, 
+-0x0FAB, 0x0FB7, 0x0FAC, 
+-0x0FB2, 0x0F80, 0x0F76, 
+-0x0FB3, 0x0F80, 0x0F78, 
+-0x0FB5, 0x0F40, 0x0F69, 
+-0x0FB7, 0x0F42, 0x0F43, 
+-0x0FB7, 0x0F4C, 0x0F4D, 
+-0x0FB7, 0x0F51, 0x0F52, 
+-0x0FB7, 0x0F56, 0x0F57, 
+-0x0FB7, 0x0F5B, 0x0F5C, 
+-0x102E, 0x1025, 0x1026, 
+-0x1100, 0x1100, 0x1101, 
+-0x1102, 0x1100, 0x1113, 
+-0x1102, 0x1102, 0x1114, 
+-0x1102, 0x1103, 0x1115, 
+-0x1102, 0x1107, 0x1116, 
+-0x1103, 0x1100, 0x1117, 
+-0x1103, 0x1103, 0x1104, 
+-0x1105, 0x1102, 0x1118, 
+-0x1105, 0x1105, 0x1119, 
+-0x1105, 0x110B, 0x111B, 
+-0x1105, 0x1112, 0x111A, 
+-0x1106, 0x1107, 0x111C, 
+-0x1106, 0x110B, 0x111D, 
+-0x1107, 0x1100, 0x111E, 
+-0x1107, 0x1102, 0x111F, 
+-0x1107, 0x1103, 0x1120, 
+-0x1107, 0x1107, 0x1108, 
+-0x1107, 0x1109, 0x1121, 
+-0x1107, 0x110A, 0x1125, 
+-0x1107, 0x110B, 0x112B, 
+-0x1107, 0x110C, 0x1127, 
+-0x1107, 0x110E, 0x1128, 
+-0x1107, 0x1110, 0x1129, 
+-0x1107, 0x1111, 0x112A, 
+-0x1107, 0x112B, 0x112C, 
+-0x1107, 0x112D, 0x1122, 
+-0x1107, 0x112F, 0x1123, 
+-0x1107, 0x1132, 0x1124, 
+-0x1107, 0x1136, 0x1126, 
+-0x1108, 0x110B, 0x112C, 
+-0x1109, 0x1100, 0x112D, 
+-0x1109, 0x1102, 0x112E, 
+-0x1109, 0x1103, 0x112F, 
+-0x1109, 0x1105, 0x1130, 
+-0x1109, 0x1106, 0x1131, 
+-0x1109, 0x1107, 0x1132, 
+-0x1109, 0x1109, 0x110A, 
+-0x1109, 0x110A, 0x1134, 
+-0x1109, 0x110B, 0x1135, 
+-0x1109, 0x110C, 0x1136, 
+-0x1109, 0x110E, 0x1137, 
+-0x1109, 0x110F, 0x1138, 
+-0x1109, 0x1110, 0x1139, 
+-0x1109, 0x1111, 0x113A, 
+-0x1109, 0x1112, 0x113B, 
+-0x1109, 0x111E, 0x1133, 
+-0x110A, 0x1109, 0x1134, 
+-0x110B, 0x1100, 0x1141, 
+-0x110B, 0x1103, 0x1142, 
+-0x110B, 0x1106, 0x1143, 
+-0x110B, 0x1107, 0x1144, 
+-0x110B, 0x1109, 0x1145, 
+-0x110B, 0x110B, 0x1147, 
+-0x110B, 0x110C, 0x1148, 
+-0x110B, 0x110E, 0x1149, 
+-0x110B, 0x1110, 0x114A, 
+-0x110B, 0x1111, 0x114B, 
+-0x110B, 0x1140, 0x1146, 
+-0x110C, 0x110B, 0x114D, 
+-0x110C, 0x110C, 0x110D, 
+-0x110E, 0x110F, 0x1152, 
+-0x110E, 0x1112, 0x1153, 
+-0x1111, 0x1107, 0x1156, 
+-0x1111, 0x110B, 0x1157, 
+-0x1112, 0x1112, 0x1158, 
+-0x1121, 0x1100, 0x1122, 
+-0x1121, 0x1103, 0x1123, 
+-0x1121, 0x1107, 0x1124, 
+-0x1121, 0x1109, 0x1125, 
+-0x1121, 0x110C, 0x1126, 
+-0x1132, 0x1100, 0x1133, 
+-0x113C, 0x113C, 0x113D, 
+-0x113E, 0x113E, 0x113F, 
+-0x114E, 0x114E, 0x114F, 
+-0x1150, 0x1150, 0x1151, 
+-0x1161, 0x1169, 0x1176, 
+-0x1161, 0x116E, 0x1177, 
+-0x1161, 0x1175, 0x1162, 
+-0x1163, 0x1169, 0x1178, 
+-0x1163, 0x116D, 0x1179, 
+-0x1163, 0x1175, 0x1164, 
+-0x1165, 0x1169, 0x117A, 
+-0x1165, 0x116E, 0x117B, 
+-0x1165, 0x1173, 0x117C, 
+-0x1165, 0x1175, 0x1166, 
+-0x1167, 0x1169, 0x117D, 
+-0x1167, 0x116E, 0x117E, 
+-0x1167, 0x1175, 0x1168, 
+-0x1169, 0x1161, 0x116A, 
+-0x1169, 0x1162, 0x116B, 
+-0x1169, 0x1165, 0x117F, 
+-0x1169, 0x1166, 0x1180, 
+-0x1169, 0x1168, 0x1181, 
+-0x1169, 0x1169, 0x1182, 
+-0x1169, 0x116E, 0x1183, 
+-0x1169, 0x1175, 0x116C, 
+-0x116A, 0x1175, 0x116B, 
+-0x116D, 0x1163, 0x1184, 
+-0x116D, 0x1164, 0x1185, 
+-0x116D, 0x1167, 0x1186, 
+-0x116D, 0x1169, 0x1187, 
+-0x116D, 0x1175, 0x1188, 
+-0x116E, 0x1161, 0x1189, 
+-0x116E, 0x1162, 0x118A, 
+-0x116E, 0x1165, 0x116F, 
+-0x116E, 0x1166, 0x1170, 
+-0x116E, 0x1168, 0x118C, 
+-0x116E, 0x116E, 0x118D, 
+-0x116E, 0x1175, 0x1171, 
+-0x116E, 0x117C, 0x118B, 
+-0x116F, 0x1173, 0x118B, 
+-0x116F, 0x1175, 0x1170, 
+-0x1172, 0x1161, 0x118E, 
+-0x1172, 0x1165, 0x118F, 
+-0x1172, 0x1166, 0x1190, 
+-0x1172, 0x1167, 0x1191, 
+-0x1172, 0x1168, 0x1192, 
+-0x1172, 0x116E, 0x1193, 
+-0x1172, 0x1175, 0x1194, 
+-0x1173, 0x116E, 0x1195, 
+-0x1173, 0x1173, 0x1196, 
+-0x1173, 0x1175, 0x1174, 
+-0x1174, 0x116E, 0x1197, 
+-0x1175, 0x1161, 0x1198, 
+-0x1175, 0x1163, 0x1199, 
+-0x1175, 0x1169, 0x119A, 
+-0x1175, 0x116E, 0x119B, 
+-0x1175, 0x1173, 0x119C, 
+-0x1175, 0x119E, 0x119D, 
+-0x119E, 0x1165, 0x119F, 
+-0x119E, 0x116E, 0x11A0, 
+-0x119E, 0x1175, 0x11A1, 
+-0x119E, 0x119E, 0x11A2, 
+-0x11A8, 0x11A8, 0x11A9, 
+-0x11A8, 0x11AF, 0x11C3, 
+-0x11A8, 0x11BA, 0x11AA, 
+-0x11A8, 0x11E7, 0x11C4, 
+-0x11AA, 0x11A8, 0x11C4, 
+-0x11AB, 0x11A8, 0x11C5, 
+-0x11AB, 0x11AE, 0x11C6, 
+-0x11AB, 0x11BA, 0x11C7, 
+-0x11AB, 0x11BD, 0x11AC, 
+-0x11AB, 0x11C0, 0x11C9, 
+-0x11AB, 0x11C2, 0x11AD, 
+-0x11AB, 0x11EB, 0x11C8, 
+-0x11AE, 0x11A8, 0x11CA, 
+-0x11AE, 0x11AF, 0x11CB, 
+-0x11AF, 0x11A8, 0x11B0, 
+-0x11AF, 0x11AA, 0x11CC, 
+-0x11AF, 0x11AB, 0x11CD, 
+-0x11AF, 0x11AE, 0x11CE, 
+-0x11AF, 0x11AF, 0x11D0, 
+-0x11AF, 0x11B7, 0x11B1, 
+-0x11AF, 0x11B8, 0x11B2, 
+-0x11AF, 0x11B9, 0x11D3, 
+-0x11AF, 0x11BA, 0x11B3, 
+-0x11AF, 0x11BB, 0x11D6, 
+-0x11AF, 0x11BF, 0x11D8, 
+-0x11AF, 0x11C0, 0x11B4, 
+-0x11AF, 0x11C1, 0x11B5, 
+-0x11AF, 0x11C2, 0x11B6, 
+-0x11AF, 0x11DA, 0x11D1, 
+-0x11AF, 0x11DD, 0x11D2, 
+-0x11AF, 0x11E5, 0x11D4, 
+-0x11AF, 0x11E6, 0x11D5, 
+-0x11AF, 0x11EB, 0x11D7, 
+-0x11AF, 0x11F9, 0x11D9, 
+-0x11B0, 0x11BA, 0x11CC, 
+-0x11B1, 0x11A8, 0x11D1, 
+-0x11B1, 0x11BA, 0x11D2, 
+-0x11B2, 0x11BA, 0x11D3, 
+-0x11B2, 0x11BC, 0x11D5, 
+-0x11B2, 0x11C2, 0x11D4, 
+-0x11B3, 0x11BA, 0x11D6, 
+-0x11B7, 0x11A8, 0x11DA, 
+-0x11B7, 0x11AF, 0x11DB, 
+-0x11B7, 0x11B8, 0x11DC, 
+-0x11B7, 0x11BA, 0x11DD, 
+-0x11B7, 0x11BB, 0x11DE, 
+-0x11B7, 0x11BC, 0x11E2, 
+-0x11B7, 0x11BE, 0x11E0, 
+-0x11B7, 0x11C2, 0x11E1, 
+-0x11B7, 0x11EB, 0x11DF, 
+-0x11B8, 0x11AF, 0x11E3, 
+-0x11B8, 0x11BA, 0x11B9, 
+-0x11B8, 0x11BC, 0x11E6, 
+-0x11B8, 0x11C1, 0x11E4, 
+-0x11B8, 0x11C2, 0x11E5, 
+-0x11BA, 0x11A8, 0x11E7, 
+-0x11BA, 0x11AE, 0x11E8, 
+-0x11BA, 0x11AF, 0x11E9, 
+-0x11BA, 0x11B8, 0x11EA, 
+-0x11BA, 0x11BA, 0x11BB, 
+-0x11BC, 0x11A8, 0x11EC, 
+-0x11BC, 0x11A9, 0x11ED, 
+-0x11BC, 0x11BC, 0x11EE, 
+-0x11BC, 0x11BF, 0x11EF, 
+-0x11C1, 0x11B8, 0x11F3, 
+-0x11C1, 0x11BC, 0x11F4, 
+-0x11C2, 0x11AB, 0x11F5, 
+-0x11C2, 0x11AF, 0x11F6, 
+-0x11C2, 0x11B7, 0x11F7, 
+-0x11C2, 0x11B8, 0x11F8, 
+-0x11CE, 0x11C2, 0x11CF, 
+-0x11DD, 0x11BA, 0x11DE, 
+-0x11EC, 0x11A8, 0x11ED, 
+-0x11F0, 0x11BA, 0x11F1, 
+-0x11F0, 0x11EB, 0x11F2, 
+-0x1FBF, IBUS_KEY_apostrophe, 0x1FCE, 
+-0x1FBF, IBUS_KEY_grave, 0x1FCD, 
+-0x1FBF, IBUS_KEY_asciitilde, 0x1FCF, 
+-0x1FBF, IBUS_KEY_acute, 0x1FCE, 
+-0x1FBF, IBUS_KEY_dead_grave, 0x1FCD, 
+-0x1FBF, IBUS_KEY_dead_acute, 0x1FCE, 
+-0x1FBF, IBUS_KEY_dead_tilde, 0x1FCF, 
+-0x1FFE, IBUS_KEY_apostrophe, 0x1FDE, 
+-0x1FFE, IBUS_KEY_grave, 0x1FDD, 
+-0x1FFE, IBUS_KEY_asciitilde, 0x1FDF, 
+-0x1FFE, IBUS_KEY_acute, 0x1FDE, 
+-0x1FFE, IBUS_KEY_dead_grave, 0x1FDD, 
+-0x1FFE, IBUS_KEY_dead_acute, 0x1FDE, 
+-0x1FFE, IBUS_KEY_dead_tilde, 0x1FDF, 
+-0x2190, IBUS_KEY_bar, 0x2345, 
+-0x2190, 0x2395, 0x2347, 
+-0x2191, IBUS_KEY_minus, 0x234F, 
+-0x2191, 0x2395, 0x2350, 
+-0x2192, IBUS_KEY_bar, 0x2346, 
+-0x2192, 0x2395, 0x2348, 
+-0x2193, IBUS_KEY_minus, 0x2356, 
+-0x2193, 0x2395, 0x2357, 
+-0x2203, 0x0338, 0x2204, 
+-0x2206, IBUS_KEY_underscore, 0x2359, 
+-0x2206, IBUS_KEY_bar, 0x234B, 
+-0x2206, 0x2395, 0x234D, 
+-0x2207, IBUS_KEY_bar, 0x2352, 
+-0x2207, IBUS_KEY_asciitilde, 0x236B, 
+-0x2207, IBUS_KEY_diaeresis, 0x2362, 
+-0x2207, 0x2395, 0x2354, 
+-0x2208, 0x0338, 0x2209, 
+-0x220A, IBUS_KEY_underscore, 0x2377, 
+-0x220B, 0x0338, 0x220C, 
+-0x2218, IBUS_KEY_underscore, 0x235B, 
+-0x2218, IBUS_KEY_diaeresis, 0x2364, 
+-0x2218, 0x2229, 0x235D, 
+-0x2218, IBUS_KEY_uptack, 0x2355, 
+-0x2218, IBUS_KEY_downtack, 0x234E, 
+-0x2218, 0x2395, 0x233B, 
+-0x2218, IBUS_KEY_emopencircle, 0x233E, 
+-0x2223, 0x0338, 0x2224, 
+-0x2225, 0x0338, 0x2226, 
+-0x2227, IBUS_KEY_asciitilde, 0x2372, 
+-0x2227, 0x2228, 0x22C4, 
+-0x2227, 0x2395, 0x2353, 
+-0x2228, IBUS_KEY_asciitilde, 0x2371, 
+-0x2228, 0x2227, 0x22C4, 
+-0x2228, 0x2395, 0x234C, 
+-0x2229, 0x2218, 0x235D, 
+-IBUS_KEY_union, IBUS_KEY_bar, 0x2366, 
+-0x223C, 0x0338, 0x2241, 
+-0x2243, 0x0338, 0x2244, 
+-0x2248, 0x0338, 0x2249, 
+-0x224D, 0x0338, 0x226D, 
+-0x2260, IBUS_KEY_underscore, 0x2262, 
+-0x2260, 0x2395, 0x236F, 
+-0x2272, 0x0338, 0x2274, 
+-0x2273, 0x0338, 0x2275, 
+-0x2276, 0x0338, 0x2278, 
+-0x2277, 0x0338, 0x2279, 
+-0x227A, 0x0338, 0x2280, 
+-0x227B, 0x0338, 0x2281, 
+-0x227C, 0x0338, 0x22E0, 
+-0x227D, 0x0338, 0x22E1, 
+-0x2282, IBUS_KEY_underscore, 0x2286, 
+-0x2282, IBUS_KEY_bar, 0x2367, 
+-0x2283, IBUS_KEY_underscore, 0x2287, 
+-0x2286, 0x0338, 0x2288, 
+-0x2287, 0x0338, 0x2289, 
+-0x2291, 0x0338, 0x22E2, 
+-0x2292, 0x0338, 0x22E3, 
+-IBUS_KEY_uptack, IBUS_KEY_diaeresis, 0x2361, 
+-IBUS_KEY_uptack, IBUS_KEY_macron, 0x2351, 
+-IBUS_KEY_uptack, 0x2218, 0x2355, 
+-IBUS_KEY_uptack, IBUS_KEY_downtack, 0x2336, 
+-IBUS_KEY_downtack, IBUS_KEY_underscore, 0x234A, 
+-IBUS_KEY_downtack, 0x2218, 0x234E, 
+-IBUS_KEY_downtack, IBUS_KEY_uptack, 0x2336, 
+-0x22A8, 0x0338, 0x22AD, 
+-0x22A9, 0x0338, 0x22AE, 
+-0x22AB, 0x0338, 0x22AF, 
+-0x22B2, 0x0338, 0x22EA, 
+-0x22B3, 0x0338, 0x22EB, 
+-0x22B4, 0x0338, 0x22EC, 
+-0x22B5, 0x0338, 0x22ED, 
+-0x22C4, IBUS_KEY_underscore, 0x235A, 
+-0x22C4, 0x2395, 0x233A, 
+-0x2373, IBUS_KEY_underscore, 0x2378, 
+-0x2375, IBUS_KEY_underscore, 0x2379, 
+-0x237A, IBUS_KEY_underscore, 0x2376, 
+-0x2395, IBUS_KEY_apostrophe, 0x235E, 
+-0x2395, IBUS_KEY_slash, 0x2341, 
+-0x2395, IBUS_KEY_colon, 0x2360, 
+-0x2395, IBUS_KEY_less, 0x2343, 
+-0x2395, IBUS_KEY_equal, 0x2338, 
+-0x2395, IBUS_KEY_greater, 0x2344, 
+-0x2395, IBUS_KEY_question, 0x2370, 
+-0x2395, IBUS_KEY_backslash, 0x2342, 
+-0x2395, IBUS_KEY_division, 0x2339, 
+-0x2395, 0x2190, 0x2347, 
+-0x2395, 0x2191, 0x2350, 
+-0x2395, 0x2192, 0x2348, 
+-0x2395, 0x2193, 0x2357, 
+-0x2395, 0x2206, 0x234D, 
+-0x2395, 0x2207, 0x2354, 
+-0x2395, 0x2218, 0x233B, 
+-0x2395, 0x2227, 0x2353, 
+-0x2395, 0x2228, 0x234C, 
+-0x2395, 0x2260, 0x236F, 
+-0x2395, 0x22C4, 0x233A, 
+-0x2395, IBUS_KEY_emopencircle, 0x233C, 
+-IBUS_KEY_emopencircle, IBUS_KEY_asterisk, 0x235F, 
+-IBUS_KEY_emopencircle, IBUS_KEY_minus, 0x2296, 
+-IBUS_KEY_emopencircle, IBUS_KEY_period, 0x2299, 
+-IBUS_KEY_emopencircle, IBUS_KEY_backslash, 0x2349, 
+-IBUS_KEY_emopencircle, IBUS_KEY_underscore, 0x235C, 
+-IBUS_KEY_emopencircle, IBUS_KEY_bar, 0x233D, 
+-IBUS_KEY_emopencircle, IBUS_KEY_diaeresis, 0x2365, 
+-IBUS_KEY_emopencircle, 0x2218, 0x233E, 
+-IBUS_KEY_emopencircle, 0x2395, 0x233C, 
+-0x2ADD, 0x0338, 0x2ADC, 
+-IBUS_KEY_KP_Divide, IBUS_KEY_D, 0x0110, 
+-IBUS_KEY_KP_Divide, IBUS_KEY_G, 0x01E4, 
+-IBUS_KEY_KP_Divide, IBUS_KEY_H, 0x0126, 
+-IBUS_KEY_KP_Divide, IBUS_KEY_I, 0x0197, 
+-IBUS_KEY_KP_Divide, IBUS_KEY_L, 0x0141, 
+-IBUS_KEY_KP_Divide, IBUS_KEY_O, 0x00D8, 
+-IBUS_KEY_KP_Divide, IBUS_KEY_T, 0x0166, 
+-IBUS_KEY_KP_Divide, IBUS_KEY_Z, 0x01B5, 
+-IBUS_KEY_KP_Divide, IBUS_KEY_b, 0x0180, 
+-IBUS_KEY_KP_Divide, IBUS_KEY_d, 0x0111, 
+-IBUS_KEY_KP_Divide, IBUS_KEY_g, 0x01E5, 
+-IBUS_KEY_KP_Divide, IBUS_KEY_h, 0x0127, 
+-IBUS_KEY_KP_Divide, IBUS_KEY_i, 0x0268, 
+-IBUS_KEY_KP_Divide, IBUS_KEY_l, 0x0142, 
+-IBUS_KEY_KP_Divide, IBUS_KEY_o, 0x00F8, 
+-IBUS_KEY_KP_Divide, IBUS_KEY_t, 0x0167, 
+-IBUS_KEY_KP_Divide, IBUS_KEY_z, 0x01B6, 
+-IBUS_KEY_KP_Divide, 0x0294, 0x02A1, 
+-IBUS_KEY_KP_Divide, 0x04AE, 0x04B0, 
+-IBUS_KEY_KP_Divide, 0x04AF, 0x04B1, 
+-IBUS_KEY_KP_Divide, IBUS_KEY_Cyrillic_ghe, 0x0493, 
+-IBUS_KEY_KP_Divide, IBUS_KEY_Cyrillic_ka, 0x049F, 
+-IBUS_KEY_KP_Divide, IBUS_KEY_Cyrillic_GHE, 0x0492, 
+-IBUS_KEY_KP_Divide, IBUS_KEY_Cyrillic_KA, 0x049E, 
+-IBUS_KEY_KP_Divide, IBUS_KEY_leftarrow, 0x219A, 
+-IBUS_KEY_KP_Divide, IBUS_KEY_rightarrow, 0x219B, 
+-IBUS_KEY_KP_Divide, 0x2194, 0x21AE, 
+-IBUS_KEY_KP_Equal, 0x0338, 0x2260, 
+-IBUS_KEY_exclam, IBUS_KEY_plus, IBUS_KEY_O, 0x1EE2, 
+-IBUS_KEY_exclam, IBUS_KEY_plus, IBUS_KEY_U, 0x1EF0, 
+-IBUS_KEY_exclam, IBUS_KEY_plus, IBUS_KEY_o, 0x1EE3, 
+-IBUS_KEY_exclam, IBUS_KEY_plus, IBUS_KEY_u, 0x1EF1, 
+-IBUS_KEY_exclam, IBUS_KEY_dead_horn, IBUS_KEY_O, 0x1EE2, 
+-IBUS_KEY_exclam, IBUS_KEY_dead_horn, IBUS_KEY_U, 0x1EF0, 
+-IBUS_KEY_exclam, IBUS_KEY_dead_horn, IBUS_KEY_o, 0x1EE3, 
+-IBUS_KEY_exclam, IBUS_KEY_dead_horn, IBUS_KEY_u, 0x1EF1, 
+-IBUS_KEY_quotedbl, IBUS_KEY_underscore, IBUS_KEY_U, 0x1E7A, 
+-IBUS_KEY_quotedbl, IBUS_KEY_underscore, IBUS_KEY_u, 0x1E7B, 
+-IBUS_KEY_quotedbl, IBUS_KEY_asciitilde, IBUS_KEY_O, 0x1E4E, 
+-IBUS_KEY_quotedbl, IBUS_KEY_asciitilde, IBUS_KEY_o, 0x1E4F, 
+-IBUS_KEY_quotedbl, IBUS_KEY_macron, IBUS_KEY_U, 0x1E7A, 
+-IBUS_KEY_quotedbl, IBUS_KEY_macron, IBUS_KEY_u, 0x1E7B, 
+-IBUS_KEY_quotedbl, IBUS_KEY_dead_tilde, IBUS_KEY_O, 0x1E4E, 
+-IBUS_KEY_quotedbl, IBUS_KEY_dead_tilde, IBUS_KEY_o, 0x1E4F, 
+-IBUS_KEY_quotedbl, IBUS_KEY_dead_macron, IBUS_KEY_U, 0x1E7A, 
+-IBUS_KEY_quotedbl, IBUS_KEY_dead_macron, IBUS_KEY_u, 0x1E7B, 
+-IBUS_KEY_apostrophe, IBUS_KEY_quotedbl, IBUS_KEY_space, 0x0385, 
+-IBUS_KEY_apostrophe, IBUS_KEY_quotedbl, IBUS_KEY_I, 0x1E2E, 
+-IBUS_KEY_apostrophe, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01D7, 
+-IBUS_KEY_apostrophe, IBUS_KEY_quotedbl, IBUS_KEY_i, 0x1E2F, 
+-IBUS_KEY_apostrophe, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01D8, 
+-IBUS_KEY_apostrophe, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota, 0x0390, 
+-IBUS_KEY_apostrophe, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon, 0x03B0, 
+-IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F0D, 
+-IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_EPSILON, 0x1F1D, 
+-IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F2D, 
+-IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA, 0x1F3D, 
+-IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMICRON, 0x1F4D, 
+-IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON, 0x1F5D, 
+-IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1F6D, 
+-IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F05, 
+-IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_epsilon, 0x1F15, 
+-IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F25, 
+-IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_iota, 0x1F35, 
+-IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_omicron, 0x1F45, 
+-IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon, 0x1F55, 
+-IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1F65, 
+-IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F0C, 
+-IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_EPSILON, 0x1F1C, 
+-IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F2C, 
+-IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA, 0x1F3C, 
+-IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_OMICRON, 0x1F4C, 
+-IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1F6C, 
+-IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F04, 
+-IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_epsilon, 0x1F14, 
+-IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F24, 
+-IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_iota, 0x1F34, 
+-IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_omicron, 0x1F44, 
+-IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon, 0x1F54, 
+-IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1F64, 
+-IBUS_KEY_apostrophe, IBUS_KEY_plus, IBUS_KEY_O, 0x1EDA, 
+-IBUS_KEY_apostrophe, IBUS_KEY_plus, IBUS_KEY_U, 0x1EE8, 
+-IBUS_KEY_apostrophe, IBUS_KEY_plus, IBUS_KEY_o, 0x1EDB, 
+-IBUS_KEY_apostrophe, IBUS_KEY_plus, IBUS_KEY_u, 0x1EE9, 
+-IBUS_KEY_apostrophe, IBUS_KEY_slash, IBUS_KEY_O, 0x01FE, 
+-IBUS_KEY_apostrophe, IBUS_KEY_slash, IBUS_KEY_o, 0x01FF, 
+-IBUS_KEY_apostrophe, IBUS_KEY_asciicircum, IBUS_KEY_A, 0x1EA4, 
+-IBUS_KEY_apostrophe, IBUS_KEY_asciicircum, IBUS_KEY_E, 0x1EBE, 
+-IBUS_KEY_apostrophe, IBUS_KEY_asciicircum, IBUS_KEY_O, 0x1ED0, 
+-IBUS_KEY_apostrophe, IBUS_KEY_asciicircum, IBUS_KEY_a, 0x1EA5, 
+-IBUS_KEY_apostrophe, IBUS_KEY_asciicircum, IBUS_KEY_e, 0x1EBF, 
+-IBUS_KEY_apostrophe, IBUS_KEY_asciicircum, IBUS_KEY_o, 0x1ED1, 
+-IBUS_KEY_apostrophe, IBUS_KEY_underscore, IBUS_KEY_E, 0x1E16, 
+-IBUS_KEY_apostrophe, IBUS_KEY_underscore, IBUS_KEY_O, 0x1E52, 
+-IBUS_KEY_apostrophe, IBUS_KEY_underscore, IBUS_KEY_e, 0x1E17, 
+-IBUS_KEY_apostrophe, IBUS_KEY_underscore, IBUS_KEY_o, 0x1E53, 
+-IBUS_KEY_apostrophe, IBUS_KEY_b, IBUS_KEY_A, 0x1EAE, 
+-IBUS_KEY_apostrophe, IBUS_KEY_b, IBUS_KEY_a, 0x1EAF, 
+-IBUS_KEY_apostrophe, IBUS_KEY_asciitilde, IBUS_KEY_O, 0x1E4C, 
+-IBUS_KEY_apostrophe, IBUS_KEY_asciitilde, IBUS_KEY_U, 0x1E78, 
+-IBUS_KEY_apostrophe, IBUS_KEY_asciitilde, IBUS_KEY_o, 0x1E4D, 
+-IBUS_KEY_apostrophe, IBUS_KEY_asciitilde, IBUS_KEY_u, 0x1E79, 
+-IBUS_KEY_apostrophe, IBUS_KEY_macron, IBUS_KEY_E, 0x1E16, 
+-IBUS_KEY_apostrophe, IBUS_KEY_macron, IBUS_KEY_O, 0x1E52, 
+-IBUS_KEY_apostrophe, IBUS_KEY_macron, IBUS_KEY_e, 0x1E17, 
+-IBUS_KEY_apostrophe, IBUS_KEY_macron, IBUS_KEY_o, 0x1E53, 
+-IBUS_KEY_apostrophe, IBUS_KEY_cedilla, IBUS_KEY_C, 0x1E08, 
+-IBUS_KEY_apostrophe, IBUS_KEY_cedilla, IBUS_KEY_c, 0x1E09, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_circumflex, IBUS_KEY_A, 0x1EA4, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_circumflex, IBUS_KEY_E, 0x1EBE, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_circumflex, IBUS_KEY_O, 0x1ED0, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_circumflex, IBUS_KEY_a, 0x1EA5, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_circumflex, IBUS_KEY_e, 0x1EBF, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_circumflex, IBUS_KEY_o, 0x1ED1, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_tilde, IBUS_KEY_O, 0x1E4C, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_tilde, IBUS_KEY_U, 0x1E78, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_tilde, IBUS_KEY_o, 0x1E4D, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_tilde, IBUS_KEY_u, 0x1E79, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_macron, IBUS_KEY_E, 0x1E16, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_macron, IBUS_KEY_O, 0x1E52, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_macron, IBUS_KEY_e, 0x1E17, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_macron, IBUS_KEY_o, 0x1E53, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_breve, IBUS_KEY_A, 0x1EAE, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_breve, IBUS_KEY_a, 0x1EAF, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_diaeresis, IBUS_KEY_I, 0x1E2E, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_diaeresis, IBUS_KEY_U, 0x01D7, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_diaeresis, IBUS_KEY_i, 0x1E2F, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_diaeresis, IBUS_KEY_u, 0x01D8, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_iota, 0x0390, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_upsilon, 0x03B0, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_abovering, IBUS_KEY_A, 0x01FA, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_abovering, IBUS_KEY_a, 0x01FB, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_cedilla, IBUS_KEY_C, 0x1E08, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_cedilla, IBUS_KEY_c, 0x1E09, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_horn, IBUS_KEY_O, 0x1EDA, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_horn, IBUS_KEY_U, 0x1EE8, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_horn, IBUS_KEY_o, 0x1EDB, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_horn, IBUS_KEY_u, 0x1EE9, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F0C, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_EPSILON, 0x1F1C, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F2C, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_IOTA, 0x1F3C, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMICRON, 0x1F4C, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1F6C, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F04, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_epsilon, 0x1F14, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F24, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_iota, 0x1F34, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omicron, 0x1F44, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_upsilon, 0x1F54, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1F64, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F0D, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_EPSILON, 0x1F1D, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F2D, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_IOTA, 0x1F3D, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMICRON, 0x1F4D, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_UPSILON, 0x1F5D, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1F6D, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F05, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_epsilon, 0x1F15, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F25, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_iota, 0x1F35, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omicron, 0x1F45, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_upsilon, 0x1F55, 
+-IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1F65, 
+-IBUS_KEY_apostrophe, IBUS_KEY_KP_Divide, IBUS_KEY_O, 0x01FE, 
+-IBUS_KEY_apostrophe, IBUS_KEY_KP_Divide, IBUS_KEY_o, 0x01FF, 
+-IBUS_KEY_parenleft, IBUS_KEY_0, IBUS_KEY_parenright, 0x24EA, 
+-IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_parenright, 0x2460, 
+-IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_parenright, 0x2461, 
+-IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_parenright, 0x2462, 
+-IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_parenright, 0x2463, 
+-IBUS_KEY_parenleft, IBUS_KEY_5, IBUS_KEY_parenright, 0x2464, 
+-IBUS_KEY_parenleft, IBUS_KEY_6, IBUS_KEY_parenright, 0x2465, 
+-IBUS_KEY_parenleft, IBUS_KEY_7, IBUS_KEY_parenright, 0x2466, 
+-IBUS_KEY_parenleft, IBUS_KEY_8, IBUS_KEY_parenright, 0x2467, 
+-IBUS_KEY_parenleft, IBUS_KEY_9, IBUS_KEY_parenright, 0x2468, 
+-IBUS_KEY_parenleft, IBUS_KEY_A, IBUS_KEY_parenright, 0x24B6, 
+-IBUS_KEY_parenleft, IBUS_KEY_B, IBUS_KEY_parenright, 0x24B7, 
+-IBUS_KEY_parenleft, IBUS_KEY_C, IBUS_KEY_parenright, 0x24B8, 
+-IBUS_KEY_parenleft, IBUS_KEY_D, IBUS_KEY_parenright, 0x24B9, 
+-IBUS_KEY_parenleft, IBUS_KEY_E, IBUS_KEY_parenright, 0x24BA, 
+-IBUS_KEY_parenleft, IBUS_KEY_F, IBUS_KEY_parenright, 0x24BB, 
+-IBUS_KEY_parenleft, IBUS_KEY_G, IBUS_KEY_parenright, 0x24BC, 
+-IBUS_KEY_parenleft, IBUS_KEY_H, IBUS_KEY_parenright, 0x24BD, 
+-IBUS_KEY_parenleft, IBUS_KEY_I, IBUS_KEY_parenright, 0x24BE, 
+-IBUS_KEY_parenleft, IBUS_KEY_J, IBUS_KEY_parenright, 0x24BF, 
+-IBUS_KEY_parenleft, IBUS_KEY_K, IBUS_KEY_parenright, 0x24C0, 
+-IBUS_KEY_parenleft, IBUS_KEY_L, IBUS_KEY_parenright, 0x24C1, 
+-IBUS_KEY_parenleft, IBUS_KEY_M, IBUS_KEY_parenright, 0x24C2, 
+-IBUS_KEY_parenleft, IBUS_KEY_N, IBUS_KEY_parenright, 0x24C3, 
+-IBUS_KEY_parenleft, IBUS_KEY_O, IBUS_KEY_parenright, 0x24C4, 
+-IBUS_KEY_parenleft, IBUS_KEY_P, IBUS_KEY_parenright, 0x24C5, 
+-IBUS_KEY_parenleft, IBUS_KEY_Q, IBUS_KEY_parenright, 0x24C6, 
+-IBUS_KEY_parenleft, IBUS_KEY_R, IBUS_KEY_parenright, 0x24C7, 
+-IBUS_KEY_parenleft, IBUS_KEY_S, IBUS_KEY_parenright, 0x24C8, 
+-IBUS_KEY_parenleft, IBUS_KEY_T, IBUS_KEY_parenright, 0x24C9, 
+-IBUS_KEY_parenleft, IBUS_KEY_U, IBUS_KEY_parenright, 0x24CA, 
+-IBUS_KEY_parenleft, IBUS_KEY_V, IBUS_KEY_parenright, 0x24CB, 
+-IBUS_KEY_parenleft, IBUS_KEY_W, IBUS_KEY_parenright, 0x24CC, 
+-IBUS_KEY_parenleft, IBUS_KEY_X, IBUS_KEY_parenright, 0x24CD, 
+-IBUS_KEY_parenleft, IBUS_KEY_Y, IBUS_KEY_parenright, 0x24CE, 
+-IBUS_KEY_parenleft, IBUS_KEY_Z, IBUS_KEY_parenright, 0x24CF, 
+-IBUS_KEY_parenleft, IBUS_KEY_a, IBUS_KEY_parenright, 0x24D0, 
+-IBUS_KEY_parenleft, IBUS_KEY_b, IBUS_KEY_parenright, 0x24D1, 
+-IBUS_KEY_parenleft, IBUS_KEY_c, IBUS_KEY_parenright, 0x24D2, 
+-IBUS_KEY_parenleft, IBUS_KEY_d, IBUS_KEY_parenright, 0x24D3, 
+-IBUS_KEY_parenleft, IBUS_KEY_e, IBUS_KEY_parenright, 0x24D4, 
+-IBUS_KEY_parenleft, IBUS_KEY_f, IBUS_KEY_parenright, 0x24D5, 
+-IBUS_KEY_parenleft, IBUS_KEY_g, IBUS_KEY_parenright, 0x24D6, 
+-IBUS_KEY_parenleft, IBUS_KEY_h, IBUS_KEY_parenright, 0x24D7, 
+-IBUS_KEY_parenleft, IBUS_KEY_i, IBUS_KEY_parenright, 0x24D8, 
+-IBUS_KEY_parenleft, IBUS_KEY_j, IBUS_KEY_parenright, 0x24D9, 
+-IBUS_KEY_parenleft, IBUS_KEY_k, IBUS_KEY_parenright, 0x24DA, 
+-IBUS_KEY_parenleft, IBUS_KEY_l, IBUS_KEY_parenright, 0x24DB, 
+-IBUS_KEY_parenleft, IBUS_KEY_m, IBUS_KEY_parenright, 0x24DC, 
+-IBUS_KEY_parenleft, IBUS_KEY_n, IBUS_KEY_parenright, 0x24DD, 
+-IBUS_KEY_parenleft, IBUS_KEY_o, IBUS_KEY_parenright, 0x24DE, 
+-IBUS_KEY_parenleft, IBUS_KEY_p, IBUS_KEY_parenright, 0x24DF, 
+-IBUS_KEY_parenleft, IBUS_KEY_q, IBUS_KEY_parenright, 0x24E0, 
+-IBUS_KEY_parenleft, IBUS_KEY_r, IBUS_KEY_parenright, 0x24E1, 
+-IBUS_KEY_parenleft, IBUS_KEY_s, IBUS_KEY_parenright, 0x24E2, 
+-IBUS_KEY_parenleft, IBUS_KEY_t, IBUS_KEY_parenright, 0x24E3, 
+-IBUS_KEY_parenleft, IBUS_KEY_u, IBUS_KEY_parenright, 0x24E4, 
+-IBUS_KEY_parenleft, IBUS_KEY_v, IBUS_KEY_parenright, 0x24E5, 
+-IBUS_KEY_parenleft, IBUS_KEY_w, IBUS_KEY_parenright, 0x24E6, 
+-IBUS_KEY_parenleft, IBUS_KEY_x, IBUS_KEY_parenright, 0x24E7, 
+-IBUS_KEY_parenleft, IBUS_KEY_y, IBUS_KEY_parenright, 0x24E8, 
+-IBUS_KEY_parenleft, IBUS_KEY_z, IBUS_KEY_parenright, 0x24E9, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_WO, IBUS_KEY_parenright, 0x32FE, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_A, IBUS_KEY_parenright, 0x32D0, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_I, IBUS_KEY_parenright, 0x32D1, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_U, IBUS_KEY_parenright, 0x32D2, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_E, IBUS_KEY_parenright, 0x32D3, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_O, IBUS_KEY_parenright, 0x32D4, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_KA, IBUS_KEY_parenright, 0x32D5, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_KI, IBUS_KEY_parenright, 0x32D6, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_KU, IBUS_KEY_parenright, 0x32D7, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_KE, IBUS_KEY_parenright, 0x32D8, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_KO, IBUS_KEY_parenright, 0x32D9, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_SA, IBUS_KEY_parenright, 0x32DA, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_SHI, IBUS_KEY_parenright, 0x32DB, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_SU, IBUS_KEY_parenright, 0x32DC, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_SE, IBUS_KEY_parenright, 0x32DD, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_SO, IBUS_KEY_parenright, 0x32DE, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_TA, IBUS_KEY_parenright, 0x32DF, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_CHI, IBUS_KEY_parenright, 0x32E0, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_TSU, IBUS_KEY_parenright, 0x32E1, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_TE, IBUS_KEY_parenright, 0x32E2, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_TO, IBUS_KEY_parenright, 0x32E3, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_NA, IBUS_KEY_parenright, 0x32E4, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_NI, IBUS_KEY_parenright, 0x32E5, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_NU, IBUS_KEY_parenright, 0x32E6, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_NE, IBUS_KEY_parenright, 0x32E7, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_NO, IBUS_KEY_parenright, 0x32E8, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_HA, IBUS_KEY_parenright, 0x32E9, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_HI, IBUS_KEY_parenright, 0x32EA, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_FU, IBUS_KEY_parenright, 0x32EB, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_HE, IBUS_KEY_parenright, 0x32EC, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_HO, IBUS_KEY_parenright, 0x32ED, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_MA, IBUS_KEY_parenright, 0x32EE, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_MI, IBUS_KEY_parenright, 0x32EF, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_MU, IBUS_KEY_parenright, 0x32F0, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_ME, IBUS_KEY_parenright, 0x32F1, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_MO, IBUS_KEY_parenright, 0x32F2, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_YA, IBUS_KEY_parenright, 0x32F3, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_YU, IBUS_KEY_parenright, 0x32F4, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_YO, IBUS_KEY_parenright, 0x32F5, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_RA, IBUS_KEY_parenright, 0x32F6, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_RI, IBUS_KEY_parenright, 0x32F7, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_RU, IBUS_KEY_parenright, 0x32F8, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_RE, IBUS_KEY_parenright, 0x32F9, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_RO, IBUS_KEY_parenright, 0x32FA, 
+-IBUS_KEY_parenleft, IBUS_KEY_kana_WA, IBUS_KEY_parenright, 0x32FB, 
+-IBUS_KEY_parenleft, 0x1100, IBUS_KEY_parenright, 0x3260, 
+-IBUS_KEY_parenleft, 0x1102, IBUS_KEY_parenright, 0x3261, 
+-IBUS_KEY_parenleft, 0x1103, IBUS_KEY_parenright, 0x3262, 
+-IBUS_KEY_parenleft, 0x1105, IBUS_KEY_parenright, 0x3263, 
+-IBUS_KEY_parenleft, 0x1106, IBUS_KEY_parenright, 0x3264, 
+-IBUS_KEY_parenleft, 0x1107, IBUS_KEY_parenright, 0x3265, 
+-IBUS_KEY_parenleft, 0x1109, IBUS_KEY_parenright, 0x3266, 
+-IBUS_KEY_parenleft, 0x110B, IBUS_KEY_parenright, 0x3267, 
+-IBUS_KEY_parenleft, 0x110C, IBUS_KEY_parenright, 0x3268, 
+-IBUS_KEY_parenleft, 0x110E, IBUS_KEY_parenright, 0x3269, 
+-IBUS_KEY_parenleft, 0x110F, IBUS_KEY_parenright, 0x326A, 
+-IBUS_KEY_parenleft, 0x1110, IBUS_KEY_parenright, 0x326B, 
+-IBUS_KEY_parenleft, 0x1111, IBUS_KEY_parenright, 0x326C, 
+-IBUS_KEY_parenleft, 0x1112, IBUS_KEY_parenright, 0x326D, 
+-IBUS_KEY_parenleft, 0x30F0, IBUS_KEY_parenright, 0x32FC, 
+-IBUS_KEY_parenleft, 0x30F1, IBUS_KEY_parenright, 0x32FD, 
+-IBUS_KEY_parenleft, 0x4E00, IBUS_KEY_parenright, 0x3280, 
+-IBUS_KEY_parenleft, 0x4E03, IBUS_KEY_parenright, 0x3286, 
+-IBUS_KEY_parenleft, 0x4E09, IBUS_KEY_parenright, 0x3282, 
+-IBUS_KEY_parenleft, 0x4E0A, IBUS_KEY_parenright, 0x32A4, 
+-IBUS_KEY_parenleft, 0x4E0B, IBUS_KEY_parenright, 0x32A6, 
+-IBUS_KEY_parenleft, 0x4E2D, IBUS_KEY_parenright, 0x32A5, 
+-IBUS_KEY_parenleft, 0x4E5D, IBUS_KEY_parenright, 0x3288, 
+-IBUS_KEY_parenleft, 0x4E8C, IBUS_KEY_parenright, 0x3281, 
+-IBUS_KEY_parenleft, 0x4E94, IBUS_KEY_parenright, 0x3284, 
+-IBUS_KEY_parenleft, 0x4F01, IBUS_KEY_parenright, 0x32AD, 
+-IBUS_KEY_parenleft, 0x4F11, IBUS_KEY_parenright, 0x32A1, 
+-IBUS_KEY_parenleft, 0x512A, IBUS_KEY_parenright, 0x329D, 
+-IBUS_KEY_parenleft, 0x516B, IBUS_KEY_parenright, 0x3287, 
+-IBUS_KEY_parenleft, 0x516D, IBUS_KEY_parenright, 0x3285, 
+-IBUS_KEY_parenleft, 0x5199, IBUS_KEY_parenright, 0x32A2, 
+-IBUS_KEY_parenleft, 0x52B4, IBUS_KEY_parenright, 0x3298, 
+-IBUS_KEY_parenleft, 0x533B, IBUS_KEY_parenright, 0x32A9, 
+-IBUS_KEY_parenleft, 0x5341, IBUS_KEY_parenright, 0x3289, 
+-IBUS_KEY_parenleft, 0x5354, IBUS_KEY_parenright, 0x32AF, 
+-IBUS_KEY_parenleft, 0x5370, IBUS_KEY_parenright, 0x329E, 
+-IBUS_KEY_parenleft, 0x53F3, IBUS_KEY_parenright, 0x32A8, 
+-IBUS_KEY_parenleft, 0x540D, IBUS_KEY_parenright, 0x3294, 
+-IBUS_KEY_parenleft, 0x56DB, IBUS_KEY_parenright, 0x3283, 
+-IBUS_KEY_parenleft, 0x571F, IBUS_KEY_parenright, 0x328F, 
+-IBUS_KEY_parenleft, 0x591C, IBUS_KEY_parenright, 0x32B0, 
+-IBUS_KEY_parenleft, 0x5973, IBUS_KEY_parenright, 0x329B, 
+-IBUS_KEY_parenleft, 0x5B66, IBUS_KEY_parenright, 0x32AB, 
+-IBUS_KEY_parenleft, 0x5B97, IBUS_KEY_parenright, 0x32AA, 
+-IBUS_KEY_parenleft, 0x5DE6, IBUS_KEY_parenright, 0x32A7, 
+-IBUS_KEY_parenleft, 0x65E5, IBUS_KEY_parenright, 0x3290, 
+-IBUS_KEY_parenleft, 0x6708, IBUS_KEY_parenright, 0x328A, 
+-IBUS_KEY_parenleft, 0x6709, IBUS_KEY_parenright, 0x3292, 
+-IBUS_KEY_parenleft, 0x6728, IBUS_KEY_parenright, 0x328D, 
+-IBUS_KEY_parenleft, 0x682A, IBUS_KEY_parenright, 0x3291, 
+-IBUS_KEY_parenleft, 0x6B63, IBUS_KEY_parenright, 0x32A3, 
+-IBUS_KEY_parenleft, 0x6C34, IBUS_KEY_parenright, 0x328C, 
+-IBUS_KEY_parenleft, 0x6CE8, IBUS_KEY_parenright, 0x329F, 
+-IBUS_KEY_parenleft, 0x706B, IBUS_KEY_parenright, 0x328B, 
+-IBUS_KEY_parenleft, 0x7279, IBUS_KEY_parenright, 0x3295, 
+-IBUS_KEY_parenleft, 0x7537, IBUS_KEY_parenright, 0x329A, 
+-IBUS_KEY_parenleft, 0x76E3, IBUS_KEY_parenright, 0x32AC, 
+-IBUS_KEY_parenleft, 0x793E, IBUS_KEY_parenright, 0x3293, 
+-IBUS_KEY_parenleft, 0x795D, IBUS_KEY_parenright, 0x3297, 
+-IBUS_KEY_parenleft, 0x79D8, IBUS_KEY_parenright, 0x3299, 
+-IBUS_KEY_parenleft, 0x8CA1, IBUS_KEY_parenright, 0x3296, 
+-IBUS_KEY_parenleft, 0x8CC7, IBUS_KEY_parenright, 0x32AE, 
+-IBUS_KEY_parenleft, 0x9069, IBUS_KEY_parenright, 0x329C, 
+-IBUS_KEY_parenleft, 0x91D1, IBUS_KEY_parenright, 0x328E, 
+-IBUS_KEY_parenleft, 0x9805, IBUS_KEY_parenright, 0x32A0, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x2461, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x24EA, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x2460, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x2461, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x2462, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x2463, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x2464, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x2465, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x2466, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x2467, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x2468, 
+-IBUS_KEY_asterisk, IBUS_KEY_apostrophe, IBUS_KEY_A, 0x01FA, 
+-IBUS_KEY_asterisk, IBUS_KEY_apostrophe, IBUS_KEY_a, 0x01FB, 
+-IBUS_KEY_minus, IBUS_KEY_minus, IBUS_KEY_space, 0x00AD, 
+-IBUS_KEY_minus, IBUS_KEY_minus, IBUS_KEY_minus, 0x2014, 
+-IBUS_KEY_minus, IBUS_KEY_minus, IBUS_KEY_period, 0x2013, 
+-IBUS_KEY_period, IBUS_KEY_exclam, IBUS_KEY_S, 0x1E68, 
+-IBUS_KEY_period, IBUS_KEY_exclam, IBUS_KEY_s, 0x1E69, 
+-IBUS_KEY_period, IBUS_KEY_apostrophe, IBUS_KEY_S, 0x1E64, 
+-IBUS_KEY_period, IBUS_KEY_apostrophe, IBUS_KEY_s, 0x1E65, 
+-IBUS_KEY_period, IBUS_KEY_acute, IBUS_KEY_S, 0x1E64, 
+-IBUS_KEY_period, IBUS_KEY_acute, IBUS_KEY_s, 0x1E65, 
+-IBUS_KEY_period, IBUS_KEY_dead_acute, IBUS_KEY_S, 0x1E64, 
+-IBUS_KEY_period, IBUS_KEY_dead_acute, IBUS_KEY_s, 0x1E65, 
+-IBUS_KEY_period, IBUS_KEY_dead_caron, IBUS_KEY_S, 0x1E66, 
+-IBUS_KEY_period, IBUS_KEY_dead_caron, IBUS_KEY_s, 0x1E67, 
+-IBUS_KEY_period, IBUS_KEY_dead_belowdot, IBUS_KEY_S, 0x1E68, 
+-IBUS_KEY_period, IBUS_KEY_dead_belowdot, IBUS_KEY_s, 0x1E69, 
+-IBUS_KEY_1, IBUS_KEY_1, IBUS_KEY_0, 0x2152, 
+-IBUS_KEY_question, IBUS_KEY_plus, IBUS_KEY_O, 0x1EDE, 
+-IBUS_KEY_question, IBUS_KEY_plus, IBUS_KEY_U, 0x1EEC, 
+-IBUS_KEY_question, IBUS_KEY_plus, IBUS_KEY_o, 0x1EDF, 
+-IBUS_KEY_question, IBUS_KEY_plus, IBUS_KEY_u, 0x1EED, 
+-IBUS_KEY_question, IBUS_KEY_asciicircum, IBUS_KEY_A, 0x1EA8, 
+-IBUS_KEY_question, IBUS_KEY_asciicircum, IBUS_KEY_E, 0x1EC2, 
+-IBUS_KEY_question, IBUS_KEY_asciicircum, IBUS_KEY_O, 0x1ED4, 
+-IBUS_KEY_question, IBUS_KEY_asciicircum, IBUS_KEY_a, 0x1EA9, 
+-IBUS_KEY_question, IBUS_KEY_asciicircum, IBUS_KEY_e, 0x1EC3, 
+-IBUS_KEY_question, IBUS_KEY_asciicircum, IBUS_KEY_o, 0x1ED5, 
+-IBUS_KEY_question, IBUS_KEY_b, IBUS_KEY_A, 0x1EB2, 
+-IBUS_KEY_question, IBUS_KEY_b, IBUS_KEY_a, 0x1EB3, 
+-IBUS_KEY_question, IBUS_KEY_dead_circumflex, IBUS_KEY_A, 0x1EA8, 
+-IBUS_KEY_question, IBUS_KEY_dead_circumflex, IBUS_KEY_E, 0x1EC2, 
+-IBUS_KEY_question, IBUS_KEY_dead_circumflex, IBUS_KEY_O, 0x1ED4, 
+-IBUS_KEY_question, IBUS_KEY_dead_circumflex, IBUS_KEY_a, 0x1EA9, 
+-IBUS_KEY_question, IBUS_KEY_dead_circumflex, IBUS_KEY_e, 0x1EC3, 
+-IBUS_KEY_question, IBUS_KEY_dead_circumflex, IBUS_KEY_o, 0x1ED5, 
+-IBUS_KEY_question, IBUS_KEY_dead_breve, IBUS_KEY_A, 0x1EB2, 
+-IBUS_KEY_question, IBUS_KEY_dead_breve, IBUS_KEY_a, 0x1EB3, 
+-IBUS_KEY_question, IBUS_KEY_dead_horn, IBUS_KEY_O, 0x1EDE, 
+-IBUS_KEY_question, IBUS_KEY_dead_horn, IBUS_KEY_U, 0x1EEC, 
+-IBUS_KEY_question, IBUS_KEY_dead_horn, IBUS_KEY_o, 0x1EDF, 
+-IBUS_KEY_question, IBUS_KEY_dead_horn, IBUS_KEY_u, 0x1EED, 
+-IBUS_KEY_U, IBUS_KEY_exclam, IBUS_KEY_A, 0x1EB6, 
+-IBUS_KEY_U, IBUS_KEY_exclam, IBUS_KEY_a, 0x1EB7, 
+-IBUS_KEY_U, IBUS_KEY_cedilla, IBUS_KEY_E, 0x1E1C, 
+-IBUS_KEY_U, IBUS_KEY_cedilla, IBUS_KEY_e, 0x1E1D, 
+-IBUS_KEY_U, IBUS_KEY_dead_cedilla, IBUS_KEY_E, 0x1E1C, 
+-IBUS_KEY_U, IBUS_KEY_dead_cedilla, IBUS_KEY_e, 0x1E1D, 
+-IBUS_KEY_U, IBUS_KEY_dead_belowdot, IBUS_KEY_A, 0x1EB6, 
+-IBUS_KEY_U, IBUS_KEY_dead_belowdot, IBUS_KEY_a, 0x1EB7, 
+-IBUS_KEY_asciicircum, IBUS_KEY_exclam, IBUS_KEY_A, 0x1EAC, 
+-IBUS_KEY_asciicircum, IBUS_KEY_exclam, IBUS_KEY_E, 0x1EC6, 
+-IBUS_KEY_asciicircum, IBUS_KEY_exclam, IBUS_KEY_O, 0x1ED8, 
+-IBUS_KEY_asciicircum, IBUS_KEY_exclam, IBUS_KEY_a, 0x1EAD, 
+-IBUS_KEY_asciicircum, IBUS_KEY_exclam, IBUS_KEY_e, 0x1EC7, 
+-IBUS_KEY_asciicircum, IBUS_KEY_exclam, IBUS_KEY_o, 0x1ED9, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_a, 0x00AA, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_h, 0x02B0, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_i, 0x2071, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_j, 0x02B2, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_l, 0x02E1, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_n, 0x207F, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_o, 0x00BA, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_r, 0x02B3, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_s, 0x02E2, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_w, 0x02B7, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_x, 0x02E3, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_y, 0x02B8, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underscore, 0x0263, 0x02E0, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underscore, 0x0266, 0x02B1, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underscore, 0x0279, 0x02B4, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underscore, 0x027B, 0x02B5, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underscore, 0x0281, 0x02B6, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underscore, 0x0295, 0x02E4, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_a, 0x00AA, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_h, 0x02B0, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_i, 0x2071, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_j, 0x02B2, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_l, 0x02E1, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_n, 0x207F, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_o, 0x00BA, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_r, 0x02B3, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_s, 0x02E2, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_w, 0x02B7, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_x, 0x02E3, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_y, 0x02B8, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underbar, 0x0263, 0x02E0, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underbar, 0x0266, 0x02B1, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underbar, 0x0279, 0x02B4, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underbar, 0x027B, 0x02B5, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underbar, 0x0281, 0x02B6, 
+-IBUS_KEY_asciicircum, IBUS_KEY_underbar, 0x0295, 0x02E4, 
+-IBUS_KEY_asciicircum, IBUS_KEY_dead_belowdot, IBUS_KEY_A, 0x1EAC, 
+-IBUS_KEY_asciicircum, IBUS_KEY_dead_belowdot, IBUS_KEY_E, 0x1EC6, 
+-IBUS_KEY_asciicircum, IBUS_KEY_dead_belowdot, IBUS_KEY_O, 0x1ED8, 
+-IBUS_KEY_asciicircum, IBUS_KEY_dead_belowdot, IBUS_KEY_a, 0x1EAD, 
+-IBUS_KEY_asciicircum, IBUS_KEY_dead_belowdot, IBUS_KEY_e, 0x1EC7, 
+-IBUS_KEY_asciicircum, IBUS_KEY_dead_belowdot, IBUS_KEY_o, 0x1ED9, 
+-IBUS_KEY_underscore, IBUS_KEY_exclam, IBUS_KEY_L, 0x1E38, 
+-IBUS_KEY_underscore, IBUS_KEY_exclam, IBUS_KEY_R, 0x1E5C, 
+-IBUS_KEY_underscore, IBUS_KEY_exclam, IBUS_KEY_l, 0x1E39, 
+-IBUS_KEY_underscore, IBUS_KEY_exclam, IBUS_KEY_r, 0x1E5D, 
+-IBUS_KEY_underscore, IBUS_KEY_quotedbl, IBUS_KEY_A, 0x01DE, 
+-IBUS_KEY_underscore, IBUS_KEY_quotedbl, IBUS_KEY_O, 0x022A, 
+-IBUS_KEY_underscore, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01D5, 
+-IBUS_KEY_underscore, IBUS_KEY_quotedbl, IBUS_KEY_a, 0x01DF, 
+-IBUS_KEY_underscore, IBUS_KEY_quotedbl, IBUS_KEY_o, 0x022B, 
+-IBUS_KEY_underscore, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01D6, 
+-IBUS_KEY_underscore, IBUS_KEY_period, IBUS_KEY_A, 0x01E0, 
+-IBUS_KEY_underscore, IBUS_KEY_period, IBUS_KEY_O, 0x0230, 
+-IBUS_KEY_underscore, IBUS_KEY_period, IBUS_KEY_a, 0x01E1, 
+-IBUS_KEY_underscore, IBUS_KEY_period, IBUS_KEY_o, 0x0231, 
+-IBUS_KEY_underscore, IBUS_KEY_semicolon, IBUS_KEY_O, 0x01EC, 
+-IBUS_KEY_underscore, IBUS_KEY_semicolon, IBUS_KEY_o, 0x01ED, 
+-IBUS_KEY_underscore, IBUS_KEY_asciitilde, IBUS_KEY_O, 0x022C, 
+-IBUS_KEY_underscore, IBUS_KEY_asciitilde, IBUS_KEY_o, 0x022D, 
+-IBUS_KEY_underscore, IBUS_KEY_dead_tilde, IBUS_KEY_O, 0x022C, 
+-IBUS_KEY_underscore, IBUS_KEY_dead_tilde, IBUS_KEY_o, 0x022D, 
+-IBUS_KEY_underscore, IBUS_KEY_dead_abovedot, IBUS_KEY_A, 0x01E0, 
+-IBUS_KEY_underscore, IBUS_KEY_dead_abovedot, IBUS_KEY_O, 0x0230, 
+-IBUS_KEY_underscore, IBUS_KEY_dead_abovedot, IBUS_KEY_a, 0x01E1, 
+-IBUS_KEY_underscore, IBUS_KEY_dead_abovedot, IBUS_KEY_o, 0x0231, 
+-IBUS_KEY_underscore, IBUS_KEY_dead_diaeresis, IBUS_KEY_A, 0x01DE, 
+-IBUS_KEY_underscore, IBUS_KEY_dead_diaeresis, IBUS_KEY_O, 0x022A, 
+-IBUS_KEY_underscore, IBUS_KEY_dead_diaeresis, IBUS_KEY_U, 0x01D5, 
+-IBUS_KEY_underscore, IBUS_KEY_dead_diaeresis, IBUS_KEY_a, 0x01DF, 
+-IBUS_KEY_underscore, IBUS_KEY_dead_diaeresis, IBUS_KEY_o, 0x022B, 
+-IBUS_KEY_underscore, IBUS_KEY_dead_diaeresis, IBUS_KEY_u, 0x01D6, 
+-IBUS_KEY_underscore, IBUS_KEY_dead_ogonek, IBUS_KEY_O, 0x01EC, 
+-IBUS_KEY_underscore, IBUS_KEY_dead_ogonek, IBUS_KEY_o, 0x01ED, 
+-IBUS_KEY_underscore, IBUS_KEY_dead_belowdot, IBUS_KEY_L, 0x1E38, 
+-IBUS_KEY_underscore, IBUS_KEY_dead_belowdot, IBUS_KEY_R, 0x1E5C, 
+-IBUS_KEY_underscore, IBUS_KEY_dead_belowdot, IBUS_KEY_l, 0x1E39, 
+-IBUS_KEY_underscore, IBUS_KEY_dead_belowdot, IBUS_KEY_r, 0x1E5D, 
+-IBUS_KEY_grave, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01DB, 
+-IBUS_KEY_grave, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01DC, 
+-IBUS_KEY_grave, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota, 0x1FD2, 
+-IBUS_KEY_grave, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon, 0x1FE2, 
+-IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F0B, 
+-IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_EPSILON, 0x1F1B, 
+-IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F2B, 
+-IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA, 0x1F3B, 
+-IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMICRON, 0x1F4B, 
+-IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON, 0x1F5B, 
+-IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1F6B, 
+-IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F03, 
+-IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_epsilon, 0x1F13, 
+-IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F23, 
+-IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_iota, 0x1F33, 
+-IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_omicron, 0x1F43, 
+-IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon, 0x1F53, 
+-IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1F63, 
+-IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F0A, 
+-IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_EPSILON, 0x1F1A, 
+-IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F2A, 
+-IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA, 0x1F3A, 
+-IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_OMICRON, 0x1F4A, 
+-IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1F6A, 
+-IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F02, 
+-IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_epsilon, 0x1F12, 
+-IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F22, 
+-IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_iota, 0x1F32, 
+-IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_omicron, 0x1F42, 
+-IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon, 0x1F52, 
+-IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1F62, 
+-IBUS_KEY_grave, IBUS_KEY_plus, IBUS_KEY_O, 0x1EDC, 
+-IBUS_KEY_grave, IBUS_KEY_plus, IBUS_KEY_U, 0x1EEA, 
+-IBUS_KEY_grave, IBUS_KEY_plus, IBUS_KEY_o, 0x1EDD, 
+-IBUS_KEY_grave, IBUS_KEY_plus, IBUS_KEY_u, 0x1EEB, 
+-IBUS_KEY_grave, IBUS_KEY_asciicircum, IBUS_KEY_A, 0x1EA6, 
+-IBUS_KEY_grave, IBUS_KEY_asciicircum, IBUS_KEY_E, 0x1EC0, 
+-IBUS_KEY_grave, IBUS_KEY_asciicircum, IBUS_KEY_O, 0x1ED2, 
+-IBUS_KEY_grave, IBUS_KEY_asciicircum, IBUS_KEY_a, 0x1EA7, 
+-IBUS_KEY_grave, IBUS_KEY_asciicircum, IBUS_KEY_e, 0x1EC1, 
+-IBUS_KEY_grave, IBUS_KEY_asciicircum, IBUS_KEY_o, 0x1ED3, 
+-IBUS_KEY_grave, IBUS_KEY_underscore, IBUS_KEY_E, 0x1E14, 
+-IBUS_KEY_grave, IBUS_KEY_underscore, IBUS_KEY_O, 0x1E50, 
+-IBUS_KEY_grave, IBUS_KEY_underscore, IBUS_KEY_e, 0x1E15, 
+-IBUS_KEY_grave, IBUS_KEY_underscore, IBUS_KEY_o, 0x1E51, 
+-IBUS_KEY_grave, IBUS_KEY_b, IBUS_KEY_A, 0x1EB0, 
+-IBUS_KEY_grave, IBUS_KEY_b, IBUS_KEY_a, 0x1EB1, 
+-IBUS_KEY_grave, IBUS_KEY_macron, IBUS_KEY_E, 0x1E14, 
+-IBUS_KEY_grave, IBUS_KEY_macron, IBUS_KEY_O, 0x1E50, 
+-IBUS_KEY_grave, IBUS_KEY_macron, IBUS_KEY_e, 0x1E15, 
+-IBUS_KEY_grave, IBUS_KEY_macron, IBUS_KEY_o, 0x1E51, 
+-IBUS_KEY_grave, IBUS_KEY_dead_circumflex, IBUS_KEY_A, 0x1EA6, 
+-IBUS_KEY_grave, IBUS_KEY_dead_circumflex, IBUS_KEY_E, 0x1EC0, 
+-IBUS_KEY_grave, IBUS_KEY_dead_circumflex, IBUS_KEY_O, 0x1ED2, 
+-IBUS_KEY_grave, IBUS_KEY_dead_circumflex, IBUS_KEY_a, 0x1EA7, 
+-IBUS_KEY_grave, IBUS_KEY_dead_circumflex, IBUS_KEY_e, 0x1EC1, 
+-IBUS_KEY_grave, IBUS_KEY_dead_circumflex, IBUS_KEY_o, 0x1ED3, 
+-IBUS_KEY_grave, IBUS_KEY_dead_macron, IBUS_KEY_E, 0x1E14, 
+-IBUS_KEY_grave, IBUS_KEY_dead_macron, IBUS_KEY_O, 0x1E50, 
+-IBUS_KEY_grave, IBUS_KEY_dead_macron, IBUS_KEY_e, 0x1E15, 
+-IBUS_KEY_grave, IBUS_KEY_dead_macron, IBUS_KEY_o, 0x1E51, 
+-IBUS_KEY_grave, IBUS_KEY_dead_breve, IBUS_KEY_A, 0x1EB0, 
+-IBUS_KEY_grave, IBUS_KEY_dead_breve, IBUS_KEY_a, 0x1EB1, 
+-IBUS_KEY_grave, IBUS_KEY_dead_diaeresis, IBUS_KEY_U, 0x01DB, 
+-IBUS_KEY_grave, IBUS_KEY_dead_diaeresis, IBUS_KEY_u, 0x01DC, 
+-IBUS_KEY_grave, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_iota, 0x1FD2, 
+-IBUS_KEY_grave, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_upsilon, 0x1FE2, 
+-IBUS_KEY_grave, IBUS_KEY_dead_horn, IBUS_KEY_O, 0x1EDC, 
+-IBUS_KEY_grave, IBUS_KEY_dead_horn, IBUS_KEY_U, 0x1EEA, 
+-IBUS_KEY_grave, IBUS_KEY_dead_horn, IBUS_KEY_o, 0x1EDD, 
+-IBUS_KEY_grave, IBUS_KEY_dead_horn, IBUS_KEY_u, 0x1EEB, 
+-IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F0A, 
+-IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_EPSILON, 0x1F1A, 
+-IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F2A, 
+-IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_IOTA, 0x1F3A, 
+-IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMICRON, 0x1F4A, 
+-IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1F6A, 
+-IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F02, 
+-IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_epsilon, 0x1F12, 
+-IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F22, 
+-IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_iota, 0x1F32, 
+-IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omicron, 0x1F42, 
+-IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_upsilon, 0x1F52, 
+-IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1F62, 
+-IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F0B, 
+-IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_EPSILON, 0x1F1B, 
+-IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F2B, 
+-IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_IOTA, 0x1F3B, 
+-IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMICRON, 0x1F4B, 
+-IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_UPSILON, 0x1F5B, 
+-IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1F6B, 
+-IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F03, 
+-IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_epsilon, 0x1F13, 
+-IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F23, 
+-IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_iota, 0x1F33, 
+-IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omicron, 0x1F43, 
+-IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_upsilon, 0x1F53, 
+-IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1F63, 
+-IBUS_KEY_b, IBUS_KEY_exclam, IBUS_KEY_A, 0x1EB6, 
+-IBUS_KEY_b, IBUS_KEY_exclam, IBUS_KEY_a, 0x1EB7, 
+-IBUS_KEY_b, IBUS_KEY_comma, IBUS_KEY_E, 0x1E1C, 
+-IBUS_KEY_b, IBUS_KEY_comma, IBUS_KEY_e, 0x1E1D, 
+-IBUS_KEY_b, IBUS_KEY_cedilla, IBUS_KEY_E, 0x1E1C, 
+-IBUS_KEY_b, IBUS_KEY_cedilla, IBUS_KEY_e, 0x1E1D, 
+-IBUS_KEY_b, IBUS_KEY_dead_cedilla, IBUS_KEY_E, 0x1E1C, 
+-IBUS_KEY_b, IBUS_KEY_dead_cedilla, IBUS_KEY_e, 0x1E1D, 
+-IBUS_KEY_b, IBUS_KEY_dead_belowdot, IBUS_KEY_A, 0x1EB6, 
+-IBUS_KEY_b, IBUS_KEY_dead_belowdot, IBUS_KEY_a, 0x1EB7, 
+-IBUS_KEY_c, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01D9, 
+-IBUS_KEY_c, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01DA, 
+-IBUS_KEY_c, IBUS_KEY_dead_diaeresis, IBUS_KEY_U, 0x01D9, 
+-IBUS_KEY_c, IBUS_KEY_dead_diaeresis, IBUS_KEY_u, 0x01DA, 
+-IBUS_KEY_asciitilde, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota, 0x1FD7, 
+-IBUS_KEY_asciitilde, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon, 0x1FE7, 
+-IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F0F, 
+-IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F2F, 
+-IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA, 0x1F3F, 
+-IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON, 0x1F5F, 
+-IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1F6F, 
+-IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F07, 
+-IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F27, 
+-IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_iota, 0x1F37, 
+-IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon, 0x1F57, 
+-IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1F67, 
+-IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F0E, 
+-IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F2E, 
+-IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA, 0x1F3E, 
+-IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1F6E, 
+-IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F06, 
+-IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F26, 
+-IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_iota, 0x1F36, 
+-IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon, 0x1F56, 
+-IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1F66, 
+-IBUS_KEY_asciitilde, IBUS_KEY_plus, IBUS_KEY_O, 0x1EE0, 
+-IBUS_KEY_asciitilde, IBUS_KEY_plus, IBUS_KEY_U, 0x1EEE, 
+-IBUS_KEY_asciitilde, IBUS_KEY_plus, IBUS_KEY_o, 0x1EE1, 
+-IBUS_KEY_asciitilde, IBUS_KEY_plus, IBUS_KEY_u, 0x1EEF, 
+-IBUS_KEY_asciitilde, IBUS_KEY_asciicircum, IBUS_KEY_A, 0x1EAA, 
+-IBUS_KEY_asciitilde, IBUS_KEY_asciicircum, IBUS_KEY_E, 0x1EC4, 
+-IBUS_KEY_asciitilde, IBUS_KEY_asciicircum, IBUS_KEY_O, 0x1ED6, 
+-IBUS_KEY_asciitilde, IBUS_KEY_asciicircum, IBUS_KEY_a, 0x1EAB, 
+-IBUS_KEY_asciitilde, IBUS_KEY_asciicircum, IBUS_KEY_e, 0x1EC5, 
+-IBUS_KEY_asciitilde, IBUS_KEY_asciicircum, IBUS_KEY_o, 0x1ED7, 
+-IBUS_KEY_asciitilde, IBUS_KEY_b, IBUS_KEY_A, 0x1EB4, 
+-IBUS_KEY_asciitilde, IBUS_KEY_b, IBUS_KEY_a, 0x1EB5, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_circumflex, IBUS_KEY_A, 0x1EAA, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_circumflex, IBUS_KEY_E, 0x1EC4, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_circumflex, IBUS_KEY_O, 0x1ED6, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_circumflex, IBUS_KEY_a, 0x1EAB, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_circumflex, IBUS_KEY_e, 0x1EC5, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_circumflex, IBUS_KEY_o, 0x1ED7, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_breve, IBUS_KEY_A, 0x1EB4, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_breve, IBUS_KEY_a, 0x1EB5, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_iota, 0x1FD7, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_upsilon, 0x1FE7, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_horn, IBUS_KEY_O, 0x1EE0, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_horn, IBUS_KEY_U, 0x1EEE, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_horn, IBUS_KEY_o, 0x1EE1, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_horn, IBUS_KEY_u, 0x1EEF, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F0E, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F2E, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_IOTA, 0x1F3E, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1F6E, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F06, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F26, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_iota, 0x1F36, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_upsilon, 0x1F56, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1F66, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F0F, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F2F, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_IOTA, 0x1F3F, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_UPSILON, 0x1F5F, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1F6F, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F07, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F27, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_iota, 0x1F37, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_upsilon, 0x1F57, 
+-IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1F67, 
+-IBUS_KEY_macron, IBUS_KEY_exclam, IBUS_KEY_L, 0x1E38, 
+-IBUS_KEY_macron, IBUS_KEY_exclam, IBUS_KEY_R, 0x1E5C, 
+-IBUS_KEY_macron, IBUS_KEY_exclam, IBUS_KEY_l, 0x1E39, 
+-IBUS_KEY_macron, IBUS_KEY_exclam, IBUS_KEY_r, 0x1E5D, 
+-IBUS_KEY_macron, IBUS_KEY_quotedbl, IBUS_KEY_A, 0x01DE, 
+-IBUS_KEY_macron, IBUS_KEY_quotedbl, IBUS_KEY_O, 0x022A, 
+-IBUS_KEY_macron, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01D5, 
+-IBUS_KEY_macron, IBUS_KEY_quotedbl, IBUS_KEY_a, 0x01DF, 
+-IBUS_KEY_macron, IBUS_KEY_quotedbl, IBUS_KEY_o, 0x022B, 
+-IBUS_KEY_macron, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01D6, 
+-IBUS_KEY_macron, IBUS_KEY_period, IBUS_KEY_A, 0x01E0, 
+-IBUS_KEY_macron, IBUS_KEY_period, IBUS_KEY_O, 0x0230, 
+-IBUS_KEY_macron, IBUS_KEY_period, IBUS_KEY_a, 0x01E1, 
+-IBUS_KEY_macron, IBUS_KEY_period, IBUS_KEY_o, 0x0231, 
+-IBUS_KEY_macron, IBUS_KEY_semicolon, IBUS_KEY_O, 0x01EC, 
+-IBUS_KEY_macron, IBUS_KEY_semicolon, IBUS_KEY_o, 0x01ED, 
+-IBUS_KEY_macron, IBUS_KEY_asciitilde, IBUS_KEY_O, 0x022C, 
+-IBUS_KEY_macron, IBUS_KEY_asciitilde, IBUS_KEY_o, 0x022D, 
+-IBUS_KEY_macron, IBUS_KEY_dead_tilde, IBUS_KEY_O, 0x022C, 
+-IBUS_KEY_macron, IBUS_KEY_dead_tilde, IBUS_KEY_o, 0x022D, 
+-IBUS_KEY_macron, IBUS_KEY_dead_abovedot, IBUS_KEY_A, 0x01E0, 
+-IBUS_KEY_macron, IBUS_KEY_dead_abovedot, IBUS_KEY_O, 0x0230, 
+-IBUS_KEY_macron, IBUS_KEY_dead_abovedot, IBUS_KEY_a, 0x01E1, 
+-IBUS_KEY_macron, IBUS_KEY_dead_abovedot, IBUS_KEY_o, 0x0231, 
+-IBUS_KEY_macron, IBUS_KEY_dead_diaeresis, IBUS_KEY_A, 0x01DE, 
+-IBUS_KEY_macron, IBUS_KEY_dead_diaeresis, IBUS_KEY_O, 0x022A, 
+-IBUS_KEY_macron, IBUS_KEY_dead_diaeresis, IBUS_KEY_U, 0x01D5, 
+-IBUS_KEY_macron, IBUS_KEY_dead_diaeresis, IBUS_KEY_a, 0x01DF, 
+-IBUS_KEY_macron, IBUS_KEY_dead_diaeresis, IBUS_KEY_o, 0x022B, 
+-IBUS_KEY_macron, IBUS_KEY_dead_diaeresis, IBUS_KEY_u, 0x01D6, 
+-IBUS_KEY_macron, IBUS_KEY_dead_ogonek, IBUS_KEY_O, 0x01EC, 
+-IBUS_KEY_macron, IBUS_KEY_dead_ogonek, IBUS_KEY_o, 0x01ED, 
+-IBUS_KEY_macron, IBUS_KEY_dead_belowdot, IBUS_KEY_L, 0x1E38, 
+-IBUS_KEY_macron, IBUS_KEY_dead_belowdot, IBUS_KEY_R, 0x1E5C, 
+-IBUS_KEY_macron, IBUS_KEY_dead_belowdot, IBUS_KEY_l, 0x1E39, 
+-IBUS_KEY_macron, IBUS_KEY_dead_belowdot, IBUS_KEY_r, 0x1E5D, 
+-IBUS_KEY_acute, IBUS_KEY_quotedbl, IBUS_KEY_I, 0x1E2E, 
+-IBUS_KEY_acute, IBUS_KEY_quotedbl, IBUS_KEY_U, 0x01D7, 
+-IBUS_KEY_acute, IBUS_KEY_quotedbl, IBUS_KEY_i, 0x1E2F, 
+-IBUS_KEY_acute, IBUS_KEY_quotedbl, IBUS_KEY_u, 0x01D8, 
+-IBUS_KEY_acute, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota, 0x0390, 
+-IBUS_KEY_acute, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon, 0x03B0, 
+-IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F0D, 
+-IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_EPSILON, 0x1F1D, 
+-IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F2D, 
+-IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA, 0x1F3D, 
+-IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMICRON, 0x1F4D, 
+-IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON, 0x1F5D, 
+-IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1F6D, 
+-IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F05, 
+-IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_epsilon, 0x1F15, 
+-IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F25, 
+-IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_iota, 0x1F35, 
+-IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_omicron, 0x1F45, 
+-IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon, 0x1F55, 
+-IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1F65, 
+-IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F0C, 
+-IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_EPSILON, 0x1F1C, 
+-IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F2C, 
+-IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA, 0x1F3C, 
+-IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_OMICRON, 0x1F4C, 
+-IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1F6C, 
+-IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F04, 
+-IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_epsilon, 0x1F14, 
+-IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F24, 
+-IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_iota, 0x1F34, 
+-IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_omicron, 0x1F44, 
+-IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon, 0x1F54, 
+-IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1F64, 
+-IBUS_KEY_acute, IBUS_KEY_plus, IBUS_KEY_O, 0x1EDA, 
+-IBUS_KEY_acute, IBUS_KEY_plus, IBUS_KEY_U, 0x1EE8, 
+-IBUS_KEY_acute, IBUS_KEY_plus, IBUS_KEY_o, 0x1EDB, 
+-IBUS_KEY_acute, IBUS_KEY_plus, IBUS_KEY_u, 0x1EE9, 
+-IBUS_KEY_acute, IBUS_KEY_comma, IBUS_KEY_C, 0x1E08, 
+-IBUS_KEY_acute, IBUS_KEY_comma, IBUS_KEY_c, 0x1E09, 
+-IBUS_KEY_acute, IBUS_KEY_slash, IBUS_KEY_O, 0x01FE, 
+-IBUS_KEY_acute, IBUS_KEY_slash, IBUS_KEY_o, 0x01FF, 
+-IBUS_KEY_acute, IBUS_KEY_asciicircum, IBUS_KEY_A, 0x1EA4, 
+-IBUS_KEY_acute, IBUS_KEY_asciicircum, IBUS_KEY_E, 0x1EBE, 
+-IBUS_KEY_acute, IBUS_KEY_asciicircum, IBUS_KEY_O, 0x1ED0, 
+-IBUS_KEY_acute, IBUS_KEY_asciicircum, IBUS_KEY_a, 0x1EA5, 
+-IBUS_KEY_acute, IBUS_KEY_asciicircum, IBUS_KEY_e, 0x1EBF, 
+-IBUS_KEY_acute, IBUS_KEY_asciicircum, IBUS_KEY_o, 0x1ED1, 
+-IBUS_KEY_acute, IBUS_KEY_underscore, IBUS_KEY_E, 0x1E16, 
+-IBUS_KEY_acute, IBUS_KEY_underscore, IBUS_KEY_O, 0x1E52, 
+-IBUS_KEY_acute, IBUS_KEY_underscore, IBUS_KEY_e, 0x1E17, 
+-IBUS_KEY_acute, IBUS_KEY_underscore, IBUS_KEY_o, 0x1E53, 
+-IBUS_KEY_acute, IBUS_KEY_b, IBUS_KEY_A, 0x1EAE, 
+-IBUS_KEY_acute, IBUS_KEY_b, IBUS_KEY_a, 0x1EAF, 
+-IBUS_KEY_acute, IBUS_KEY_asciitilde, IBUS_KEY_O, 0x1E4C, 
+-IBUS_KEY_acute, IBUS_KEY_asciitilde, IBUS_KEY_U, 0x1E78, 
+-IBUS_KEY_acute, IBUS_KEY_asciitilde, IBUS_KEY_o, 0x1E4D, 
+-IBUS_KEY_acute, IBUS_KEY_asciitilde, IBUS_KEY_u, 0x1E79, 
+-IBUS_KEY_acute, IBUS_KEY_macron, IBUS_KEY_E, 0x1E16, 
+-IBUS_KEY_acute, IBUS_KEY_macron, IBUS_KEY_O, 0x1E52, 
+-IBUS_KEY_acute, IBUS_KEY_macron, IBUS_KEY_e, 0x1E17, 
+-IBUS_KEY_acute, IBUS_KEY_macron, IBUS_KEY_o, 0x1E53, 
+-IBUS_KEY_acute, IBUS_KEY_cedilla, IBUS_KEY_C, 0x1E08, 
+-IBUS_KEY_acute, IBUS_KEY_cedilla, IBUS_KEY_c, 0x1E09, 
+-IBUS_KEY_acute, IBUS_KEY_dead_circumflex, IBUS_KEY_A, 0x1EA4, 
+-IBUS_KEY_acute, IBUS_KEY_dead_circumflex, IBUS_KEY_E, 0x1EBE, 
+-IBUS_KEY_acute, IBUS_KEY_dead_circumflex, IBUS_KEY_O, 0x1ED0, 
+-IBUS_KEY_acute, IBUS_KEY_dead_circumflex, IBUS_KEY_a, 0x1EA5, 
+-IBUS_KEY_acute, IBUS_KEY_dead_circumflex, IBUS_KEY_e, 0x1EBF, 
+-IBUS_KEY_acute, IBUS_KEY_dead_circumflex, IBUS_KEY_o, 0x1ED1, 
+-IBUS_KEY_acute, IBUS_KEY_dead_tilde, IBUS_KEY_O, 0x1E4C, 
+-IBUS_KEY_acute, IBUS_KEY_dead_tilde, IBUS_KEY_U, 0x1E78, 
+-IBUS_KEY_acute, IBUS_KEY_dead_tilde, IBUS_KEY_o, 0x1E4D, 
+-IBUS_KEY_acute, IBUS_KEY_dead_tilde, IBUS_KEY_u, 0x1E79, 
+-IBUS_KEY_acute, IBUS_KEY_dead_macron, IBUS_KEY_E, 0x1E16, 
+-IBUS_KEY_acute, IBUS_KEY_dead_macron, IBUS_KEY_O, 0x1E52, 
+-IBUS_KEY_acute, IBUS_KEY_dead_macron, IBUS_KEY_e, 0x1E17, 
+-IBUS_KEY_acute, IBUS_KEY_dead_macron, IBUS_KEY_o, 0x1E53, 
+-IBUS_KEY_acute, IBUS_KEY_dead_breve, IBUS_KEY_A, 0x1EAE, 
+-IBUS_KEY_acute, IBUS_KEY_dead_breve, IBUS_KEY_a, 0x1EAF, 
+-IBUS_KEY_acute, IBUS_KEY_dead_diaeresis, IBUS_KEY_I, 0x1E2E, 
+-IBUS_KEY_acute, IBUS_KEY_dead_diaeresis, IBUS_KEY_U, 0x01D7, 
+-IBUS_KEY_acute, IBUS_KEY_dead_diaeresis, IBUS_KEY_i, 0x1E2F, 
+-IBUS_KEY_acute, IBUS_KEY_dead_diaeresis, IBUS_KEY_u, 0x01D8, 
+-IBUS_KEY_acute, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_iota, 0x0390, 
+-IBUS_KEY_acute, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_upsilon, 0x03B0, 
+-IBUS_KEY_acute, IBUS_KEY_dead_abovering, IBUS_KEY_A, 0x01FA, 
+-IBUS_KEY_acute, IBUS_KEY_dead_abovering, IBUS_KEY_a, 0x01FB, 
+-IBUS_KEY_acute, IBUS_KEY_dead_cedilla, IBUS_KEY_C, 0x1E08, 
+-IBUS_KEY_acute, IBUS_KEY_dead_cedilla, IBUS_KEY_c, 0x1E09, 
+-IBUS_KEY_acute, IBUS_KEY_dead_horn, IBUS_KEY_O, 0x1EDA, 
+-IBUS_KEY_acute, IBUS_KEY_dead_horn, IBUS_KEY_U, 0x1EE8, 
+-IBUS_KEY_acute, IBUS_KEY_dead_horn, IBUS_KEY_o, 0x1EDB, 
+-IBUS_KEY_acute, IBUS_KEY_dead_horn, IBUS_KEY_u, 0x1EE9, 
+-IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F0C, 
+-IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_EPSILON, 0x1F1C, 
+-IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F2C, 
+-IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_IOTA, 0x1F3C, 
+-IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMICRON, 0x1F4C, 
+-IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1F6C, 
+-IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F04, 
+-IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_epsilon, 0x1F14, 
+-IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F24, 
+-IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_iota, 0x1F34, 
+-IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omicron, 0x1F44, 
+-IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_upsilon, 0x1F54, 
+-IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1F64, 
+-IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F0D, 
+-IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_EPSILON, 0x1F1D, 
+-IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F2D, 
+-IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_IOTA, 0x1F3D, 
+-IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMICRON, 0x1F4D, 
+-IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_UPSILON, 0x1F5D, 
+-IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1F6D, 
+-IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F05, 
+-IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_epsilon, 0x1F15, 
+-IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F25, 
+-IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_iota, 0x1F35, 
+-IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omicron, 0x1F45, 
+-IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_upsilon, 0x1F55, 
+-IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1F65, 
+-IBUS_KEY_acute, IBUS_KEY_KP_Divide, IBUS_KEY_O, 0x01FE, 
+-IBUS_KEY_acute, IBUS_KEY_KP_Divide, IBUS_KEY_o, 0x01FF, 
+-0x05C1, 0x05BC, IBUS_KEY_hebrew_shin, 0xFB2C, 
+-0x05C2, 0x05BC, IBUS_KEY_hebrew_shin, 0xFB2D, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_Greek_alpha, 0x1FB4, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_Greek_eta, 0x1FC4, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_Greek_omega, 0x1FF4, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F00, 0x1F84, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F01, 0x1F85, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F08, 0x1F8C, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F09, 0x1F8D, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F20, 0x1F94, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F21, 0x1F95, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F28, 0x1F9C, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F29, 0x1F9D, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F60, 0x1FA4, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F61, 0x1FA5, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F68, 0x1FAC, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F69, 0x1FAD, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F89, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F99, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FA9, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F81, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F91, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA1, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F88, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F98, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FA8, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F80, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F90, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA0, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_Greek_alpha, 0x1FB2, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_Greek_eta, 0x1FC2, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_Greek_omega, 0x1FF2, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F00, 0x1F82, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F01, 0x1F83, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F08, 0x1F8A, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F09, 0x1F8B, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F20, 0x1F92, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F21, 0x1F93, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F28, 0x1F9A, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F29, 0x1F9B, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F60, 0x1FA2, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F61, 0x1FA3, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F68, 0x1FAA, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F69, 0x1FAB, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_Greek_alpha, 0x1FB7, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_Greek_eta, 0x1FC7, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_Greek_omega, 0x1FF7, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F00, 0x1F86, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F01, 0x1F87, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F08, 0x1F8E, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F09, 0x1F8F, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F20, 0x1F96, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F21, 0x1F97, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F28, 0x1F9E, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F29, 0x1F9F, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F60, 0x1FA6, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F61, 0x1FA7, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F68, 0x1FAE, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F69, 0x1FAF, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_Greek_alpha, 0x1FB4, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_Greek_eta, 0x1FC4, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_Greek_omega, 0x1FF4, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F00, 0x1F84, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F01, 0x1F85, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F08, 0x1F8C, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F09, 0x1F8D, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F20, 0x1F94, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F21, 0x1F95, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F28, 0x1F9C, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F29, 0x1F9D, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F60, 0x1FA4, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F61, 0x1FA5, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F68, 0x1FAC, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F69, 0x1FAD, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_alpha, 0x1FB2, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_eta, 0x1FC2, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_omega, 0x1FF2, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F00, 0x1F82, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F01, 0x1F83, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F08, 0x1F8A, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F09, 0x1F8B, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F20, 0x1F92, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F21, 0x1F93, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F28, 0x1F9A, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F29, 0x1F9B, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F60, 0x1FA2, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F61, 0x1FA3, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F68, 0x1FAA, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F69, 0x1FAB, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_alpha, 0x1FB4, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_eta, 0x1FC4, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_omega, 0x1FF4, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F00, 0x1F84, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F01, 0x1F85, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F08, 0x1F8C, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F09, 0x1F8D, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F20, 0x1F94, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F21, 0x1F95, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F28, 0x1F9C, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F29, 0x1F9D, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F60, 0x1FA4, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F61, 0x1FA5, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F68, 0x1FAC, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F69, 0x1FAD, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_alpha, 0x1FB7, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_eta, 0x1FC7, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_omega, 0x1FF7, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F00, 0x1F86, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F01, 0x1F87, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F08, 0x1F8E, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F09, 0x1F8F, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F20, 0x1F96, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F21, 0x1F97, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F28, 0x1F9E, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F29, 0x1F9F, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F60, 0x1FA6, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F61, 0x1FA7, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F68, 0x1FAE, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F69, 0x1FAF, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F88, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F98, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FA8, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F80, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F90, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA0, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F89, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F99, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FA9, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F81, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F91, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA1, 
+-IBUS_KEY_dead_abovedot, IBUS_KEY_f, IBUS_KEY_s, 0x1E9B, 
+-IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_0, IBUS_KEY_parenright, 0x2469, 
+-IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_1, IBUS_KEY_parenright, 0x246A, 
+-IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_2, IBUS_KEY_parenright, 0x246B, 
+-IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_3, IBUS_KEY_parenright, 0x246C, 
+-IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_4, IBUS_KEY_parenright, 0x246D, 
+-IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_5, IBUS_KEY_parenright, 0x246E, 
+-IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_6, IBUS_KEY_parenright, 0x246F, 
+-IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_7, IBUS_KEY_parenright, 0x2470, 
+-IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_8, IBUS_KEY_parenright, 0x2471, 
+-IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_9, IBUS_KEY_parenright, 0x2472, 
+-IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x246B, 
+-IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x2469, 
+-IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x246A, 
+-IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x246B, 
+-IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x246C, 
+-IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x246D, 
+-IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x246E, 
+-IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x246F, 
+-IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x2470, 
+-IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x2471, 
+-IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x2472, 
+-IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_0, IBUS_KEY_parenright, 0x2473, 
+-IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_1, IBUS_KEY_parenright, 0x3251, 
+-IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_2, IBUS_KEY_parenright, 0x3252, 
+-IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_3, IBUS_KEY_parenright, 0x3253, 
+-IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_4, IBUS_KEY_parenright, 0x3254, 
+-IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_5, IBUS_KEY_parenright, 0x3255, 
+-IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_6, IBUS_KEY_parenright, 0x3256, 
+-IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_7, IBUS_KEY_parenright, 0x3257, 
+-IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_8, IBUS_KEY_parenright, 0x3258, 
+-IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_9, IBUS_KEY_parenright, 0x3259, 
+-IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x3252, 
+-IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x2473, 
+-IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x3251, 
+-IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x3252, 
+-IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x3253, 
+-IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x3254, 
+-IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x3255, 
+-IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x3256, 
+-IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x3257, 
+-IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x3258, 
+-IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x3259, 
+-IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_0, IBUS_KEY_parenright, 0x325A, 
+-IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_1, IBUS_KEY_parenright, 0x325B, 
+-IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_2, IBUS_KEY_parenright, 0x325C, 
+-IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_3, IBUS_KEY_parenright, 0x325D, 
+-IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_4, IBUS_KEY_parenright, 0x325E, 
+-IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_5, IBUS_KEY_parenright, 0x325F, 
+-IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_6, IBUS_KEY_parenright, 0x32B1, 
+-IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_7, IBUS_KEY_parenright, 0x32B2, 
+-IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_8, IBUS_KEY_parenright, 0x32B3, 
+-IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_9, IBUS_KEY_parenright, 0x32B4, 
+-IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x325C, 
+-IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x325A, 
+-IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x325B, 
+-IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x325C, 
+-IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x325D, 
+-IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x325E, 
+-IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x325F, 
+-IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x32B1, 
+-IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x32B2, 
+-IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x32B3, 
+-IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x32B4, 
+-IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_0, IBUS_KEY_parenright, 0x32B5, 
+-IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_1, IBUS_KEY_parenright, 0x32B6, 
+-IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_2, IBUS_KEY_parenright, 0x32B7, 
+-IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_3, IBUS_KEY_parenright, 0x32B8, 
+-IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_4, IBUS_KEY_parenright, 0x32B9, 
+-IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_5, IBUS_KEY_parenright, 0x32BA, 
+-IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_6, IBUS_KEY_parenright, 0x32BB, 
+-IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_7, IBUS_KEY_parenright, 0x32BC, 
+-IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_8, IBUS_KEY_parenright, 0x32BD, 
+-IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_9, IBUS_KEY_parenright, 0x32BE, 
+-IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x32B7, 
+-IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x32B5, 
+-IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x32B6, 
+-IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x32B7, 
+-IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x32B8, 
+-IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x32B9, 
+-IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x32BA, 
+-IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x32BB, 
+-IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x32BC, 
+-IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x32BD, 
+-IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x32BE, 
+-IBUS_KEY_parenleft, IBUS_KEY_5, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x32BF, 
+-IBUS_KEY_parenleft, 0x1100, 0x1161, IBUS_KEY_parenright, 0x326E, 
+-IBUS_KEY_parenleft, 0x1102, 0x1161, IBUS_KEY_parenright, 0x326F, 
+-IBUS_KEY_parenleft, 0x1103, 0x1161, IBUS_KEY_parenright, 0x3270, 
+-IBUS_KEY_parenleft, 0x1105, 0x1161, IBUS_KEY_parenright, 0x3271, 
+-IBUS_KEY_parenleft, 0x1106, 0x1161, IBUS_KEY_parenright, 0x3272, 
+-IBUS_KEY_parenleft, 0x1107, 0x1161, IBUS_KEY_parenright, 0x3273, 
+-IBUS_KEY_parenleft, 0x1109, 0x1161, IBUS_KEY_parenright, 0x3274, 
+-IBUS_KEY_parenleft, 0x110B, 0x1161, IBUS_KEY_parenright, 0x3275, 
+-IBUS_KEY_parenleft, 0x110C, 0x1161, IBUS_KEY_parenright, 0x3276, 
+-IBUS_KEY_parenleft, 0x110E, 0x1161, IBUS_KEY_parenright, 0x3277, 
+-IBUS_KEY_parenleft, 0x110F, 0x1161, IBUS_KEY_parenright, 0x3278, 
+-IBUS_KEY_parenleft, 0x1110, 0x1161, IBUS_KEY_parenright, 0x3279, 
+-IBUS_KEY_parenleft, 0x1111, 0x1161, IBUS_KEY_parenright, 0x327A, 
+-IBUS_KEY_parenleft, 0x1112, 0x1161, IBUS_KEY_parenright, 0x327B, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_0, IBUS_KEY_parenright, 0x2473, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_1, IBUS_KEY_parenright, 0x3251, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_2, IBUS_KEY_parenright, 0x3252, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_3, IBUS_KEY_parenright, 0x3253, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_4, IBUS_KEY_parenright, 0x3254, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_5, IBUS_KEY_parenright, 0x3255, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_6, IBUS_KEY_parenright, 0x3256, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_7, IBUS_KEY_parenright, 0x3257, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_8, IBUS_KEY_parenright, 0x3258, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_9, IBUS_KEY_parenright, 0x3259, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x3252, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x2473, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x3251, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x3252, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x3253, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x3254, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x3255, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x3256, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x3257, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x3258, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x3259, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_0, IBUS_KEY_parenright, 0x2469, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_1, IBUS_KEY_parenright, 0x246A, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_2, IBUS_KEY_parenright, 0x246B, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_3, IBUS_KEY_parenright, 0x246C, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_4, IBUS_KEY_parenright, 0x246D, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_5, IBUS_KEY_parenright, 0x246E, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_6, IBUS_KEY_parenright, 0x246F, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_7, IBUS_KEY_parenright, 0x2470, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_8, IBUS_KEY_parenright, 0x2471, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_9, IBUS_KEY_parenright, 0x2472, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x246B, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x2469, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x246A, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x246B, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x246C, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x246D, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x246E, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x246F, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x2470, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x2471, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x2472, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_0, IBUS_KEY_parenright, 0x2473, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_1, IBUS_KEY_parenright, 0x3251, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_2, IBUS_KEY_parenright, 0x3252, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_3, IBUS_KEY_parenright, 0x3253, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_4, IBUS_KEY_parenright, 0x3254, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_5, IBUS_KEY_parenright, 0x3255, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_6, IBUS_KEY_parenright, 0x3256, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_7, IBUS_KEY_parenright, 0x3257, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_8, IBUS_KEY_parenright, 0x3258, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_9, IBUS_KEY_parenright, 0x3259, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x3252, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x2473, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x3251, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x3252, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x3253, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x3254, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x3255, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x3256, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x3257, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x3258, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x3259, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_0, IBUS_KEY_parenright, 0x325A, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_1, IBUS_KEY_parenright, 0x325B, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_2, IBUS_KEY_parenright, 0x325C, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_3, IBUS_KEY_parenright, 0x325D, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_4, IBUS_KEY_parenright, 0x325E, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_5, IBUS_KEY_parenright, 0x325F, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_6, IBUS_KEY_parenright, 0x32B1, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_7, IBUS_KEY_parenright, 0x32B2, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_8, IBUS_KEY_parenright, 0x32B3, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_9, IBUS_KEY_parenright, 0x32B4, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x325C, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x325A, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x325B, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x325C, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x325D, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x325E, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x325F, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x32B1, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x32B2, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x32B3, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x32B4, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_0, IBUS_KEY_parenright, 0x32B5, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_1, IBUS_KEY_parenright, 0x32B6, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_2, IBUS_KEY_parenright, 0x32B7, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_3, IBUS_KEY_parenright, 0x32B8, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_4, IBUS_KEY_parenright, 0x32B9, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_5, IBUS_KEY_parenright, 0x32BA, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_6, IBUS_KEY_parenright, 0x32BB, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_7, IBUS_KEY_parenright, 0x32BC, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_8, IBUS_KEY_parenright, 0x32BD, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_9, IBUS_KEY_parenright, 0x32BE, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_Space, IBUS_KEY_parenright, 0x32B7, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x32B5, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_1, IBUS_KEY_parenright, 0x32B6, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_2, IBUS_KEY_parenright, 0x32B7, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_3, IBUS_KEY_parenright, 0x32B8, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_4, IBUS_KEY_parenright, 0x32B9, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_5, IBUS_KEY_parenright, 0x32BA, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_6, IBUS_KEY_parenright, 0x32BB, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_7, IBUS_KEY_parenright, 0x32BC, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_8, IBUS_KEY_parenright, 0x32BD, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_9, IBUS_KEY_parenright, 0x32BE, 
+-IBUS_KEY_parenleft, IBUS_KEY_KP_5, IBUS_KEY_KP_0, IBUS_KEY_parenright, 0x32BF, 
+-IBUS_KEY_C, IBUS_KEY_C, IBUS_KEY_C, IBUS_KEY_P, 0x262D, 
+-IBUS_KEY_U, IBUS_KEY_space, IBUS_KEY_comma, IBUS_KEY_E, 0x1E1C, 
+-IBUS_KEY_U, IBUS_KEY_space, IBUS_KEY_comma, IBUS_KEY_e, 0x1E1D, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8D, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9D, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAD, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F85, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F95, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA5, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8C, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9C, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAC, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F84, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F94, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA4, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8C, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9C, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAC, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F84, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F94, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA4, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8D, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9D, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAD, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F85, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F95, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA5, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8B, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9B, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAB, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F83, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F93, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA3, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8A, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9A, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAA, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F82, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F92, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA2, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8A, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9A, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAA, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F82, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F92, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA2, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8B, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9B, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAB, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F83, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F93, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA3, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8F, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9F, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAF, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F87, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F97, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA7, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8E, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9E, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAE, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F86, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F96, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA6, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8E, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9E, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAE, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F86, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F96, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA6, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8F, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9F, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAF, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F87, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F97, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA7, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8D, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9D, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAD, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F85, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F95, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA5, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8C, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9C, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAC, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F84, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F94, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA4, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8C, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9C, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAC, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F84, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F94, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA4, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8D, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9D, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAD, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F85, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F95, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA5, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8B, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9B, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAB, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F83, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F93, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA3, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8A, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9A, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAA, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F82, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F92, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA2, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8A, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9A, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAA, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F82, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F92, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA2, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8B, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9B, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAB, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F83, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F93, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA3, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8D, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9D, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAD, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F85, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F95, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA5, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8C, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9C, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAC, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F84, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F94, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA4, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8C, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9C, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAC, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F84, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F94, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA4, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8D, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9D, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAD, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F85, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F95, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega, 0x1FA5, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA, 0x1F8F, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA, 0x1F9F, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA, 0x1FAF, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha, 0x1F87, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta, 0x1F97, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega, 0x1FA7, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA, 0x1F8E, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA, 0x1F9E, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA, 0x1FAE, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha, 0x1F86, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenright, IBUS_KEY_Greek_eta, 0x1F96, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenright, IBUS_KEY_Greek_omega, 0x1FA6, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA, 0x1F8E, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA, 0x1F9E, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA, 0x1FAE, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha, 0x1F86, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta, 0x1F96, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega, 0x1FA6, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA, 0x1F8F, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA, 0x1F9F, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA, 0x1FAF, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha, 0x1F87, 
+-IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta, 0x1F97, 
++IBUS_KEY_Multi_key, 3952, 3952, 10495, 14203, 16083, 
++IBUS_KEY_Greek_iota,  0x0390, 
++IBUS_KEY_Greek_upsilon,  0x03B0, 
++IBUS_KEY_space,  0x0060, 
++IBUS_KEY_V,  0x01DB, 
++IBUS_KEY_v,  0x01DC, 
++IBUS_KEY_nobreakspace,  0x0300, 
++IBUS_KEY_Abreve,  0x1EB0, 
++IBUS_KEY_abreve,  0x1EB1, 
++IBUS_KEY_Emacron,  0x1E14, 
++IBUS_KEY_emacron,  0x1E15, 
++IBUS_KEY_Omacron,  0x1E50, 
++IBUS_KEY_omacron,  0x1E51, 
++IBUS_KEY_Cyrillic_ie,  0x0450, 
++IBUS_KEY_Cyrillic_i,  0x045D, 
++IBUS_KEY_Cyrillic_IE,  0x0400, 
++IBUS_KEY_Cyrillic_I,  0x040D, 
++IBUS_KEY_Greek_iotadieresis,  0x1FD2, 
++IBUS_KEY_Greek_upsilondieresis,  0x1FE2, 
++IBUS_KEY_Greek_ALPHA,  0x1FBA, 
++IBUS_KEY_Greek_EPSILON,  0x1FC8, 
++IBUS_KEY_Greek_ETA,  0x1FCA, 
++IBUS_KEY_Greek_IOTA,  0x1FDA, 
++IBUS_KEY_Greek_OMICRON,  0x1FF8, 
++IBUS_KEY_Greek_UPSILON,  0x1FEA, 
++IBUS_KEY_Greek_OMEGA,  0x1FFA, 
++IBUS_KEY_Greek_alpha,  0x1F70, 
++IBUS_KEY_Greek_epsilon,  0x1F72, 
++IBUS_KEY_Greek_eta,  0x1F74, 
++IBUS_KEY_Greek_iota,  0x1F76, 
++IBUS_KEY_Greek_omicron,  0x1F78, 
++IBUS_KEY_Greek_upsilon,  0x1F7A, 
++IBUS_KEY_Greek_omega,  0x1F7C, 
++IBUS_KEY_dead_grave,  0x0060, 
++IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_iota,  0x1FD2, 
++IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_upsilon,  0x1FE2, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA,  0x1F0A, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_EPSILON,  0x1F1A, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA,  0x1F2A, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_IOTA,  0x1F3A, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMICRON,  0x1F4A, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA,  0x1F6A, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha,  0x1F02, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_epsilon,  0x1F12, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta,  0x1F22, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_iota,  0x1F32, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_omicron,  0x1F42, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_upsilon,  0x1F52, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega,  0x1F62, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA,  0x1F0B, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_EPSILON,  0x1F1B, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA,  0x1F2B, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_IOTA,  0x1F3B, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMICRON,  0x1F4B, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_UPSILON,  0x1F5B, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA,  0x1F6B, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha,  0x1F03, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_epsilon,  0x1F13, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta,  0x1F23, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_iota,  0x1F33, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omicron,  0x1F43, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_upsilon,  0x1F53, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega,  0x1F63, 
++IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_U,  0x01DB, 
++IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_u,  0x01DC, 
++IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota,  0x1FD2, 
++IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon,  0x1FE2, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA,  0x1F0B, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_EPSILON,  0x1F1B, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA,  0x1F2B, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA,  0x1F3B, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMICRON,  0x1F4B, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON,  0x1F5B, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA,  0x1F6B, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha,  0x1F03, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_epsilon,  0x1F13, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta,  0x1F23, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_iota,  0x1F33, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omicron,  0x1F43, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon,  0x1F53, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega,  0x1F63, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA,  0x1F0A, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_EPSILON,  0x1F1A, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA,  0x1F2A, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA,  0x1F3A, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMICRON,  0x1F4A, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA,  0x1F6A, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha,  0x1F02, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_epsilon,  0x1F12, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_eta,  0x1F22, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_iota,  0x1F32, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omicron,  0x1F42, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon,  0x1F52, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omega,  0x1F62, 
++IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_O,  0x1EDC, 
++IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_U,  0x1EEA, 
++IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_o,  0x1EDD, 
++IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_u,  0x1EEB, 
++IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_A,  0x1EB0, 
++IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_a,  0x1EB1, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_A,  0x1EA6, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_E,  0x1EC0, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_O,  0x1ED2, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_a,  0x1EA7, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_e,  0x1EC1, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_o,  0x1ED3, 
++IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_E,  0x1E14, 
++IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_O,  0x1E50, 
++IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_e,  0x1E15, 
++IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_o,  0x1E51, 
++IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_A,  0x1EB0, 
++IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_a,  0x1EB1, 
++IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_E,  0x1E14, 
++IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_O,  0x1E50, 
++IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_e,  0x1E15, 
++IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_o,  0x1E51, 
++IBUS_KEY_space,  0x0027, 
++IBUS_KEY_V,  0x01D7, 
++IBUS_KEY_v,  0x01D8, 
++IBUS_KEY_nobreakspace,  0x0301, 
++IBUS_KEY_Abreve,  0x1EAE, 
++IBUS_KEY_abreve,  0x1EAF, 
++IBUS_KEY_Emacron,  0x1E16, 
++IBUS_KEY_emacron,  0x1E17, 
++IBUS_KEY_Utilde,  0x1E78, 
++IBUS_KEY_omacron,  0x1E53, 
++IBUS_KEY_utilde,  0x1E79, 
++IBUS_KEY_Cyrillic_ghe,  0x0453, 
++IBUS_KEY_Cyrillic_ka,  0x045C, 
++IBUS_KEY_Cyrillic_GHE,  0x0403, 
++IBUS_KEY_Cyrillic_KA,  0x040C, 
++IBUS_KEY_Greek_iotadieresis,  0x0390, 
++IBUS_KEY_Greek_upsilondieresis,  0x03B0, 
++IBUS_KEY_Greek_ALPHA,  0x0386, 
++IBUS_KEY_Greek_EPSILON,  0x0388, 
++IBUS_KEY_Greek_ETA,  0x0389, 
++IBUS_KEY_Greek_IOTA,  0x038A, 
++IBUS_KEY_Greek_OMICRON,  0x038C, 
++IBUS_KEY_Greek_UPSILON,  0x038E, 
++IBUS_KEY_Greek_OMEGA,  0x038F, 
++IBUS_KEY_Greek_alpha,  0x03AC, 
++IBUS_KEY_Greek_epsilon,  0x03AD, 
++IBUS_KEY_Greek_eta,  0x03AE, 
++IBUS_KEY_Greek_iota,  0x03AF, 
++IBUS_KEY_Greek_omicron,  0x03CC, 
++IBUS_KEY_Greek_upsilon,  0x03CD, 
++IBUS_KEY_Greek_omega,  0x03CE, 
++IBUS_KEY_dead_acute,  0x00B4, 
++IBUS_KEY_dead_diaeresis, IBUS_KEY_space,  0x0385, 
++IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_iota,  0x0390, 
++IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_upsilon,  0x03B0, 
++IBUS_KEY_dead_stroke, IBUS_KEY_O,  0x01FE, 
++IBUS_KEY_dead_stroke, IBUS_KEY_o,  0x01FF, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA,  0x1F0C, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_EPSILON,  0x1F1C, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA,  0x1F2C, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_IOTA,  0x1F3C, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMICRON,  0x1F4C, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA,  0x1F6C, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha,  0x1F04, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_epsilon,  0x1F14, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta,  0x1F24, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_iota,  0x1F34, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_omicron,  0x1F44, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_upsilon,  0x1F54, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega,  0x1F64, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA,  0x1F0D, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_EPSILON,  0x1F1D, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA,  0x1F2D, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_IOTA,  0x1F3D, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMICRON,  0x1F4D, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_UPSILON,  0x1F5D, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA,  0x1F6D, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha,  0x1F05, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_epsilon,  0x1F15, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta,  0x1F25, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_iota,  0x1F35, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omicron,  0x1F45, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_upsilon,  0x1F55, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega,  0x1F65, 
++IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_I,  0x1E2E, 
++IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_U,  0x01D7, 
++IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_i,  0x1E2F, 
++IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_u,  0x01D8, 
++IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota,  0x0390, 
++IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon,  0x03B0, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA,  0x1F0D, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_EPSILON,  0x1F1D, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA,  0x1F2D, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA,  0x1F3D, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMICRON,  0x1F4D, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON,  0x1F5D, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA,  0x1F6D, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha,  0x1F05, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_epsilon,  0x1F15, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta,  0x1F25, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_iota,  0x1F35, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omicron,  0x1F45, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon,  0x1F55, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega,  0x1F65, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA,  0x1F0C, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_EPSILON,  0x1F1C, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA,  0x1F2C, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA,  0x1F3C, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMICRON,  0x1F4C, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA,  0x1F6C, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha,  0x1F04, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_epsilon,  0x1F14, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_eta,  0x1F24, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_iota,  0x1F34, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omicron,  0x1F44, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon,  0x1F54, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omega,  0x1F64, 
++IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_O,  0x1EDA, 
++IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_U,  0x1EE8, 
++IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_o,  0x1EDB, 
++IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_u,  0x1EE9, 
++IBUS_KEY_Multi_key, IBUS_KEY_comma, IBUS_KEY_C,  0x1E08, 
++IBUS_KEY_Multi_key, IBUS_KEY_comma, IBUS_KEY_c,  0x1E09, 
++IBUS_KEY_Multi_key, IBUS_KEY_slash, IBUS_KEY_O,  0x01FE, 
++IBUS_KEY_Multi_key, IBUS_KEY_slash, IBUS_KEY_o,  0x01FF, 
++IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_A,  0x1EAE, 
++IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_a,  0x1EAF, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_A,  0x1EA4, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_E,  0x1EBE, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_O,  0x1ED0, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_a,  0x1EA5, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_e,  0x1EBF, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_o,  0x1ED1, 
++IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_E,  0x1E16, 
++IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_O,  0x1E52, 
++IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_e,  0x1E17, 
++IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_o,  0x1E53, 
++IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_A,  0x1EAE, 
++IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_a,  0x1EAF, 
++IBUS_KEY_Multi_key, IBUS_KEY_o, IBUS_KEY_A,  0x01FA, 
++IBUS_KEY_Multi_key, IBUS_KEY_o, IBUS_KEY_a,  0x01FB, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_O,  0x1E4C, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_U,  0x1E78, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_o,  0x1E4D, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_u,  0x1E79, 
++IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_E,  0x1E16, 
++IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_O,  0x1E52, 
++IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_e,  0x1E17, 
++IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_o,  0x1E53, 
++IBUS_KEY_Multi_key, IBUS_KEY_cedilla, IBUS_KEY_C,  0x1E08, 
++IBUS_KEY_Multi_key, IBUS_KEY_cedilla, IBUS_KEY_c,  0x1E09, 
++IBUS_KEY_Multi_key, IBUS_KEY_KP_Divide, IBUS_KEY_O,  0x01FE, 
++IBUS_KEY_Multi_key, IBUS_KEY_KP_Divide, IBUS_KEY_o,  0x01FF, 
++IBUS_KEY_space,  0x005E, 
++IBUS_KEY_parenleft,  0x207D, 
++IBUS_KEY_parenright,  0x207E, 
++IBUS_KEY_plus,  0x207A, 
++IBUS_KEY_minus,  0x207B, 
++IBUS_KEY_0,  0x2070, 
++IBUS_KEY_1,  0x00B9, 
++IBUS_KEY_2,  0x00B2, 
++IBUS_KEY_3,  0x00B3, 
++IBUS_KEY_4,  0x2074, 
++IBUS_KEY_5,  0x2075, 
++IBUS_KEY_6,  0x2076, 
++IBUS_KEY_7,  0x2077, 
++IBUS_KEY_8,  0x2078, 
++IBUS_KEY_9,  0x2079, 
++IBUS_KEY_equal,  0x207C, 
++IBUS_KEY_nobreakspace,  0x0302, 
++IBUS_KEY_Agrave,  0x1EA6, 
++IBUS_KEY_Aacute,  0x1EA4, 
++IBUS_KEY_Atilde,  0x1EAA, 
++IBUS_KEY_Egrave,  0x1EC0, 
++IBUS_KEY_Eacute,  0x1EBE, 
++IBUS_KEY_Ograve,  0x1ED2, 
++IBUS_KEY_Oacute,  0x1ED0, 
++IBUS_KEY_Otilde,  0x1ED6, 
++IBUS_KEY_agrave,  0x1EA7, 
++IBUS_KEY_aacute,  0x1EA5, 
++IBUS_KEY_atilde,  0x1EAB, 
++IBUS_KEY_egrave,  0x1EC1, 
++IBUS_KEY_eacute,  0x1EBF, 
++IBUS_KEY_ograve,  0x1ED3, 
++IBUS_KEY_oacute,  0x1ED1, 
++IBUS_KEY_otilde,  0x1ED7, 
++0x2212,  0x207B, 
++0x4E00,  0x3192, 
++0x4E01,  0x319C, 
++0x4E09,  0x3194, 
++0x4E0A,  0x3196, 
++0x4E0B,  0x3198, 
++0x4E19,  0x319B, 
++0x4E2D,  0x3197, 
++0x4E59,  0x319A, 
++0x4E8C,  0x3193, 
++0x4EBA,  0x319F, 
++0x56DB,  0x3195, 
++0x5730,  0x319E, 
++0x5929,  0x319D, 
++0x7532,  0x3199, 
++IBUS_KEY_dead_circumflex,  0x005E, 
++IBUS_KEY_KP_Space,  0x00B2, 
++IBUS_KEY_KP_Add,  0x207A, 
++IBUS_KEY_KP_0,  0x2070, 
++IBUS_KEY_KP_1,  0x00B9, 
++IBUS_KEY_KP_2,  0x00B2, 
++IBUS_KEY_KP_3,  0x00B3, 
++IBUS_KEY_KP_4,  0x2074, 
++IBUS_KEY_KP_5,  0x2075, 
++IBUS_KEY_KP_6,  0x2076, 
++IBUS_KEY_KP_7,  0x2077, 
++IBUS_KEY_KP_8,  0x2078, 
++IBUS_KEY_KP_9,  0x2079, 
++IBUS_KEY_KP_Equal,  0x207C, 
++IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_A,  0x1EAC, 
++IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_E,  0x1EC6, 
++IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_O,  0x1ED8, 
++IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_a,  0x1EAD, 
++IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_e,  0x1EC7, 
++IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_o,  0x1ED9, 
++IBUS_KEY_Multi_key, IBUS_KEY_S, IBUS_KEY_M,  0x2120, 
++IBUS_KEY_Multi_key, IBUS_KEY_S, IBUS_KEY_m,  0x2120, 
++IBUS_KEY_Multi_key, IBUS_KEY_T, IBUS_KEY_M,  0x2122, 
++IBUS_KEY_Multi_key, IBUS_KEY_T, IBUS_KEY_m,  0x2122, 
++IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_a,  0x00AA, 
++IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_h,  0x02B0, 
++IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_i,  0x2071, 
++IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_j,  0x02B2, 
++IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_l,  0x02E1, 
++IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_n,  0x207F, 
++IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_o,  0x00BA, 
++IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_r,  0x02B3, 
++IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_s,  0x02E2, 
++IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_w,  0x02B7, 
++IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_x,  0x02E3, 
++IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_y,  0x02B8, 
++IBUS_KEY_Multi_key, IBUS_KEY_underscore, 0x0263,  0x02E0, 
++IBUS_KEY_Multi_key, IBUS_KEY_underscore, 0x0266,  0x02B1, 
++IBUS_KEY_Multi_key, IBUS_KEY_underscore, 0x0279,  0x02B4, 
++IBUS_KEY_Multi_key, IBUS_KEY_underscore, 0x027B,  0x02B5, 
++IBUS_KEY_Multi_key, IBUS_KEY_underscore, 0x0281,  0x02B6, 
++IBUS_KEY_Multi_key, IBUS_KEY_underscore, 0x0295,  0x02E4, 
++IBUS_KEY_Multi_key, IBUS_KEY_s, IBUS_KEY_M,  0x2120, 
++IBUS_KEY_Multi_key, IBUS_KEY_s, IBUS_KEY_m,  0x2120, 
++IBUS_KEY_Multi_key, IBUS_KEY_t, IBUS_KEY_M,  0x2122, 
++IBUS_KEY_Multi_key, IBUS_KEY_t, IBUS_KEY_m,  0x2122, 
++IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_a,  0x00AA, 
++IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_h,  0x02B0, 
++IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_i,  0x2071, 
++IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_j,  0x02B2, 
++IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_l,  0x02E1, 
++IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_n,  0x207F, 
++IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_o,  0x00BA, 
++IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_r,  0x02B3, 
++IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_s,  0x02E2, 
++IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_w,  0x02B7, 
++IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_x,  0x02E3, 
++IBUS_KEY_Multi_key, IBUS_KEY_underbar, IBUS_KEY_y,  0x02B8, 
++IBUS_KEY_Multi_key, IBUS_KEY_underbar, 0x0263,  0x02E0, 
++IBUS_KEY_Multi_key, IBUS_KEY_underbar, 0x0266,  0x02B1, 
++IBUS_KEY_Multi_key, IBUS_KEY_underbar, 0x0279,  0x02B4, 
++IBUS_KEY_Multi_key, IBUS_KEY_underbar, 0x027B,  0x02B5, 
++IBUS_KEY_Multi_key, IBUS_KEY_underbar, 0x0281,  0x02B6, 
++IBUS_KEY_Multi_key, IBUS_KEY_underbar, 0x0295,  0x02E4, 
++IBUS_KEY_space,  0x007E, 
++IBUS_KEY_less,  0x2272, 
++IBUS_KEY_equal,  0x2243, 
++IBUS_KEY_greater,  0x2273, 
++IBUS_KEY_nobreakspace,  0x0303, 
++IBUS_KEY_Oacute,  0x1E4C, 
++IBUS_KEY_Odiaeresis,  0x1E4E, 
++IBUS_KEY_Uacute,  0x1E78, 
++IBUS_KEY_oacute,  0x1E4D, 
++IBUS_KEY_odiaeresis,  0x1E4F, 
++IBUS_KEY_uacute,  0x1E79, 
++IBUS_KEY_Abreve,  0x1EB4, 
++IBUS_KEY_abreve,  0x1EB5, 
++IBUS_KEY_Omacron,  0x022C, 
++IBUS_KEY_omacron,  0x022D, 
++IBUS_KEY_Greek_iotadieresis,  0x1FD7, 
++IBUS_KEY_Greek_upsilondieresis,  0x1FE7, 
++IBUS_KEY_Greek_alpha,  0x1FB6, 
++IBUS_KEY_Greek_eta,  0x1FC6, 
++IBUS_KEY_Greek_iota,  0x1FD6, 
++IBUS_KEY_Greek_upsilon,  0x1FE6, 
++IBUS_KEY_Greek_omega,  0x1FF6, 
++0x1F00,  0x1F06, 
++0x1F01,  0x1F07, 
++0x1F08,  0x1F0E, 
++0x1F09,  0x1F0F, 
++0x1F20,  0x1F26, 
++0x1F21,  0x1F27, 
++0x1F28,  0x1F2E, 
++0x1F29,  0x1F2F, 
++0x1F30,  0x1F36, 
++0x1F31,  0x1F37, 
++0x1F38,  0x1F3E, 
++0x1F39,  0x1F3F, 
++0x1F50,  0x1F56, 
++0x1F51,  0x1F57, 
++0x1F59,  0x1F5F, 
++0x1F60,  0x1F66, 
++0x1F61,  0x1F67, 
++0x1F68,  0x1F6E, 
++0x1F69,  0x1F6F, 
++IBUS_KEY_dead_tilde,  0x007E, 
++IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_iota,  0x1FD7, 
++IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_upsilon,  0x1FE7, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA,  0x1F0E, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA,  0x1F2E, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_IOTA,  0x1F3E, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA,  0x1F6E, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha,  0x1F06, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta,  0x1F26, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_iota,  0x1F36, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_upsilon,  0x1F56, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega,  0x1F66, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA,  0x1F0F, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA,  0x1F2F, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_IOTA,  0x1F3F, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_UPSILON,  0x1F5F, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA,  0x1F6F, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha,  0x1F07, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta,  0x1F27, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_iota,  0x1F37, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_upsilon,  0x1F57, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega,  0x1F67, 
++IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota,  0x1FD7, 
++IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon,  0x1FE7, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA,  0x1F0F, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA,  0x1F2F, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA,  0x1F3F, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON,  0x1F5F, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA,  0x1F6F, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha,  0x1F07, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta,  0x1F27, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_iota,  0x1F37, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon,  0x1F57, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega,  0x1F67, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA,  0x1F0E, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA,  0x1F2E, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA,  0x1F3E, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA,  0x1F6E, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha,  0x1F06, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_eta,  0x1F26, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_iota,  0x1F36, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon,  0x1F56, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omega,  0x1F66, 
++IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_O,  0x1EE0, 
++IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_U,  0x1EEE, 
++IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_o,  0x1EE1, 
++IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_u,  0x1EEF, 
++IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_A,  0x1EB4, 
++IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_a,  0x1EB5, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_A,  0x1EAA, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_E,  0x1EC4, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_O,  0x1ED6, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_a,  0x1EAB, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_e,  0x1EC5, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_o,  0x1ED7, 
++IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_A,  0x1EB4, 
++IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_a,  0x1EB5, 
++IBUS_KEY_space,  0x00AF, 
++IBUS_KEY_V,  0x01D5, 
++IBUS_KEY_v,  0x01D6, 
++IBUS_KEY_nobreakspace,  0x0304, 
++IBUS_KEY_Egrave,  0x1E14, 
++IBUS_KEY_Eacute,  0x1E16, 
++IBUS_KEY_Ograve,  0x1E50, 
++IBUS_KEY_Oacute,  0x1E52, 
++IBUS_KEY_egrave,  0x1E15, 
++IBUS_KEY_eacute,  0x1E17, 
++IBUS_KEY_ograve,  0x1E51, 
++IBUS_KEY_oacute,  0x1E53, 
++IBUS_KEY_Cyrillic_i,  0x04E3, 
++IBUS_KEY_Cyrillic_u,  0x04EF, 
++IBUS_KEY_Cyrillic_I,  0x04E2, 
++IBUS_KEY_Cyrillic_U,  0x04EE, 
++IBUS_KEY_Greek_ALPHA,  0x1FB9, 
++IBUS_KEY_Greek_IOTA,  0x1FD9, 
++IBUS_KEY_Greek_UPSILON,  0x1FE9, 
++IBUS_KEY_Greek_alpha,  0x1FB1, 
++IBUS_KEY_Greek_iota,  0x1FD1, 
++IBUS_KEY_Greek_upsilon,  0x1FE1, 
++IBUS_KEY_dead_macron,  0x00AF, 
++IBUS_KEY_dead_greek, IBUS_KEY_A,  0x1FB9, 
++IBUS_KEY_dead_greek, IBUS_KEY_I,  0x1FD9, 
++IBUS_KEY_dead_greek, IBUS_KEY_U,  0x1FE9, 
++IBUS_KEY_dead_greek, IBUS_KEY_a,  0x1FB1, 
++IBUS_KEY_dead_greek, IBUS_KEY_i,  0x1FD1, 
++IBUS_KEY_dead_greek, IBUS_KEY_u,  0x1FE1, 
++IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_L,  0x1E38, 
++IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_R,  0x1E5C, 
++IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_l,  0x1E39, 
++IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_r,  0x1E5D, 
++IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_A,  0x01DE, 
++IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_O,  0x022A, 
++IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_U,  0x01D5, 
++IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_a,  0x01DF, 
++IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_o,  0x022B, 
++IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_u,  0x01D6, 
++IBUS_KEY_Multi_key, IBUS_KEY_period, IBUS_KEY_A,  0x01E0, 
++IBUS_KEY_Multi_key, IBUS_KEY_period, IBUS_KEY_O,  0x0230, 
++IBUS_KEY_Multi_key, IBUS_KEY_period, IBUS_KEY_a,  0x01E1, 
++IBUS_KEY_Multi_key, IBUS_KEY_period, IBUS_KEY_o,  0x0231, 
++IBUS_KEY_Multi_key, IBUS_KEY_semicolon, IBUS_KEY_O,  0x01EC, 
++IBUS_KEY_Multi_key, IBUS_KEY_semicolon, IBUS_KEY_o,  0x01ED, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_O,  0x022C, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_o,  0x022D, 
++IBUS_KEY_space,  0x02D8, 
++IBUS_KEY_nobreakspace,  0x0306, 
++IBUS_KEY_Agrave,  0x1EB0, 
++IBUS_KEY_Aacute,  0x1EAE, 
++IBUS_KEY_Atilde,  0x1EB4, 
++IBUS_KEY_agrave,  0x1EB1, 
++IBUS_KEY_aacute,  0x1EAF, 
++IBUS_KEY_atilde,  0x1EB5, 
++IBUS_KEY_Cyrillic_a,  0x04D1, 
++IBUS_KEY_Cyrillic_ie,  0x04D7, 
++IBUS_KEY_Cyrillic_i,  0x0439, 
++IBUS_KEY_Cyrillic_u,  0x045E, 
++IBUS_KEY_Cyrillic_zhe,  0x04C2, 
++IBUS_KEY_Cyrillic_A,  0x04D0, 
++IBUS_KEY_Cyrillic_IE,  0x04D6, 
++IBUS_KEY_Cyrillic_I,  0x0419, 
++IBUS_KEY_Cyrillic_U,  0x040E, 
++IBUS_KEY_Cyrillic_ZHE,  0x04C1, 
++IBUS_KEY_Greek_ALPHA,  0x1FB8, 
++IBUS_KEY_Greek_IOTA,  0x1FD8, 
++IBUS_KEY_Greek_UPSILON,  0x1FE8, 
++IBUS_KEY_Greek_alpha,  0x1FB0, 
++IBUS_KEY_Greek_iota,  0x1FD0, 
++IBUS_KEY_Greek_upsilon,  0x1FE0, 
++IBUS_KEY_dead_breve,  0x02D8, 
++IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_A,  0x1EB6, 
++IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_a,  0x1EB7, 
++IBUS_KEY_Multi_key, IBUS_KEY_comma, IBUS_KEY_E,  0x1E1C, 
++IBUS_KEY_Multi_key, IBUS_KEY_comma, IBUS_KEY_e,  0x1E1D, 
++IBUS_KEY_Multi_key, IBUS_KEY_cedilla, IBUS_KEY_E,  0x1E1C, 
++IBUS_KEY_Multi_key, IBUS_KEY_cedilla, IBUS_KEY_e,  0x1E1D, 
++IBUS_KEY_space,  0x02D9, 
++IBUS_KEY_L,  0x013F, 
++IBUS_KEY_i,  0x0131, 
++IBUS_KEY_j,  0x0237, 
++IBUS_KEY_l,  0x0140, 
++IBUS_KEY_nobreakspace,  0x0307, 
++IBUS_KEY_Sacute,  0x1E64, 
++IBUS_KEY_Scaron,  0x1E66, 
++IBUS_KEY_sacute,  0x1E65, 
++IBUS_KEY_scaron,  0x1E67, 
++IBUS_KEY_Amacron,  0x01E0, 
++IBUS_KEY_Omacron,  0x0230, 
++IBUS_KEY_amacron,  0x01E1, 
++IBUS_KEY_omacron,  0x0231, 
++IBUS_KEY_dead_abovedot,  0x02D9, 
++IBUS_KEY_dead_stroke, IBUS_KEY_j,  0x025F, 
++IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_S,  0x1E68, 
++IBUS_KEY_Multi_key, IBUS_KEY_exclam, IBUS_KEY_s,  0x1E69, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_S,  0x1E64, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_s,  0x1E65, 
++IBUS_KEY_Multi_key, IBUS_KEY_c, IBUS_KEY_S,  0x1E66, 
++IBUS_KEY_Multi_key, IBUS_KEY_c, IBUS_KEY_s,  0x1E67, 
++IBUS_KEY_Multi_key, IBUS_KEY_f, IBUS_KEY_s,  0x1E9B, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_S,  0x1E64, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_s,  0x1E65, 
++IBUS_KEY_space,  0x0022, 
++IBUS_KEY_apostrophe,  0x0344, 
++IBUS_KEY_nobreakspace,  0x0308, 
++IBUS_KEY_acute,  0x0344, 
++IBUS_KEY_Iacute,  0x1E2E, 
++IBUS_KEY_Ugrave,  0x01DB, 
++IBUS_KEY_Uacute,  0x01D7, 
++IBUS_KEY_iacute,  0x1E2F, 
++IBUS_KEY_ugrave,  0x01DC, 
++IBUS_KEY_uacute,  0x01D8, 
++0x01D3,  0x01D9, 
++0x01D4,  0x01DA, 
++IBUS_KEY_Amacron,  0x01DE, 
++IBUS_KEY_Umacron,  0x1E7A, 
++IBUS_KEY_amacron,  0x01DF, 
++IBUS_KEY_omacron,  0x022B, 
++IBUS_KEY_umacron,  0x1E7B, 
++IBUS_KEY_Ukrainian_i,  0x0457, 
++IBUS_KEY_Ukrainian_I,  0x0407, 
++IBUS_KEY_Cyrillic_a,  0x04D3, 
++IBUS_KEY_Cyrillic_ie,  0x0451, 
++IBUS_KEY_Cyrillic_i,  0x04E5, 
++IBUS_KEY_Cyrillic_o,  0x04E7, 
++IBUS_KEY_Cyrillic_u,  0x04F1, 
++IBUS_KEY_Cyrillic_zhe,  0x04DD, 
++IBUS_KEY_Cyrillic_yeru,  0x04F9, 
++IBUS_KEY_Cyrillic_ze,  0x04DF, 
++IBUS_KEY_Cyrillic_e,  0x04ED, 
++IBUS_KEY_Cyrillic_che,  0x04F5, 
++IBUS_KEY_Cyrillic_A,  0x04D2, 
++IBUS_KEY_Cyrillic_IE,  0x0401, 
++IBUS_KEY_Cyrillic_I,  0x04E4, 
++IBUS_KEY_Cyrillic_O,  0x04E6, 
++IBUS_KEY_Cyrillic_U,  0x04F0, 
++IBUS_KEY_Cyrillic_ZHE,  0x04DC, 
++IBUS_KEY_Cyrillic_YERU,  0x04F8, 
++IBUS_KEY_Cyrillic_ZE,  0x04DE, 
++IBUS_KEY_Cyrillic_E,  0x04EC, 
++IBUS_KEY_Cyrillic_CHE,  0x04F4, 
++IBUS_KEY_Greek_IOTA,  0x03AA, 
++IBUS_KEY_Greek_UPSILON,  0x03AB, 
++IBUS_KEY_Greek_iota,  0x03CA, 
++IBUS_KEY_Greek_upsilon,  0x03CB, 
++IBUS_KEY_dead_diaeresis,  0x00A8, 
++IBUS_KEY_dead_acute, IBUS_KEY_space,  0x0385, 
++IBUS_KEY_dead_acute, IBUS_KEY_Greek_iota,  0x0390, 
++IBUS_KEY_dead_acute, IBUS_KEY_Greek_upsilon,  0x03B0, 
++IBUS_KEY_dead_belowdiaeresis, IBUS_KEY_equal,  0x2A77, 
++IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_U,  0x1E7A, 
++IBUS_KEY_Multi_key, IBUS_KEY_underscore, IBUS_KEY_u,  0x1E7B, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_O,  0x1E4E, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_o,  0x1E4F, 
++IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_U,  0x1E7A, 
++IBUS_KEY_Multi_key, IBUS_KEY_macron, IBUS_KEY_u,  0x1E7B, 
++IBUS_KEY_space,  0x00B0, 
++IBUS_KEY_nobreakspace,  0x030A, 
++IBUS_KEY_Aacute,  0x01FA, 
++IBUS_KEY_aacute,  0x01FB, 
++IBUS_KEY_dead_abovering,  0x00B0, 
++IBUS_KEY_space,  0x02DD, 
++IBUS_KEY_nobreakspace,  0x030B, 
++IBUS_KEY_Cyrillic_u,  0x04F3, 
++IBUS_KEY_Cyrillic_U,  0x04F2, 
++IBUS_KEY_dead_doubleacute,  0x02DD, 
++IBUS_KEY_space,  0x02C7, 
++IBUS_KEY_parenleft,  0x208D, 
++IBUS_KEY_parenright,  0x208E, 
++IBUS_KEY_plus,  0x208A, 
++IBUS_KEY_minus,  0x208B, 
++IBUS_KEY_0,  0x2080, 
++IBUS_KEY_1,  0x2081, 
++IBUS_KEY_2,  0x2082, 
++IBUS_KEY_3,  0x2083, 
++IBUS_KEY_4,  0x2084, 
++IBUS_KEY_5,  0x2085, 
++IBUS_KEY_6,  0x2086, 
++IBUS_KEY_7,  0x2087, 
++IBUS_KEY_8,  0x2088, 
++IBUS_KEY_9,  0x2089, 
++IBUS_KEY_equal,  0x208C, 
++IBUS_KEY_V,  0x01D9, 
++IBUS_KEY_v,  0x01DA, 
++IBUS_KEY_nobreakspace,  0x030C, 
++0x01F2,  0x01C5, 
++IBUS_KEY_dead_caron,  0x02C7, 
++IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_U,  0x01D9, 
++IBUS_KEY_Multi_key, IBUS_KEY_quotedbl, IBUS_KEY_u,  0x01DA, 
++IBUS_KEY_space,  0x00B8, 
++IBUS_KEY_nobreakspace,  0x0327, 
++IBUS_KEY_cent,  0x20B5, 
++IBUS_KEY_Cacute,  0x1E08, 
++IBUS_KEY_cacute,  0x1E09, 
++IBUS_KEY_dead_cedilla,  0x00B8, 
++IBUS_KEY_dead_currency, IBUS_KEY_C,  0x20B5, 
++IBUS_KEY_dead_currency, IBUS_KEY_c,  0x20B5, 
++IBUS_KEY_space,  0x02DB, 
++IBUS_KEY_nobreakspace,  0x0328, 
++IBUS_KEY_Omacron,  0x01EC, 
++IBUS_KEY_omacron,  0x01ED, 
++IBUS_KEY_dead_ogonek,  0x02DB, 
++IBUS_KEY_space,  0x037A, 
++IBUS_KEY_Greek_alphaaccent,  0x1FB4, 
++IBUS_KEY_Greek_etaaccent,  0x1FC4, 
++IBUS_KEY_Greek_omegaaccent,  0x1FF4, 
++IBUS_KEY_Greek_ALPHA,  0x1FBC, 
++IBUS_KEY_Greek_ETA,  0x1FCC, 
++IBUS_KEY_Greek_OMEGA,  0x1FFC, 
++IBUS_KEY_Greek_alpha,  0x1FB3, 
++IBUS_KEY_Greek_eta,  0x1FC3, 
++IBUS_KEY_Greek_omega,  0x1FF3, 
++IBUS_KEY_dead_iota,  0x037A, 
++IBUS_KEY_dead_grave, IBUS_KEY_Greek_alpha,  0x1FB2, 
++IBUS_KEY_dead_grave, IBUS_KEY_Greek_eta,  0x1FC2, 
++IBUS_KEY_dead_grave, IBUS_KEY_Greek_omega,  0x1FF2, 
++IBUS_KEY_dead_acute, IBUS_KEY_Greek_alpha,  0x1FB4, 
++IBUS_KEY_dead_acute, IBUS_KEY_Greek_eta,  0x1FC4, 
++IBUS_KEY_dead_acute, IBUS_KEY_Greek_omega,  0x1FF4, 
++IBUS_KEY_dead_tilde, IBUS_KEY_Greek_alpha,  0x1FB7, 
++IBUS_KEY_dead_tilde, IBUS_KEY_Greek_eta,  0x1FC7, 
++IBUS_KEY_dead_tilde, IBUS_KEY_Greek_omega,  0x1FF7, 
++IBUS_KEY_dead_tilde, 0x1F00,  0x1F86, 
++IBUS_KEY_dead_tilde, 0x1F01,  0x1F87, 
++IBUS_KEY_dead_tilde, 0x1F08,  0x1F8E, 
++IBUS_KEY_dead_tilde, 0x1F09,  0x1F8F, 
++IBUS_KEY_dead_tilde, 0x1F20,  0x1F96, 
++IBUS_KEY_dead_tilde, 0x1F21,  0x1F97, 
++IBUS_KEY_dead_tilde, 0x1F28,  0x1F9E, 
++IBUS_KEY_dead_tilde, 0x1F29,  0x1F9F, 
++IBUS_KEY_dead_tilde, 0x1F60,  0x1FA6, 
++IBUS_KEY_dead_tilde, 0x1F61,  0x1FA7, 
++IBUS_KEY_dead_tilde, 0x1F68,  0x1FAE, 
++IBUS_KEY_dead_tilde, 0x1F69,  0x1FAF, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA,  0x1F88, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA,  0x1F98, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA,  0x1FA8, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha,  0x1F80, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta,  0x1F90, 
++IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega,  0x1FA0, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA,  0x1F89, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA,  0x1F99, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA,  0x1FA9, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha,  0x1F81, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta,  0x1F91, 
++IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega,  0x1FA1, 
++IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA,  0x1F8A, 
++IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA,  0x1F9A, 
++IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA,  0x1FAA, 
++IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha,  0x1F82, 
++IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta,  0x1F92, 
++IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega,  0x1FA2, 
++IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA,  0x1F8B, 
++IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA,  0x1F9B, 
++IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA,  0x1FAB, 
++IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha,  0x1F83, 
++IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta,  0x1F93, 
++IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega,  0x1FA3, 
++IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA,  0x1F8C, 
++IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA,  0x1F9C, 
++IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA,  0x1FAC, 
++IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha,  0x1F84, 
++IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta,  0x1F94, 
++IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega,  0x1FA4, 
++IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA,  0x1F8D, 
++IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA,  0x1F9D, 
++IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA,  0x1FAD, 
++IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha,  0x1F85, 
++IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta,  0x1F95, 
++IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega,  0x1FA5, 
++IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA,  0x1F8E, 
++IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA,  0x1F9E, 
++IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA,  0x1FAE, 
++IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha,  0x1F86, 
++IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta,  0x1F96, 
++IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega,  0x1FA6, 
++IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA,  0x1F8F, 
++IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA,  0x1F9F, 
++IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA,  0x1FAF, 
++IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha,  0x1F87, 
++IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta,  0x1F97, 
++IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega,  0x1FA7, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_Greek_alpha,  0x1FB4, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_Greek_eta,  0x1FC4, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_Greek_omega,  0x1FF4, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F00,  0x1F84, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F01,  0x1F85, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F08,  0x1F8C, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F09,  0x1F8D, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F20,  0x1F94, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F21,  0x1F95, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F28,  0x1F9C, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F29,  0x1F9D, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F60,  0x1FA4, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F61,  0x1FA5, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F68,  0x1FAC, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, 0x1F69,  0x1FAD, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA,  0x1F89, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA,  0x1F99, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA,  0x1FA9, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha,  0x1F81, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta,  0x1F91, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega,  0x1FA1, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA,  0x1F88, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA,  0x1F98, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA,  0x1FA8, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha,  0x1F80, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_eta,  0x1F90, 
++IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omega,  0x1FA0, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_Greek_alpha,  0x1FB2, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_Greek_eta,  0x1FC2, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_Greek_omega,  0x1FF2, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F00,  0x1F82, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F01,  0x1F83, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F08,  0x1F8A, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F09,  0x1F8B, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F20,  0x1F92, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F21,  0x1F93, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F28,  0x1F9A, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F29,  0x1F9B, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F60,  0x1FA2, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F61,  0x1FA3, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F68,  0x1FAA, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, 0x1F69,  0x1FAB, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_Greek_alpha,  0x1FB7, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_Greek_eta,  0x1FC7, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_Greek_omega,  0x1FF7, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F00,  0x1F86, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F01,  0x1F87, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F08,  0x1F8E, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F09,  0x1F8F, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F20,  0x1F96, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F21,  0x1F97, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F28,  0x1F9E, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F29,  0x1F9F, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F60,  0x1FA6, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F61,  0x1FA7, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F68,  0x1FAE, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, 0x1F69,  0x1FAF, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_Greek_alpha,  0x1FB4, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_Greek_eta,  0x1FC4, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_Greek_omega,  0x1FF4, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F00,  0x1F84, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F01,  0x1F85, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F08,  0x1F8C, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F09,  0x1F8D, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F20,  0x1F94, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F21,  0x1F95, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F28,  0x1F9C, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F29,  0x1F9D, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F60,  0x1FA4, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F61,  0x1FA5, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F68,  0x1FAC, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, 0x1F69,  0x1FAD, 
++IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA,  0x1F8B, 
++IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA,  0x1F9B, 
++IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA,  0x1FAB, 
++IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha,  0x1F83, 
++IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta,  0x1F93, 
++IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega,  0x1FA3, 
++IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA,  0x1F8A, 
++IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA,  0x1F9A, 
++IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA,  0x1FAA, 
++IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha,  0x1F82, 
++IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_eta,  0x1F92, 
++IBUS_KEY_dead_grave, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omega,  0x1FA2, 
++IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA,  0x1F8D, 
++IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA,  0x1F9D, 
++IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA,  0x1FAD, 
++IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha,  0x1F85, 
++IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta,  0x1F95, 
++IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega,  0x1FA5, 
++IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA,  0x1F8C, 
++IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA,  0x1F9C, 
++IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA,  0x1FAC, 
++IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha,  0x1F84, 
++IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_eta,  0x1F94, 
++IBUS_KEY_dead_acute, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omega,  0x1FA4, 
++IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA,  0x1F8F, 
++IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA,  0x1F9F, 
++IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA,  0x1FAF, 
++IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha,  0x1F87, 
++IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta,  0x1F97, 
++IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega,  0x1FA7, 
++IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA,  0x1F8E, 
++IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA,  0x1F9E, 
++IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA,  0x1FAE, 
++IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha,  0x1F86, 
++IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_eta,  0x1F96, 
++IBUS_KEY_dead_tilde, IBUS_KEY_Multi_key, IBUS_KEY_parenright, IBUS_KEY_Greek_omega,  0x1FA6, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA,  0x1F8D, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA,  0x1F9D, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA,  0x1FAD, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha,  0x1F85, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta,  0x1F95, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega,  0x1FA5, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA,  0x1F8C, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA,  0x1F9C, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA,  0x1FAC, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha,  0x1F84, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_eta,  0x1F94, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_omega,  0x1FA4, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA,  0x1F8C, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA,  0x1F9C, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA,  0x1FAC, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha,  0x1F84, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta,  0x1F94, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega,  0x1FA4, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA,  0x1F8D, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA,  0x1F9D, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA,  0x1FAD, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha,  0x1F85, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta,  0x1F95, 
++IBUS_KEY_Multi_key, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega,  0x1FA5, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA,  0x1F8B, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA,  0x1F9B, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA,  0x1FAB, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha,  0x1F83, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta,  0x1F93, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega,  0x1FA3, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA,  0x1F8A, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA,  0x1F9A, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA,  0x1FAA, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha,  0x1F82, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_eta,  0x1F92, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_omega,  0x1FA2, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA,  0x1F8A, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA,  0x1F9A, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA,  0x1FAA, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha,  0x1F82, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta,  0x1F92, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega,  0x1FA2, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA,  0x1F8B, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA,  0x1F9B, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA,  0x1FAB, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha,  0x1F83, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta,  0x1F93, 
++IBUS_KEY_Multi_key, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega,  0x1FA3, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA,  0x1F8F, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA,  0x1F9F, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA,  0x1FAF, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha,  0x1F87, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta,  0x1F97, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega,  0x1FA7, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA,  0x1F8E, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA,  0x1F9E, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA,  0x1FAE, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha,  0x1F86, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_eta,  0x1F96, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_omega,  0x1FA6, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA,  0x1F8E, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA,  0x1F9E, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA,  0x1FAE, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha,  0x1F86, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta,  0x1F96, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega,  0x1FA6, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA,  0x1F8F, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA,  0x1F9F, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA,  0x1FAF, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha,  0x1F87, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta,  0x1F97, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega,  0x1FA7, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA,  0x1F8D, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA,  0x1F9D, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA,  0x1FAD, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha,  0x1F85, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta,  0x1F95, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega,  0x1FA5, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA,  0x1F8C, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA,  0x1F9C, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA,  0x1FAC, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha,  0x1F84, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_eta,  0x1F94, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_omega,  0x1FA4, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA,  0x1F8C, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA,  0x1F9C, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA,  0x1FAC, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha,  0x1F84, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta,  0x1F94, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega,  0x1FA4, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA,  0x1F8D, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA,  0x1F9D, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA,  0x1FAD, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha,  0x1F85, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta,  0x1F95, 
++IBUS_KEY_Multi_key, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega,  0x1FA5, 
++IBUS_KEY_kana_WO,  0x30FA, 
++IBUS_KEY_kana_U,  0x30F4, 
++IBUS_KEY_kana_KA,  0x30AC, 
++IBUS_KEY_kana_KI,  0x30AE, 
++IBUS_KEY_kana_KU,  0x30B0, 
++IBUS_KEY_kana_KE,  0x30B2, 
++IBUS_KEY_kana_KO,  0x30B4, 
++IBUS_KEY_kana_SA,  0x30B6, 
++IBUS_KEY_kana_SHI,  0x30B8, 
++IBUS_KEY_kana_SU,  0x30BA, 
++IBUS_KEY_kana_SE,  0x30BC, 
++IBUS_KEY_kana_SO,  0x30BE, 
++IBUS_KEY_kana_TA,  0x30C0, 
++IBUS_KEY_kana_CHI,  0x30C2, 
++IBUS_KEY_kana_TSU,  0x30C5, 
++IBUS_KEY_kana_TE,  0x30C7, 
++IBUS_KEY_kana_TO,  0x30C9, 
++IBUS_KEY_kana_HA,  0x30D0, 
++IBUS_KEY_kana_HI,  0x30D3, 
++IBUS_KEY_kana_FU,  0x30D6, 
++IBUS_KEY_kana_HE,  0x30D9, 
++IBUS_KEY_kana_HO,  0x30DC, 
++IBUS_KEY_kana_WA,  0x30F7, 
++IBUS_KEY_kana_HA,  0x30D1, 
++IBUS_KEY_kana_HI,  0x30D4, 
++IBUS_KEY_kana_FU,  0x30D7, 
++IBUS_KEY_kana_HE,  0x30DA, 
++IBUS_KEY_kana_HO,  0x30DD, 
++IBUS_KEY_space,  0x0323, 
++IBUS_KEY_plus,  0x2A25, 
++IBUS_KEY_minus,  0x2A2A, 
++IBUS_KEY_equal,  0x2A66, 
++IBUS_KEY_nobreakspace,  0x0323, 
++IBUS_KEY_Abreve,  0x1EB6, 
++IBUS_KEY_abreve,  0x1EB7, 
++IBUS_KEY_dead_belowdot,  0x0323, 
++IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_O,  0x1EE2, 
++IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_U,  0x1EF0, 
++IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_o,  0x1EE3, 
++IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_u,  0x1EF1, 
++IBUS_KEY_space,  0x0309, 
++IBUS_KEY_B,  0x0181, 
++IBUS_KEY_C,  0x0187, 
++IBUS_KEY_D,  0x018A, 
++IBUS_KEY_F,  0x0191, 
++IBUS_KEY_G,  0x0193, 
++IBUS_KEY_K,  0x0198, 
++IBUS_KEY_M,  0x2C6E, 
++IBUS_KEY_N,  0x019D, 
++IBUS_KEY_P,  0x01A4, 
++IBUS_KEY_T,  0x01AC, 
++IBUS_KEY_V,  0x01B2, 
++IBUS_KEY_W,  0x2C72, 
++IBUS_KEY_Z,  0x0224, 
++IBUS_KEY_b,  0x0253, 
++IBUS_KEY_c,  0x0188, 
++IBUS_KEY_d,  0x0257, 
++IBUS_KEY_f,  0x0192, 
++IBUS_KEY_g,  0x0260, 
++IBUS_KEY_h,  0x0266, 
++IBUS_KEY_k,  0x0199, 
++IBUS_KEY_m,  0x0271, 
++IBUS_KEY_n,  0x0272, 
++IBUS_KEY_p,  0x01A5, 
++IBUS_KEY_q,  0x02A0, 
++IBUS_KEY_r,  0x027C, 
++IBUS_KEY_s,  0x0282, 
++IBUS_KEY_t,  0x01AD, 
++IBUS_KEY_v,  0x028B, 
++IBUS_KEY_w,  0x2C73, 
++IBUS_KEY_z,  0x0225, 
++IBUS_KEY_nobreakspace,  0x0309, 
++IBUS_KEY_Abreve,  0x1EB2, 
++IBUS_KEY_abreve,  0x1EB3, 
++0x0256,  0x1D91, 
++0x025C,  0x025D, 
++0x025F,  0x0284, 
++0x0279,  0x027B, 
++IBUS_KEY_dead_hook,  0x0309, 
++IBUS_KEY_dead_greek, IBUS_KEY_U,  0x03D2, 
++IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_O,  0x1EDE, 
++IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_U,  0x1EEC, 
++IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_o,  0x1EDF, 
++IBUS_KEY_Multi_key, IBUS_KEY_plus, IBUS_KEY_u,  0x1EED, 
++IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_A,  0x1EB2, 
++IBUS_KEY_Multi_key, IBUS_KEY_U, IBUS_KEY_a,  0x1EB3, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_A,  0x1EA8, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_E,  0x1EC2, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_O,  0x1ED4, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_a,  0x1EA9, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_e,  0x1EC3, 
++IBUS_KEY_Multi_key, IBUS_KEY_asciicircum, IBUS_KEY_o,  0x1ED5, 
++IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_A,  0x1EB2, 
++IBUS_KEY_Multi_key, IBUS_KEY_b, IBUS_KEY_a,  0x1EB3, 
++IBUS_KEY_space,  0x031B, 
++IBUS_KEY_nobreakspace,  0x031B, 
++IBUS_KEY_Utilde,  0x1EEE, 
++IBUS_KEY_utilde,  0x1EEF, 
++IBUS_KEY_dead_horn,  0x031B, 
++IBUS_KEY_space,  0x002F, 
++IBUS_KEY_2,  0x01BB, 
++IBUS_KEY_A,  0x023A, 
++IBUS_KEY_B,  0x0243, 
++IBUS_KEY_C,  0x023B, 
++IBUS_KEY_D,  0x0110, 
++IBUS_KEY_E,  0x0246, 
++IBUS_KEY_G,  0x01E4, 
++IBUS_KEY_H,  0x0126, 
++IBUS_KEY_I,  0x0197, 
++IBUS_KEY_J,  0x0248, 
++IBUS_KEY_L,  0x0141, 
++IBUS_KEY_O,  0x00D8, 
++IBUS_KEY_P,  0x2C63, 
++IBUS_KEY_R,  0x024C, 
++IBUS_KEY_T,  0x0166, 
++IBUS_KEY_U,  0x0244, 
++IBUS_KEY_Y,  0x024E, 
++IBUS_KEY_Z,  0x01B5, 
++IBUS_KEY_a,  0x2C65, 
++IBUS_KEY_b,  0x0180, 
++IBUS_KEY_c,  0x023C, 
++IBUS_KEY_d,  0x0111, 
++IBUS_KEY_e,  0x0247, 
++IBUS_KEY_g,  0x01E5, 
++IBUS_KEY_h,  0x0127, 
++IBUS_KEY_i,  0x0268, 
++IBUS_KEY_j,  0x0249, 
++IBUS_KEY_l,  0x0142, 
++IBUS_KEY_o,  0x00F8, 
++IBUS_KEY_p,  0x1D7D, 
++IBUS_KEY_r,  0x024D, 
++IBUS_KEY_t,  0x0167, 
++IBUS_KEY_u,  0x0289, 
++IBUS_KEY_y,  0x024F, 
++IBUS_KEY_z,  0x01B6, 
++IBUS_KEY_nobreakspace,  0x0338, 
++IBUS_KEY_Oacute,  0x01FE, 
++IBUS_KEY_oacute,  0x01FF, 
++0x0237,  0x025F, 
++0x0269,  0x1D7C, 
++IBUS_KEY_lessthanequal,  0x2270, 
++IBUS_KEY_greaterthanequal,  0x2271, 
++IBUS_KEY_dead_stroke,  0x002F, 
++IBUS_KEY_dead_acute, IBUS_KEY_O,  0x01FE, 
++IBUS_KEY_dead_acute, IBUS_KEY_o,  0x01FF, 
++IBUS_KEY_dead_abovedot, IBUS_KEY_j,  0x025F, 
++IBUS_KEY_dead_greek, IBUS_KEY_r,  0x03FC, 
++IBUS_KEY_Greek_ALPHA,  0x1F08, 
++IBUS_KEY_Greek_EPSILON,  0x1F18, 
++IBUS_KEY_Greek_ETA,  0x1F28, 
++IBUS_KEY_Greek_IOTA,  0x1F38, 
++IBUS_KEY_Greek_OMICRON,  0x1F48, 
++IBUS_KEY_Greek_OMEGA,  0x1F68, 
++IBUS_KEY_Greek_alpha,  0x1F00, 
++IBUS_KEY_Greek_epsilon,  0x1F10, 
++IBUS_KEY_Greek_eta,  0x1F20, 
++IBUS_KEY_Greek_iota,  0x1F30, 
++IBUS_KEY_Greek_omicron,  0x1F40, 
++IBUS_KEY_Greek_rho,  0x1FE4, 
++IBUS_KEY_Greek_upsilon,  0x1F50, 
++IBUS_KEY_Greek_omega,  0x1F60, 
++IBUS_KEY_Greek_ALPHA,  0x1F09, 
++IBUS_KEY_Greek_EPSILON,  0x1F19, 
++IBUS_KEY_Greek_ETA,  0x1F29, 
++IBUS_KEY_Greek_IOTA,  0x1F39, 
++IBUS_KEY_Greek_OMICRON,  0x1F49, 
++IBUS_KEY_Greek_RHO,  0x1FEC, 
++IBUS_KEY_Greek_UPSILON,  0x1F59, 
++IBUS_KEY_Greek_OMEGA,  0x1F69, 
++IBUS_KEY_Greek_alpha,  0x1F01, 
++IBUS_KEY_Greek_epsilon,  0x1F11, 
++IBUS_KEY_Greek_eta,  0x1F21, 
++IBUS_KEY_Greek_iota,  0x1F31, 
++IBUS_KEY_Greek_omicron,  0x1F41, 
++IBUS_KEY_Greek_rho,  0x1FE5, 
++IBUS_KEY_Greek_upsilon,  0x1F51, 
++IBUS_KEY_Greek_omega,  0x1F61, 
++IBUS_KEY_bar,  0x2AF0, 
++IBUS_KEY_plus,  0x2A26, 
++IBUS_KEY_dead_diaeresis, IBUS_KEY_equal,  0x2A77, 
++IBUS_KEY_space,  0x002C, 
++IBUS_KEY_S,  0x0218, 
++IBUS_KEY_T,  0x021A, 
++IBUS_KEY_s,  0x0219, 
++IBUS_KEY_t,  0x021B, 
++IBUS_KEY_nobreakspace,  0x0326, 
++IBUS_KEY_dead_belowcomma,  0x002C, 
++IBUS_KEY_space,  0x00A4, 
++IBUS_KEY_A,  0x20B3, 
++IBUS_KEY_B,  0x20B1, 
++IBUS_KEY_C,  0x20A1, 
++IBUS_KEY_D,  0x20AF, 
++IBUS_KEY_E,  0x20A0, 
++IBUS_KEY_F,  0x20A3, 
++IBUS_KEY_G,  0x20B2, 
++IBUS_KEY_H,  0x20B4, 
++IBUS_KEY_I,  0x17DB, 
++IBUS_KEY_K,  0x20AD, 
++IBUS_KEY_L,  0x20A4, 
++IBUS_KEY_M,  0x2133, 
++IBUS_KEY_N,  0x20A6, 
++IBUS_KEY_O,  0x0AF1, 
++IBUS_KEY_P,  0x20A7, 
++IBUS_KEY_R,  0x20A8, 
++IBUS_KEY_S,  0x0024, 
++IBUS_KEY_T,  0x20AE, 
++IBUS_KEY_U,  0x5713, 
++IBUS_KEY_W,  0x20A9, 
++IBUS_KEY_Y,  0x5186, 
++IBUS_KEY_a,  0x060B, 
++IBUS_KEY_b,  0x0E3F, 
++IBUS_KEY_c,  0x00A2, 
++IBUS_KEY_d,  0x20AB, 
++IBUS_KEY_e,  0x20AC, 
++IBUS_KEY_f,  0x0192, 
++IBUS_KEY_g,  0x20B2, 
++IBUS_KEY_h,  0x20B4, 
++IBUS_KEY_i,  0xFDFC, 
++IBUS_KEY_k,  0x20AD, 
++IBUS_KEY_l,  0x00A3, 
++IBUS_KEY_m,  0x20A5, 
++IBUS_KEY_n,  0x20A6, 
++IBUS_KEY_o,  0x0BF9, 
++IBUS_KEY_p,  0x20B0, 
++IBUS_KEY_r,  0x20A2, 
++IBUS_KEY_s,  0x20AA, 
++IBUS_KEY_t,  0x09F3, 
++IBUS_KEY_u,  0x5143, 
++IBUS_KEY_w,  0x20A9, 
++IBUS_KEY_y,  0x00A5, 
++IBUS_KEY_nobreakspace,  0x00A4, 
++IBUS_KEY_Ccedilla,  0x20B5, 
++IBUS_KEY_THORN,  0x09F2, 
++IBUS_KEY_ccedilla,  0x20B5, 
++IBUS_KEY_thorn,  0x09F2, 
++IBUS_KEY_dead_currency,  0x00A4, 
++IBUS_KEY_dead_cedilla, IBUS_KEY_C,  0x20B5, 
++IBUS_KEY_dead_cedilla, IBUS_KEY_c,  0x20B5, 
++IBUS_KEY_space,  0x00B5, 
++IBUS_KEY_A,  0x0391, 
++IBUS_KEY_B,  0x0392, 
++IBUS_KEY_D,  0x0394, 
++IBUS_KEY_E,  0x0395, 
++IBUS_KEY_F,  0x03A6, 
++IBUS_KEY_G,  0x0393, 
++IBUS_KEY_H,  0x0397, 
++IBUS_KEY_I,  0x0399, 
++IBUS_KEY_J,  0x0398, 
++IBUS_KEY_K,  0x039A, 
++IBUS_KEY_L,  0x039B, 
++IBUS_KEY_M,  0x039C, 
++IBUS_KEY_N,  0x039D, 
++IBUS_KEY_O,  0x039F, 
++IBUS_KEY_P,  0x03A0, 
++IBUS_KEY_Q,  0x03A7, 
++IBUS_KEY_R,  0x03A1, 
++IBUS_KEY_S,  0x03A3, 
++IBUS_KEY_T,  0x03A4, 
++IBUS_KEY_U,  0x03A5, 
++IBUS_KEY_W,  0x03A9, 
++IBUS_KEY_X,  0x039E, 
++IBUS_KEY_Y,  0x03A8, 
++IBUS_KEY_Z,  0x0396, 
++IBUS_KEY_a,  0x03B1, 
++IBUS_KEY_b,  0x03B2, 
++IBUS_KEY_d,  0x03B4, 
++IBUS_KEY_e,  0x03B5, 
++IBUS_KEY_f,  0x03C6, 
++IBUS_KEY_g,  0x03B3, 
++IBUS_KEY_h,  0x03B7, 
++IBUS_KEY_i,  0x03B9, 
++IBUS_KEY_j,  0x03B8, 
++IBUS_KEY_k,  0x03BA, 
++IBUS_KEY_l,  0x03BB, 
++IBUS_KEY_m,  0x03BC, 
++IBUS_KEY_n,  0x03BD, 
++IBUS_KEY_o,  0x03BF, 
++IBUS_KEY_p,  0x03C0, 
++IBUS_KEY_q,  0x03C7, 
++IBUS_KEY_r,  0x03C1, 
++IBUS_KEY_s,  0x03C3, 
++IBUS_KEY_t,  0x03C4, 
++IBUS_KEY_u,  0x03C5, 
++IBUS_KEY_w,  0x03C9, 
++IBUS_KEY_x,  0x03BE, 
++IBUS_KEY_y,  0x03C8, 
++IBUS_KEY_z,  0x03B6, 
++IBUS_KEY_nobreakspace,  0x00B5, 
++IBUS_KEY_dead_greek,  0x00B5, 
++IBUS_KEY_dead_macron, IBUS_KEY_A,  0x1FB9, 
++IBUS_KEY_dead_macron, IBUS_KEY_I,  0x1FD9, 
++IBUS_KEY_dead_macron, IBUS_KEY_U,  0x1FE9, 
++IBUS_KEY_dead_macron, IBUS_KEY_a,  0x1FB1, 
++IBUS_KEY_dead_macron, IBUS_KEY_i,  0x1FD1, 
++IBUS_KEY_dead_macron, IBUS_KEY_u,  0x1FE1, 
++IBUS_KEY_dead_hook, IBUS_KEY_U,  0x03D2, 
++IBUS_KEY_dead_stroke, IBUS_KEY_r,  0x03FC, 
++IBUS_KEY_space, IBUS_KEY_space,  0x00A0, 
++IBUS_KEY_space, IBUS_KEY_apostrophe,  0x0027, 
++IBUS_KEY_space, IBUS_KEY_parenleft,  0x02D8, 
++IBUS_KEY_space, IBUS_KEY_comma,  0x00B8, 
++IBUS_KEY_space, IBUS_KEY_minus,  0x007E, 
++IBUS_KEY_space, IBUS_KEY_period,  0x2008, 
++IBUS_KEY_space, IBUS_KEY_less,  0x02C7, 
++IBUS_KEY_space, IBUS_KEY_greater,  0x005E, 
++IBUS_KEY_space, IBUS_KEY_asciicircum,  0x005E, 
++IBUS_KEY_space, IBUS_KEY_grave,  0x0060, 
++IBUS_KEY_space, IBUS_KEY_asciitilde,  0x007E, 
++IBUS_KEY_exclam, IBUS_KEY_exclam,  0x00A1, 
++IBUS_KEY_exclam, IBUS_KEY_question,  0x203D, 
++IBUS_KEY_exclam, IBUS_KEY_A,  0x1EA0, 
++IBUS_KEY_exclam, IBUS_KEY_B,  0x1E04, 
++IBUS_KEY_exclam, IBUS_KEY_D,  0x1E0C, 
++IBUS_KEY_exclam, IBUS_KEY_E,  0x1EB8, 
++IBUS_KEY_exclam, IBUS_KEY_H,  0x1E24, 
++IBUS_KEY_exclam, IBUS_KEY_I,  0x1ECA, 
++IBUS_KEY_exclam, IBUS_KEY_K,  0x1E32, 
++IBUS_KEY_exclam, IBUS_KEY_L,  0x1E36, 
++IBUS_KEY_exclam, IBUS_KEY_M,  0x1E42, 
++IBUS_KEY_exclam, IBUS_KEY_N,  0x1E46, 
++IBUS_KEY_exclam, IBUS_KEY_O,  0x1ECC, 
++IBUS_KEY_exclam, IBUS_KEY_P,  0x00B6, 
++IBUS_KEY_exclam, IBUS_KEY_R,  0x1E5A, 
++IBUS_KEY_exclam, IBUS_KEY_S,  0x1E62, 
++IBUS_KEY_exclam, IBUS_KEY_T,  0x1E6C, 
++IBUS_KEY_exclam, IBUS_KEY_U,  0x1EE4, 
++IBUS_KEY_exclam, IBUS_KEY_V,  0x1E7E, 
++IBUS_KEY_exclam, IBUS_KEY_W,  0x1E88, 
++IBUS_KEY_exclam, IBUS_KEY_Y,  0x1EF4, 
++IBUS_KEY_exclam, IBUS_KEY_Z,  0x1E92, 
++IBUS_KEY_exclam, IBUS_KEY_asciicircum,  0x00A6, 
++IBUS_KEY_exclam, IBUS_KEY_a,  0x1EA1, 
++IBUS_KEY_exclam, IBUS_KEY_b,  0x1E05, 
++IBUS_KEY_exclam, IBUS_KEY_d,  0x1E0D, 
++IBUS_KEY_exclam, IBUS_KEY_e,  0x1EB9, 
++IBUS_KEY_exclam, IBUS_KEY_h,  0x1E25, 
++IBUS_KEY_exclam, IBUS_KEY_i,  0x1ECB, 
++IBUS_KEY_exclam, IBUS_KEY_k,  0x1E33, 
++IBUS_KEY_exclam, IBUS_KEY_l,  0x1E37, 
++IBUS_KEY_exclam, IBUS_KEY_m,  0x1E43, 
++IBUS_KEY_exclam, IBUS_KEY_n,  0x1E47, 
++IBUS_KEY_exclam, IBUS_KEY_o,  0x1ECD, 
++IBUS_KEY_exclam, IBUS_KEY_p,  0x00B6, 
++IBUS_KEY_exclam, IBUS_KEY_r,  0x1E5B, 
++IBUS_KEY_exclam, IBUS_KEY_s,  0x1E63, 
++IBUS_KEY_exclam, IBUS_KEY_t,  0x1E6D, 
++IBUS_KEY_exclam, IBUS_KEY_u,  0x1EE5, 
++IBUS_KEY_exclam, IBUS_KEY_v,  0x1E7F, 
++IBUS_KEY_exclam, IBUS_KEY_w,  0x1E89, 
++IBUS_KEY_exclam, IBUS_KEY_y,  0x1EF5, 
++IBUS_KEY_exclam, IBUS_KEY_z,  0x1E93, 
++IBUS_KEY_quotedbl, IBUS_KEY_quotedbl,  0x00A8, 
++IBUS_KEY_quotedbl, IBUS_KEY_apostrophe,  0x0344, 
++IBUS_KEY_quotedbl, IBUS_KEY_comma,  0x201E, 
++IBUS_KEY_quotedbl, IBUS_KEY_less,  0x201C, 
++IBUS_KEY_quotedbl, IBUS_KEY_greater,  0x201D, 
++IBUS_KEY_quotedbl, IBUS_KEY_A,  0x00C4, 
++IBUS_KEY_quotedbl, IBUS_KEY_E,  0x00CB, 
++IBUS_KEY_quotedbl, IBUS_KEY_H,  0x1E26, 
++IBUS_KEY_quotedbl, IBUS_KEY_I,  0x00CF, 
++IBUS_KEY_quotedbl, IBUS_KEY_O,  0x00D6, 
++IBUS_KEY_quotedbl, IBUS_KEY_U,  0x00DC, 
++IBUS_KEY_quotedbl, IBUS_KEY_W,  0x1E84, 
++IBUS_KEY_quotedbl, IBUS_KEY_X,  0x1E8C, 
++IBUS_KEY_quotedbl, IBUS_KEY_Y,  0x0178, 
++IBUS_KEY_quotedbl, IBUS_KEY_a,  0x00E4, 
++IBUS_KEY_quotedbl, IBUS_KEY_e,  0x00EB, 
++IBUS_KEY_quotedbl, IBUS_KEY_h,  0x1E27, 
++IBUS_KEY_quotedbl, IBUS_KEY_i,  0x00EF, 
++IBUS_KEY_quotedbl, IBUS_KEY_o,  0x00F6, 
++IBUS_KEY_quotedbl, IBUS_KEY_t,  0x1E97, 
++IBUS_KEY_quotedbl, IBUS_KEY_u,  0x00FC, 
++IBUS_KEY_quotedbl, IBUS_KEY_w,  0x1E85, 
++IBUS_KEY_quotedbl, IBUS_KEY_x,  0x1E8D, 
++IBUS_KEY_quotedbl, IBUS_KEY_y,  0x00FF, 
++IBUS_KEY_quotedbl, IBUS_KEY_acute,  0x0344, 
++IBUS_KEY_quotedbl, IBUS_KEY_Otilde,  0x1E4E, 
++IBUS_KEY_quotedbl, IBUS_KEY_otilde,  0x1E4F, 
++IBUS_KEY_quotedbl, 0x03D2,  0x03D4, 
++IBUS_KEY_quotedbl, IBUS_KEY_Umacron,  0x1E7A, 
++IBUS_KEY_quotedbl, IBUS_KEY_umacron,  0x1E7B, 
++IBUS_KEY_quotedbl, 0x04D8,  0x04DA, 
++IBUS_KEY_quotedbl, 0x04D9,  0x04DB, 
++IBUS_KEY_quotedbl, 0x04E8,  0x04EA, 
++IBUS_KEY_quotedbl, 0x04E9,  0x04EB, 
++IBUS_KEY_quotedbl, IBUS_KEY_Ukrainian_i,  0x0457, 
++IBUS_KEY_quotedbl, IBUS_KEY_Ukrainian_I,  0x0407, 
++IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_a,  0x04D3, 
++IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_ie,  0x0451, 
++IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_i,  0x04E5, 
++IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_o,  0x04E7, 
++IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_u,  0x04F1, 
++IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_zhe,  0x04DD, 
++IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_yeru,  0x04F9, 
++IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_ze,  0x04DF, 
++IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_e,  0x04ED, 
++IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_che,  0x04F5, 
++IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_A,  0x04D2, 
++IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_IE,  0x0401, 
++IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_I,  0x04E4, 
++IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_O,  0x04E6, 
++IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_U,  0x04F0, 
++IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_ZHE,  0x04DC, 
++IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_YERU,  0x04F8, 
++IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_ZE,  0x04DE, 
++IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_E,  0x04EC, 
++IBUS_KEY_quotedbl, IBUS_KEY_Cyrillic_CHE,  0x04F4, 
++IBUS_KEY_quotedbl, IBUS_KEY_Greek_IOTA,  0x03AA, 
++IBUS_KEY_quotedbl, IBUS_KEY_Greek_UPSILON,  0x03AB, 
++IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota,  0x03CA, 
++IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon,  0x03CB, 
++IBUS_KEY_quotedbl, IBUS_KEY_dead_acute,  0x0344, 
++IBUS_KEY_numbersign, IBUS_KEY_numbersign,  0x266F, 
++IBUS_KEY_numbersign, IBUS_KEY_E,  0x266B, 
++IBUS_KEY_numbersign, IBUS_KEY_S,  0x266C, 
++IBUS_KEY_numbersign, IBUS_KEY_b,  0x266D, 
++IBUS_KEY_numbersign, IBUS_KEY_e,  0x266A, 
++IBUS_KEY_numbersign, IBUS_KEY_f,  0x266E, 
++IBUS_KEY_numbersign, IBUS_KEY_q,  0x2669, 
++IBUS_KEY_percent, IBUS_KEY_o,  0x2030, 
++IBUS_KEY_apostrophe, IBUS_KEY_space,  0x0027, 
++IBUS_KEY_apostrophe, IBUS_KEY_apostrophe,  0x00B4, 
++IBUS_KEY_apostrophe, IBUS_KEY_comma,  0x201A, 
++IBUS_KEY_apostrophe, IBUS_KEY_less,  0x2018, 
++IBUS_KEY_apostrophe, IBUS_KEY_greater,  0x2019, 
++IBUS_KEY_apostrophe, IBUS_KEY_A,  0x00C1, 
++IBUS_KEY_apostrophe, IBUS_KEY_C,  0x0106, 
++IBUS_KEY_apostrophe, IBUS_KEY_E,  0x00C9, 
++IBUS_KEY_apostrophe, IBUS_KEY_G,  0x01F4, 
++IBUS_KEY_apostrophe, IBUS_KEY_I,  0x00CD, 
++IBUS_KEY_apostrophe, IBUS_KEY_K,  0x1E30, 
++IBUS_KEY_apostrophe, IBUS_KEY_L,  0x0139, 
++IBUS_KEY_apostrophe, IBUS_KEY_M,  0x1E3E, 
++IBUS_KEY_apostrophe, IBUS_KEY_N,  0x0143, 
++IBUS_KEY_apostrophe, IBUS_KEY_O,  0x00D3, 
++IBUS_KEY_apostrophe, IBUS_KEY_P,  0x1E54, 
++IBUS_KEY_apostrophe, IBUS_KEY_R,  0x0154, 
++IBUS_KEY_apostrophe, IBUS_KEY_S,  0x015A, 
++IBUS_KEY_apostrophe, IBUS_KEY_U,  0x00DA, 
++IBUS_KEY_apostrophe, IBUS_KEY_W,  0x1E82, 
++IBUS_KEY_apostrophe, IBUS_KEY_Y,  0x00DD, 
++IBUS_KEY_apostrophe, IBUS_KEY_Z,  0x0179, 
++IBUS_KEY_apostrophe, IBUS_KEY_a,  0x00E1, 
++IBUS_KEY_apostrophe, IBUS_KEY_c,  0x0107, 
++IBUS_KEY_apostrophe, IBUS_KEY_e,  0x00E9, 
++IBUS_KEY_apostrophe, IBUS_KEY_g,  0x01F5, 
++IBUS_KEY_apostrophe, IBUS_KEY_i,  0x00ED, 
++IBUS_KEY_apostrophe, IBUS_KEY_k,  0x1E31, 
++IBUS_KEY_apostrophe, IBUS_KEY_l,  0x013A, 
++IBUS_KEY_apostrophe, IBUS_KEY_m,  0x1E3F, 
++IBUS_KEY_apostrophe, IBUS_KEY_n,  0x0144, 
++IBUS_KEY_apostrophe, IBUS_KEY_o,  0x00F3, 
++IBUS_KEY_apostrophe, IBUS_KEY_p,  0x1E55, 
++IBUS_KEY_apostrophe, IBUS_KEY_r,  0x0155, 
++IBUS_KEY_apostrophe, IBUS_KEY_s,  0x015B, 
++IBUS_KEY_apostrophe, IBUS_KEY_u,  0x00FA, 
++IBUS_KEY_apostrophe, IBUS_KEY_w,  0x1E83, 
++IBUS_KEY_apostrophe, IBUS_KEY_y,  0x00FD, 
++IBUS_KEY_apostrophe, IBUS_KEY_z,  0x017A, 
++IBUS_KEY_apostrophe, IBUS_KEY_Acircumflex,  0x1EA4, 
++IBUS_KEY_apostrophe, IBUS_KEY_Aring,  0x01FA, 
++IBUS_KEY_apostrophe, IBUS_KEY_AE,  0x01FC, 
++IBUS_KEY_apostrophe, IBUS_KEY_Ccedilla,  0x1E08, 
++IBUS_KEY_apostrophe, IBUS_KEY_Ecircumflex,  0x1EBE, 
++IBUS_KEY_apostrophe, IBUS_KEY_Idiaeresis,  0x1E2E, 
++IBUS_KEY_apostrophe, IBUS_KEY_Ocircumflex,  0x1ED0, 
++IBUS_KEY_apostrophe, IBUS_KEY_Otilde,  0x1E4C, 
++IBUS_KEY_apostrophe, IBUS_KEY_Ooblique,  0x01FE, 
++IBUS_KEY_apostrophe, IBUS_KEY_Udiaeresis,  0x01D7, 
++IBUS_KEY_apostrophe, IBUS_KEY_acircumflex,  0x1EA5, 
++IBUS_KEY_apostrophe, IBUS_KEY_aring,  0x01FB, 
++IBUS_KEY_apostrophe, IBUS_KEY_ae,  0x01FD, 
++IBUS_KEY_apostrophe, IBUS_KEY_ccedilla,  0x1E09, 
++IBUS_KEY_apostrophe, IBUS_KEY_ecircumflex,  0x1EBF, 
++IBUS_KEY_apostrophe, IBUS_KEY_idiaeresis,  0x1E2F, 
++IBUS_KEY_apostrophe, IBUS_KEY_ocircumflex,  0x1ED1, 
++IBUS_KEY_apostrophe, IBUS_KEY_otilde,  0x1E4D, 
++IBUS_KEY_apostrophe, IBUS_KEY_oslash,  0x01FF, 
++IBUS_KEY_apostrophe, IBUS_KEY_udiaeresis,  0x01D8, 
++IBUS_KEY_apostrophe, IBUS_KEY_Abreve,  0x1EAE, 
++IBUS_KEY_apostrophe, IBUS_KEY_abreve,  0x1EAF, 
++IBUS_KEY_apostrophe, IBUS_KEY_Emacron,  0x1E16, 
++IBUS_KEY_apostrophe, IBUS_KEY_emacron,  0x1E17, 
++IBUS_KEY_apostrophe, IBUS_KEY_Omacron,  0x1E52, 
++IBUS_KEY_apostrophe, IBUS_KEY_Utilde,  0x1E78, 
++IBUS_KEY_apostrophe, IBUS_KEY_omacron,  0x1E53, 
++IBUS_KEY_apostrophe, IBUS_KEY_utilde,  0x1E79, 
++IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_ghe,  0x0453, 
++IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_ka,  0x045C, 
++IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_GHE,  0x0403, 
++IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_KA,  0x040C, 
++IBUS_KEY_apostrophe, IBUS_KEY_Greek_iotadieresis,  0x0390, 
++IBUS_KEY_apostrophe, IBUS_KEY_Greek_upsilondieresis,  0x03B0, 
++IBUS_KEY_apostrophe, IBUS_KEY_Greek_ALPHA,  0x0386, 
++IBUS_KEY_apostrophe, IBUS_KEY_Greek_EPSILON,  0x0388, 
++IBUS_KEY_apostrophe, IBUS_KEY_Greek_ETA,  0x0389, 
++IBUS_KEY_apostrophe, IBUS_KEY_Greek_IOTA,  0x038A, 
++IBUS_KEY_apostrophe, IBUS_KEY_Greek_OMICRON,  0x038C, 
++IBUS_KEY_apostrophe, IBUS_KEY_Greek_UPSILON,  0x038E, 
++IBUS_KEY_apostrophe, IBUS_KEY_Greek_OMEGA,  0x038F, 
++IBUS_KEY_apostrophe, IBUS_KEY_Greek_alpha,  0x03AC, 
++IBUS_KEY_apostrophe, IBUS_KEY_Greek_epsilon,  0x03AD, 
++IBUS_KEY_apostrophe, IBUS_KEY_Greek_eta,  0x03AE, 
++IBUS_KEY_apostrophe, IBUS_KEY_Greek_iota,  0x03AF, 
++IBUS_KEY_apostrophe, IBUS_KEY_Greek_omicron,  0x03CC, 
++IBUS_KEY_apostrophe, IBUS_KEY_Greek_upsilon,  0x03CD, 
++IBUS_KEY_apostrophe, IBUS_KEY_Greek_omega,  0x03CE, 
++IBUS_KEY_apostrophe, 0x1F00,  0x1F04, 
++IBUS_KEY_apostrophe, 0x1F01,  0x1F05, 
++IBUS_KEY_apostrophe, 0x1F08,  0x1F0C, 
++IBUS_KEY_apostrophe, 0x1F09,  0x1F0D, 
++IBUS_KEY_apostrophe, 0x1F10,  0x1F14, 
++IBUS_KEY_apostrophe, 0x1F11,  0x1F15, 
++IBUS_KEY_apostrophe, 0x1F18,  0x1F1C, 
++IBUS_KEY_apostrophe, 0x1F19,  0x1F1D, 
++IBUS_KEY_apostrophe, 0x1F20,  0x1F24, 
++IBUS_KEY_apostrophe, 0x1F21,  0x1F25, 
++IBUS_KEY_apostrophe, 0x1F28,  0x1F2C, 
++IBUS_KEY_apostrophe, 0x1F29,  0x1F2D, 
++IBUS_KEY_apostrophe, 0x1F30,  0x1F34, 
++IBUS_KEY_apostrophe, 0x1F31,  0x1F35, 
++IBUS_KEY_apostrophe, 0x1F38,  0x1F3C, 
++IBUS_KEY_apostrophe, 0x1F39,  0x1F3D, 
++IBUS_KEY_apostrophe, 0x1F40,  0x1F44, 
++IBUS_KEY_apostrophe, 0x1F41,  0x1F45, 
++IBUS_KEY_apostrophe, 0x1F48,  0x1F4C, 
++IBUS_KEY_apostrophe, 0x1F49,  0x1F4D, 
++IBUS_KEY_apostrophe, 0x1F50,  0x1F54, 
++IBUS_KEY_apostrophe, 0x1F51,  0x1F55, 
++IBUS_KEY_apostrophe, 0x1F59,  0x1F5D, 
++IBUS_KEY_apostrophe, 0x1F60,  0x1F64, 
++IBUS_KEY_apostrophe, 0x1F61,  0x1F65, 
++IBUS_KEY_apostrophe, 0x1F68,  0x1F6C, 
++IBUS_KEY_apostrophe, 0x1F69,  0x1F6D, 
++IBUS_KEY_apostrophe, 0x2395,  0x235E, 
++IBUS_KEY_parenleft, IBUS_KEY_space,  0x02D8, 
++IBUS_KEY_parenleft, IBUS_KEY_parenleft,  0x005B, 
++IBUS_KEY_parenleft, IBUS_KEY_minus,  0x007B, 
++IBUS_KEY_parenleft, IBUS_KEY_A,  0x0102, 
++IBUS_KEY_parenleft, IBUS_KEY_G,  0x011E, 
++IBUS_KEY_parenleft, IBUS_KEY_a,  0x0103, 
++IBUS_KEY_parenleft, IBUS_KEY_c,  0x00A9, 
++IBUS_KEY_parenleft, IBUS_KEY_g,  0x011F, 
++IBUS_KEY_parenleft, IBUS_KEY_r,  0x00AE, 
++IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA,  0x1F09, 
++IBUS_KEY_parenleft, IBUS_KEY_Greek_EPSILON,  0x1F19, 
++IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA,  0x1F29, 
++IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA,  0x1F39, 
++IBUS_KEY_parenleft, IBUS_KEY_Greek_OMICRON,  0x1F49, 
++IBUS_KEY_parenleft, IBUS_KEY_Greek_RHO,  0x1FEC, 
++IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON,  0x1F59, 
++IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA,  0x1F69, 
++IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha,  0x1F01, 
++IBUS_KEY_parenleft, IBUS_KEY_Greek_epsilon,  0x1F11, 
++IBUS_KEY_parenleft, IBUS_KEY_Greek_eta,  0x1F21, 
++IBUS_KEY_parenleft, IBUS_KEY_Greek_iota,  0x1F31, 
++IBUS_KEY_parenleft, IBUS_KEY_Greek_omicron,  0x1F41, 
++IBUS_KEY_parenleft, IBUS_KEY_Greek_rho,  0x1FE5, 
++IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon,  0x1F51, 
++IBUS_KEY_parenleft, IBUS_KEY_Greek_omega,  0x1F61, 
++IBUS_KEY_parenright, IBUS_KEY_parenright,  0x005D, 
++IBUS_KEY_parenright, IBUS_KEY_minus,  0x007D, 
++IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA,  0x1F08, 
++IBUS_KEY_parenright, IBUS_KEY_Greek_EPSILON,  0x1F18, 
++IBUS_KEY_parenright, IBUS_KEY_Greek_ETA,  0x1F28, 
++IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA,  0x1F38, 
++IBUS_KEY_parenright, IBUS_KEY_Greek_OMICRON,  0x1F48, 
++IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA,  0x1F68, 
++IBUS_KEY_parenright, IBUS_KEY_Greek_alpha,  0x1F00, 
++IBUS_KEY_parenright, IBUS_KEY_Greek_epsilon,  0x1F10, 
++IBUS_KEY_parenright, IBUS_KEY_Greek_eta,  0x1F20, 
++IBUS_KEY_parenright, IBUS_KEY_Greek_iota,  0x1F30, 
++IBUS_KEY_parenright, IBUS_KEY_Greek_omicron,  0x1F40, 
++IBUS_KEY_parenright, IBUS_KEY_Greek_rho,  0x1FE4, 
++IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon,  0x1F50, 
++IBUS_KEY_parenright, IBUS_KEY_Greek_omega,  0x1F60, 
++IBUS_KEY_asterisk, IBUS_KEY_0,  0x00B0, 
++IBUS_KEY_asterisk, IBUS_KEY_A,  0x00C5, 
++IBUS_KEY_asterisk, IBUS_KEY_U,  0x016E, 
++IBUS_KEY_asterisk, IBUS_KEY_a,  0x00E5, 
++IBUS_KEY_asterisk, IBUS_KEY_u,  0x016F, 
++IBUS_KEY_asterisk, IBUS_KEY_diaeresis,  0x2363, 
++IBUS_KEY_asterisk, IBUS_KEY_emopencircle,  0x235F, 
++IBUS_KEY_plus, IBUS_KEY_plus,  0x0023, 
++IBUS_KEY_plus, IBUS_KEY_minus,  0x00B1, 
++IBUS_KEY_plus, IBUS_KEY_O,  0x01A0, 
++IBUS_KEY_plus, IBUS_KEY_U,  0x01AF, 
++IBUS_KEY_plus, IBUS_KEY_o,  0x01A1, 
++IBUS_KEY_plus, IBUS_KEY_u,  0x01B0, 
++IBUS_KEY_comma, IBUS_KEY_space,  0x00B8, 
++IBUS_KEY_comma, IBUS_KEY_quotedbl,  0x201E, 
++IBUS_KEY_comma, IBUS_KEY_apostrophe,  0x201A, 
++IBUS_KEY_comma, IBUS_KEY_comma,  0x00B8, 
++IBUS_KEY_comma, IBUS_KEY_minus,  0x00AC, 
++IBUS_KEY_comma, IBUS_KEY_A,  0x0104, 
++IBUS_KEY_comma, IBUS_KEY_C,  0x00C7, 
++IBUS_KEY_comma, IBUS_KEY_D,  0x1E10, 
++IBUS_KEY_comma, IBUS_KEY_E,  0x0118, 
++IBUS_KEY_comma, IBUS_KEY_G,  0x0122, 
++IBUS_KEY_comma, IBUS_KEY_H,  0x1E28, 
++IBUS_KEY_comma, IBUS_KEY_I,  0x012E, 
++IBUS_KEY_comma, IBUS_KEY_K,  0x0136, 
++IBUS_KEY_comma, IBUS_KEY_L,  0x013B, 
++IBUS_KEY_comma, IBUS_KEY_N,  0x0145, 
++IBUS_KEY_comma, IBUS_KEY_O,  0x01EA, 
++IBUS_KEY_comma, IBUS_KEY_R,  0x0156, 
++IBUS_KEY_comma, IBUS_KEY_S,  0x015E, 
++IBUS_KEY_comma, IBUS_KEY_T,  0x0162, 
++IBUS_KEY_comma, IBUS_KEY_U,  0x0172, 
++IBUS_KEY_comma, IBUS_KEY_a,  0x0105, 
++IBUS_KEY_comma, IBUS_KEY_c,  0x00E7, 
++IBUS_KEY_comma, IBUS_KEY_d,  0x1E11, 
++IBUS_KEY_comma, IBUS_KEY_e,  0x0119, 
++IBUS_KEY_comma, IBUS_KEY_g,  0x0123, 
++IBUS_KEY_comma, IBUS_KEY_h,  0x1E29, 
++IBUS_KEY_comma, IBUS_KEY_i,  0x012F, 
++IBUS_KEY_comma, IBUS_KEY_k,  0x0137, 
++IBUS_KEY_comma, IBUS_KEY_l,  0x013C, 
++IBUS_KEY_comma, IBUS_KEY_n,  0x0146, 
++IBUS_KEY_comma, IBUS_KEY_o,  0x01EB, 
++IBUS_KEY_comma, IBUS_KEY_r,  0x0157, 
++IBUS_KEY_comma, IBUS_KEY_s,  0x015F, 
++IBUS_KEY_comma, IBUS_KEY_t,  0x0163, 
++IBUS_KEY_comma, IBUS_KEY_u,  0x0173, 
++IBUS_KEY_minus, IBUS_KEY_space,  0x007E, 
++IBUS_KEY_minus, IBUS_KEY_parenleft,  0x007B, 
++IBUS_KEY_minus, IBUS_KEY_parenright,  0x007D, 
++IBUS_KEY_minus, IBUS_KEY_plus,  0x00B1, 
++IBUS_KEY_minus, IBUS_KEY_comma,  0x00AC, 
++IBUS_KEY_minus, IBUS_KEY_slash,  0x233F, 
++IBUS_KEY_minus, IBUS_KEY_colon,  0x00F7, 
++IBUS_KEY_minus, IBUS_KEY_greater,  0x2192, 
++IBUS_KEY_minus, IBUS_KEY_A,  0x0100, 
++IBUS_KEY_minus, IBUS_KEY_D,  0x0110, 
++IBUS_KEY_minus, IBUS_KEY_E,  0x0112, 
++IBUS_KEY_minus, IBUS_KEY_I,  0x012A, 
++IBUS_KEY_minus, IBUS_KEY_L,  0x00A3, 
++IBUS_KEY_minus, IBUS_KEY_N,  0x00D1, 
++IBUS_KEY_minus, IBUS_KEY_O,  0x014C, 
++IBUS_KEY_minus, IBUS_KEY_U,  0x016A, 
++IBUS_KEY_minus, IBUS_KEY_Y,  0x00A5, 
++IBUS_KEY_minus, IBUS_KEY_backslash,  0x2340, 
++IBUS_KEY_minus, IBUS_KEY_asciicircum,  0x00AF, 
++IBUS_KEY_minus, IBUS_KEY_a,  0x0101, 
++IBUS_KEY_minus, IBUS_KEY_d,  0x0111, 
++IBUS_KEY_minus, IBUS_KEY_e,  0x0113, 
++IBUS_KEY_minus, IBUS_KEY_i,  0x012B, 
++IBUS_KEY_minus, IBUS_KEY_l,  0x00A3, 
++IBUS_KEY_minus, IBUS_KEY_n,  0x00F1, 
++IBUS_KEY_minus, IBUS_KEY_o,  0x014D, 
++IBUS_KEY_minus, IBUS_KEY_u,  0x016B, 
++IBUS_KEY_minus, IBUS_KEY_y,  0x00A5, 
++IBUS_KEY_minus, 0x2191,  0x234F, 
++IBUS_KEY_minus, 0x2193,  0x2356, 
++IBUS_KEY_minus, IBUS_KEY_emopencircle,  0x2296, 
++IBUS_KEY_period, IBUS_KEY_minus,  0x00B7, 
++IBUS_KEY_period, IBUS_KEY_period,  0x2026, 
++IBUS_KEY_period, IBUS_KEY_colon,  0x2235, 
++IBUS_KEY_period, IBUS_KEY_less,  0x2039, 
++IBUS_KEY_period, IBUS_KEY_equal,  0x2022, 
++IBUS_KEY_period, IBUS_KEY_greater,  0x203A, 
++IBUS_KEY_period, IBUS_KEY_A,  0x0226, 
++IBUS_KEY_period, IBUS_KEY_B,  0x1E02, 
++IBUS_KEY_period, IBUS_KEY_C,  0x010A, 
++IBUS_KEY_period, IBUS_KEY_D,  0x1E0A, 
++IBUS_KEY_period, IBUS_KEY_E,  0x0116, 
++IBUS_KEY_period, IBUS_KEY_F,  0x1E1E, 
++IBUS_KEY_period, IBUS_KEY_G,  0x0120, 
++IBUS_KEY_period, IBUS_KEY_H,  0x1E22, 
++IBUS_KEY_period, IBUS_KEY_I,  0x0130, 
++IBUS_KEY_period, IBUS_KEY_M,  0x1E40, 
++IBUS_KEY_period, IBUS_KEY_N,  0x1E44, 
++IBUS_KEY_period, IBUS_KEY_O,  0x022E, 
++IBUS_KEY_period, IBUS_KEY_P,  0x1E56, 
++IBUS_KEY_period, IBUS_KEY_R,  0x1E58, 
++IBUS_KEY_period, IBUS_KEY_S,  0x1E60, 
++IBUS_KEY_period, IBUS_KEY_T,  0x1E6A, 
++IBUS_KEY_period, IBUS_KEY_W,  0x1E86, 
++IBUS_KEY_period, IBUS_KEY_X,  0x1E8A, 
++IBUS_KEY_period, IBUS_KEY_Y,  0x1E8E, 
++IBUS_KEY_period, IBUS_KEY_Z,  0x017B, 
++IBUS_KEY_period, IBUS_KEY_asciicircum,  0x00B7, 
++IBUS_KEY_period, IBUS_KEY_a,  0x0227, 
++IBUS_KEY_period, IBUS_KEY_b,  0x1E03, 
++IBUS_KEY_period, IBUS_KEY_c,  0x010B, 
++IBUS_KEY_period, IBUS_KEY_d,  0x1E0B, 
++IBUS_KEY_period, IBUS_KEY_e,  0x0117, 
++IBUS_KEY_period, IBUS_KEY_f,  0x1E1F, 
++IBUS_KEY_period, IBUS_KEY_g,  0x0121, 
++IBUS_KEY_period, IBUS_KEY_h,  0x1E23, 
++IBUS_KEY_period, IBUS_KEY_i,  0x0131, 
++IBUS_KEY_period, IBUS_KEY_m,  0x1E41, 
++IBUS_KEY_period, IBUS_KEY_n,  0x1E45, 
++IBUS_KEY_period, IBUS_KEY_o,  0x022F, 
++IBUS_KEY_period, IBUS_KEY_p,  0x1E57, 
++IBUS_KEY_period, IBUS_KEY_r,  0x1E59, 
++IBUS_KEY_period, IBUS_KEY_s,  0x1E61, 
++IBUS_KEY_period, IBUS_KEY_t,  0x1E6B, 
++IBUS_KEY_period, IBUS_KEY_w,  0x1E87, 
++IBUS_KEY_period, IBUS_KEY_x,  0x1E8B, 
++IBUS_KEY_period, IBUS_KEY_y,  0x1E8F, 
++IBUS_KEY_period, IBUS_KEY_z,  0x017C, 
++IBUS_KEY_period, 0x017F,  0x1E9B, 
++IBUS_KEY_period, IBUS_KEY_Sacute,  0x1E64, 
++IBUS_KEY_period, IBUS_KEY_Scaron,  0x1E66, 
++IBUS_KEY_period, IBUS_KEY_sacute,  0x1E65, 
++IBUS_KEY_period, IBUS_KEY_scaron,  0x1E67, 
++IBUS_KEY_period, 0x1E62,  0x1E68, 
++IBUS_KEY_period, 0x1E63,  0x1E69, 
++IBUS_KEY_period, IBUS_KEY_emopencircle,  0x2299, 
++IBUS_KEY_slash, IBUS_KEY_minus,  0x233F, 
++IBUS_KEY_slash, IBUS_KEY_slash,  0x005C, 
++IBUS_KEY_slash, IBUS_KEY_less,  0x005C, 
++IBUS_KEY_slash, IBUS_KEY_equal,  0x2260, 
++IBUS_KEY_slash, IBUS_KEY_C,  0x20A1, 
++IBUS_KEY_slash, IBUS_KEY_D,  0x0110, 
++IBUS_KEY_slash, IBUS_KEY_G,  0x01E4, 
++IBUS_KEY_slash, IBUS_KEY_H,  0x0126, 
++IBUS_KEY_slash, IBUS_KEY_I,  0x0197, 
++IBUS_KEY_slash, IBUS_KEY_L,  0x0141, 
++IBUS_KEY_slash, IBUS_KEY_O,  0x00D8, 
++IBUS_KEY_slash, IBUS_KEY_T,  0x0166, 
++IBUS_KEY_slash, IBUS_KEY_U,  0x00B5, 
++IBUS_KEY_slash, IBUS_KEY_Z,  0x01B5, 
++IBUS_KEY_slash, IBUS_KEY_asciicircum,  0x007C, 
++IBUS_KEY_slash, IBUS_KEY_b,  0x0180, 
++IBUS_KEY_slash, IBUS_KEY_c,  0x00A2, 
++IBUS_KEY_slash, IBUS_KEY_d,  0x0111, 
++IBUS_KEY_slash, IBUS_KEY_g,  0x01E5, 
++IBUS_KEY_slash, IBUS_KEY_h,  0x0127, 
++IBUS_KEY_slash, IBUS_KEY_i,  0x0268, 
++IBUS_KEY_slash, IBUS_KEY_l,  0x0142, 
++IBUS_KEY_slash, IBUS_KEY_m,  0x20A5, 
++IBUS_KEY_slash, IBUS_KEY_o,  0x00F8, 
++IBUS_KEY_slash, IBUS_KEY_t,  0x0167, 
++IBUS_KEY_slash, IBUS_KEY_u,  0x00B5, 
++IBUS_KEY_slash, IBUS_KEY_v,  0x221A, 
++IBUS_KEY_slash, IBUS_KEY_z,  0x01B6, 
++IBUS_KEY_slash, 0x0294,  0x02A1, 
++IBUS_KEY_slash, 0x04AE,  0x04B0, 
++IBUS_KEY_slash, 0x04AF,  0x04B1, 
++IBUS_KEY_slash, IBUS_KEY_Cyrillic_ghe,  0x0493, 
++IBUS_KEY_slash, IBUS_KEY_Cyrillic_ka,  0x049F, 
++IBUS_KEY_slash, IBUS_KEY_Cyrillic_GHE,  0x0492, 
++IBUS_KEY_slash, IBUS_KEY_Cyrillic_KA,  0x049E, 
++IBUS_KEY_slash, IBUS_KEY_leftarrow,  0x219A, 
++IBUS_KEY_slash, IBUS_KEY_rightarrow,  0x219B, 
++IBUS_KEY_slash, 0x2194,  0x21AE, 
++IBUS_KEY_slash, 0x2395,  0x2341, 
++IBUS_KEY_0, IBUS_KEY_asterisk,  0x00B0, 
++IBUS_KEY_0, IBUS_KEY_3,  0x2189, 
++IBUS_KEY_0, IBUS_KEY_C,  0x00A9, 
++IBUS_KEY_0, IBUS_KEY_S,  0x00A7, 
++IBUS_KEY_0, IBUS_KEY_X,  0x00A4, 
++IBUS_KEY_0, IBUS_KEY_asciicircum,  0x00B0, 
++IBUS_KEY_0, IBUS_KEY_c,  0x00A9, 
++IBUS_KEY_0, IBUS_KEY_s,  0x00A7, 
++IBUS_KEY_0, IBUS_KEY_x,  0x00A4, 
++IBUS_KEY_0, IBUS_KEY_asciitilde,  0x236C, 
++IBUS_KEY_1, IBUS_KEY_2,  0x00BD, 
++IBUS_KEY_1, IBUS_KEY_3,  0x2153, 
++IBUS_KEY_1, IBUS_KEY_4,  0x00BC, 
++IBUS_KEY_1, IBUS_KEY_5,  0x2155, 
++IBUS_KEY_1, IBUS_KEY_6,  0x2159, 
++IBUS_KEY_1, IBUS_KEY_7,  0x2150, 
++IBUS_KEY_1, IBUS_KEY_8,  0x215B, 
++IBUS_KEY_1, IBUS_KEY_9,  0x2151, 
++IBUS_KEY_1, IBUS_KEY_S,  0x00B9, 
++IBUS_KEY_1, IBUS_KEY_asciicircum,  0x00B9, 
++IBUS_KEY_1, IBUS_KEY_s,  0x00B9, 
++IBUS_KEY_2, IBUS_KEY_3,  0x2154, 
++IBUS_KEY_2, IBUS_KEY_5,  0x2156, 
++IBUS_KEY_2, IBUS_KEY_S,  0x00B2, 
++IBUS_KEY_2, IBUS_KEY_asciicircum,  0x00B2, 
++IBUS_KEY_2, IBUS_KEY_s,  0x00B2, 
++IBUS_KEY_3, IBUS_KEY_4,  0x00BE, 
++IBUS_KEY_3, IBUS_KEY_5,  0x2157, 
++IBUS_KEY_3, IBUS_KEY_8,  0x215C, 
++IBUS_KEY_3, IBUS_KEY_S,  0x00B3, 
++IBUS_KEY_3, IBUS_KEY_asciicircum,  0x00B3, 
++IBUS_KEY_3, IBUS_KEY_s,  0x00B3, 
++IBUS_KEY_4, IBUS_KEY_5,  0x2158, 
++IBUS_KEY_5, IBUS_KEY_6,  0x215A, 
++IBUS_KEY_5, IBUS_KEY_8,  0x215D, 
++IBUS_KEY_7, IBUS_KEY_8,  0x215E, 
++IBUS_KEY_8, IBUS_KEY_8,  0x221E, 
++IBUS_KEY_colon, IBUS_KEY_parenleft,  0x2639, 
++IBUS_KEY_colon, IBUS_KEY_parenright,  0x263A, 
++IBUS_KEY_colon, IBUS_KEY_minus,  0x00F7, 
++IBUS_KEY_colon, IBUS_KEY_period,  0x2234, 
++IBUS_KEY_colon, 0x2395,  0x2360, 
++IBUS_KEY_semicolon, IBUS_KEY_A,  0x0104, 
++IBUS_KEY_semicolon, IBUS_KEY_E,  0x0118, 
++IBUS_KEY_semicolon, IBUS_KEY_I,  0x012E, 
++IBUS_KEY_semicolon, IBUS_KEY_O,  0x01EA, 
++IBUS_KEY_semicolon, IBUS_KEY_S,  0x0218, 
++IBUS_KEY_semicolon, IBUS_KEY_T,  0x021A, 
++IBUS_KEY_semicolon, IBUS_KEY_U,  0x0172, 
++IBUS_KEY_semicolon, IBUS_KEY_underscore,  0x236E, 
++IBUS_KEY_semicolon, IBUS_KEY_a,  0x0105, 
++IBUS_KEY_semicolon, IBUS_KEY_e,  0x0119, 
++IBUS_KEY_semicolon, IBUS_KEY_i,  0x012F, 
++IBUS_KEY_semicolon, IBUS_KEY_o,  0x01EB, 
++IBUS_KEY_semicolon, IBUS_KEY_s,  0x0219, 
++IBUS_KEY_semicolon, IBUS_KEY_t,  0x021B, 
++IBUS_KEY_semicolon, IBUS_KEY_u,  0x0173, 
++IBUS_KEY_less, IBUS_KEY_space,  0x02C7, 
++IBUS_KEY_less, IBUS_KEY_quotedbl,  0x201C, 
++IBUS_KEY_less, IBUS_KEY_apostrophe,  0x2018, 
++IBUS_KEY_less, IBUS_KEY_minus,  0x2190, 
++IBUS_KEY_less, IBUS_KEY_slash,  0x005C, 
++IBUS_KEY_less, IBUS_KEY_3,  0x2665, 
++IBUS_KEY_less, IBUS_KEY_less,  0x00AB, 
++IBUS_KEY_less, IBUS_KEY_equal,  0x2264, 
++IBUS_KEY_less, IBUS_KEY_greater,  0x22C4, 
++IBUS_KEY_less, IBUS_KEY_C,  0x010C, 
++IBUS_KEY_less, IBUS_KEY_D,  0x010E, 
++IBUS_KEY_less, IBUS_KEY_E,  0x011A, 
++IBUS_KEY_less, IBUS_KEY_L,  0x013D, 
++IBUS_KEY_less, IBUS_KEY_N,  0x0147, 
++IBUS_KEY_less, IBUS_KEY_R,  0x0158, 
++IBUS_KEY_less, IBUS_KEY_S,  0x0160, 
++IBUS_KEY_less, IBUS_KEY_T,  0x0164, 
++IBUS_KEY_less, IBUS_KEY_Z,  0x017D, 
++IBUS_KEY_less, IBUS_KEY_underscore,  0x2264, 
++IBUS_KEY_less, IBUS_KEY_c,  0x010D, 
++IBUS_KEY_less, IBUS_KEY_d,  0x010F, 
++IBUS_KEY_less, IBUS_KEY_e,  0x011B, 
++IBUS_KEY_less, IBUS_KEY_l,  0x013E, 
++IBUS_KEY_less, IBUS_KEY_n,  0x0148, 
++IBUS_KEY_less, IBUS_KEY_r,  0x0159, 
++IBUS_KEY_less, IBUS_KEY_s,  0x0161, 
++IBUS_KEY_less, IBUS_KEY_t,  0x0165, 
++IBUS_KEY_less, IBUS_KEY_z,  0x017E, 
++IBUS_KEY_less, 0x0338,  0x226E, 
++IBUS_KEY_less, 0x2395,  0x2343, 
++IBUS_KEY_equal, IBUS_KEY_slash,  0x2260, 
++IBUS_KEY_equal, IBUS_KEY_greater,  0x21D2, 
++IBUS_KEY_equal, IBUS_KEY_C,  0x20AC, 
++IBUS_KEY_equal, IBUS_KEY_E,  0x20AC, 
++IBUS_KEY_equal, IBUS_KEY_L,  0x20A4, 
++IBUS_KEY_equal, IBUS_KEY_N,  0x20A6, 
++IBUS_KEY_equal, IBUS_KEY_O,  0x0150, 
++IBUS_KEY_equal, IBUS_KEY_R,  0x20B9, 
++IBUS_KEY_equal, IBUS_KEY_U,  0x0170, 
++IBUS_KEY_equal, IBUS_KEY_W,  0x20A9, 
++IBUS_KEY_equal, IBUS_KEY_Y,  0x00A5, 
++IBUS_KEY_equal, IBUS_KEY_underscore,  0x2261, 
++IBUS_KEY_equal, IBUS_KEY_c,  0x20AC, 
++IBUS_KEY_equal, IBUS_KEY_d,  0x20AB, 
++IBUS_KEY_equal, IBUS_KEY_e,  0x20AC, 
++IBUS_KEY_equal, IBUS_KEY_l,  0x00A3, 
++IBUS_KEY_equal, IBUS_KEY_o,  0x0151, 
++IBUS_KEY_equal, IBUS_KEY_r,  0x20B9, 
++IBUS_KEY_equal, IBUS_KEY_u,  0x0171, 
++IBUS_KEY_equal, IBUS_KEY_y,  0x00A5, 
++IBUS_KEY_equal, 0x0338,  0x2260, 
++IBUS_KEY_equal, IBUS_KEY_Cyrillic_u,  0x04F3, 
++IBUS_KEY_equal, IBUS_KEY_Cyrillic_IE,  0x20AC, 
++IBUS_KEY_equal, IBUS_KEY_Cyrillic_ES,  0x20AC, 
++IBUS_KEY_equal, IBUS_KEY_Cyrillic_U,  0x04F2, 
++IBUS_KEY_equal, 0x2395,  0x2338, 
++IBUS_KEY_greater, IBUS_KEY_space,  0x005E, 
++IBUS_KEY_greater, IBUS_KEY_quotedbl,  0x201D, 
++IBUS_KEY_greater, IBUS_KEY_apostrophe,  0x2019, 
++IBUS_KEY_greater, IBUS_KEY_less,  0x22C4, 
++IBUS_KEY_greater, IBUS_KEY_equal,  0x2265, 
++IBUS_KEY_greater, IBUS_KEY_greater,  0x00BB, 
++IBUS_KEY_greater, IBUS_KEY_A,  0x00C2, 
++IBUS_KEY_greater, IBUS_KEY_E,  0x00CA, 
++IBUS_KEY_greater, IBUS_KEY_I,  0x00CE, 
++IBUS_KEY_greater, IBUS_KEY_O,  0x00D4, 
++IBUS_KEY_greater, IBUS_KEY_U,  0x00DB, 
++IBUS_KEY_greater, IBUS_KEY_underscore,  0x2265, 
++IBUS_KEY_greater, IBUS_KEY_a,  0x00E2, 
++IBUS_KEY_greater, IBUS_KEY_e,  0x00EA, 
++IBUS_KEY_greater, IBUS_KEY_i,  0x00EE, 
++IBUS_KEY_greater, IBUS_KEY_o,  0x00F4, 
++IBUS_KEY_greater, IBUS_KEY_u,  0x00FB, 
++IBUS_KEY_greater, IBUS_KEY_diaeresis,  0x2369, 
++IBUS_KEY_greater, 0x0338,  0x226F, 
++IBUS_KEY_greater, 0x2395,  0x2344, 
++IBUS_KEY_question, IBUS_KEY_exclam,  0x2E18, 
++IBUS_KEY_question, IBUS_KEY_question,  0x00BF, 
++IBUS_KEY_question, IBUS_KEY_A,  0x1EA2, 
++IBUS_KEY_question, IBUS_KEY_E,  0x1EBA, 
++IBUS_KEY_question, IBUS_KEY_I,  0x1EC8, 
++IBUS_KEY_question, IBUS_KEY_O,  0x1ECE, 
++IBUS_KEY_question, IBUS_KEY_U,  0x1EE6, 
++IBUS_KEY_question, IBUS_KEY_Y,  0x1EF6, 
++IBUS_KEY_question, IBUS_KEY_a,  0x1EA3, 
++IBUS_KEY_question, IBUS_KEY_e,  0x1EBB, 
++IBUS_KEY_question, IBUS_KEY_i,  0x1EC9, 
++IBUS_KEY_question, IBUS_KEY_o,  0x1ECF, 
++IBUS_KEY_question, IBUS_KEY_u,  0x1EE7, 
++IBUS_KEY_question, IBUS_KEY_y,  0x1EF7, 
++IBUS_KEY_question, IBUS_KEY_Acircumflex,  0x1EA8, 
++IBUS_KEY_question, IBUS_KEY_Ecircumflex,  0x1EC2, 
++IBUS_KEY_question, IBUS_KEY_Ocircumflex,  0x1ED4, 
++IBUS_KEY_question, IBUS_KEY_acircumflex,  0x1EA9, 
++IBUS_KEY_question, IBUS_KEY_ecircumflex,  0x1EC3, 
++IBUS_KEY_question, IBUS_KEY_ocircumflex,  0x1ED5, 
++IBUS_KEY_question, IBUS_KEY_Abreve,  0x1EB2, 
++IBUS_KEY_question, IBUS_KEY_abreve,  0x1EB3, 
++IBUS_KEY_question, 0x2395,  0x2370, 
++IBUS_KEY_A, IBUS_KEY_quotedbl,  0x00C4, 
++IBUS_KEY_A, IBUS_KEY_apostrophe,  0x00C1, 
++IBUS_KEY_A, IBUS_KEY_parenleft,  0x0102, 
++IBUS_KEY_A, IBUS_KEY_asterisk,  0x00C5, 
++IBUS_KEY_A, IBUS_KEY_comma,  0x0104, 
++IBUS_KEY_A, IBUS_KEY_minus,  0x0100, 
++IBUS_KEY_A, IBUS_KEY_semicolon,  0x0104, 
++IBUS_KEY_A, IBUS_KEY_greater,  0x00C2, 
++IBUS_KEY_A, IBUS_KEY_A,  0x00C5, 
++IBUS_KEY_A, IBUS_KEY_E,  0x00C6, 
++IBUS_KEY_A, IBUS_KEY_T,  0x0040, 
++IBUS_KEY_A, IBUS_KEY_asciicircum,  0x00C2, 
++IBUS_KEY_A, IBUS_KEY_underscore,  0x0100, 
++IBUS_KEY_A, IBUS_KEY_grave,  0x00C0, 
++IBUS_KEY_A, IBUS_KEY_asciitilde,  0x00C3, 
++IBUS_KEY_A, IBUS_KEY_diaeresis,  0x00C4, 
++IBUS_KEY_A, IBUS_KEY_acute,  0x00C1, 
++IBUS_KEY_B, IBUS_KEY_period,  0x1E02, 
++IBUS_KEY_C, IBUS_KEY_apostrophe,  0x0106, 
++IBUS_KEY_C, IBUS_KEY_comma,  0x00C7, 
++IBUS_KEY_C, IBUS_KEY_period,  0x010A, 
++IBUS_KEY_C, IBUS_KEY_slash,  0x20A1, 
++IBUS_KEY_C, IBUS_KEY_0,  0x00A9, 
++IBUS_KEY_C, IBUS_KEY_less,  0x010C, 
++IBUS_KEY_C, IBUS_KEY_equal,  0x20AC, 
++IBUS_KEY_C, IBUS_KEY_E,  0x20A0, 
++IBUS_KEY_C, IBUS_KEY_O,  0x00A9, 
++IBUS_KEY_C, IBUS_KEY_o,  0x00A9, 
++IBUS_KEY_C, IBUS_KEY_r,  0x20A2, 
++IBUS_KEY_C, IBUS_KEY_bar,  0x00A2, 
++IBUS_KEY_D, IBUS_KEY_comma,  0x1E10, 
++IBUS_KEY_D, IBUS_KEY_minus,  0x0110, 
++IBUS_KEY_D, IBUS_KEY_period,  0x1E0A, 
++IBUS_KEY_D, IBUS_KEY_less,  0x010E, 
++IBUS_KEY_D, IBUS_KEY_H,  0x00D0, 
++IBUS_KEY_E, IBUS_KEY_quotedbl,  0x00CB, 
++IBUS_KEY_E, IBUS_KEY_apostrophe,  0x00C9, 
++IBUS_KEY_E, IBUS_KEY_comma,  0x0118, 
++IBUS_KEY_E, IBUS_KEY_minus,  0x0112, 
++IBUS_KEY_E, IBUS_KEY_period,  0x0116, 
++IBUS_KEY_E, IBUS_KEY_semicolon,  0x0118, 
++IBUS_KEY_E, IBUS_KEY_less,  0x011A, 
++IBUS_KEY_E, IBUS_KEY_equal,  0x20AC, 
++IBUS_KEY_E, IBUS_KEY_greater,  0x00CA, 
++IBUS_KEY_E, IBUS_KEY_asciicircum,  0x00CA, 
++IBUS_KEY_E, IBUS_KEY_underscore,  0x0112, 
++IBUS_KEY_E, IBUS_KEY_grave,  0x00C8, 
++IBUS_KEY_E, IBUS_KEY_diaeresis,  0x00CB, 
++IBUS_KEY_E, IBUS_KEY_acute,  0x00C9, 
++IBUS_KEY_F, IBUS_KEY_period,  0x1E1E, 
++IBUS_KEY_F, IBUS_KEY_i,  0xFB03, 
++IBUS_KEY_F, IBUS_KEY_l,  0xFB04, 
++IBUS_KEY_F, IBUS_KEY_r,  0x20A3, 
++IBUS_KEY_G, IBUS_KEY_parenleft,  0x011E, 
++IBUS_KEY_G, IBUS_KEY_comma,  0x0122, 
++IBUS_KEY_G, IBUS_KEY_period,  0x0120, 
++IBUS_KEY_G, IBUS_KEY_U,  0x011E, 
++IBUS_KEY_G, IBUS_KEY_breve,  0x011E, 
++IBUS_KEY_H, IBUS_KEY_comma,  0x1E28, 
++IBUS_KEY_I, IBUS_KEY_quotedbl,  0x00CF, 
++IBUS_KEY_I, IBUS_KEY_apostrophe,  0x00CD, 
++IBUS_KEY_I, IBUS_KEY_comma,  0x012E, 
++IBUS_KEY_I, IBUS_KEY_minus,  0x012A, 
++IBUS_KEY_I, IBUS_KEY_period,  0x0130, 
++IBUS_KEY_I, IBUS_KEY_semicolon,  0x012E, 
++IBUS_KEY_I, IBUS_KEY_greater,  0x00CE, 
++IBUS_KEY_I, IBUS_KEY_J,  0x0132, 
++IBUS_KEY_I, IBUS_KEY_asciicircum,  0x00CE, 
++IBUS_KEY_I, IBUS_KEY_underscore,  0x012A, 
++IBUS_KEY_I, IBUS_KEY_grave,  0x00CC, 
++IBUS_KEY_I, IBUS_KEY_j,  0x0132, 
++IBUS_KEY_I, IBUS_KEY_asciitilde,  0x0128, 
++IBUS_KEY_I, IBUS_KEY_diaeresis,  0x00CF, 
++IBUS_KEY_I, IBUS_KEY_acute,  0x00CD, 
++IBUS_KEY_K, IBUS_KEY_comma,  0x0136, 
++IBUS_KEY_L, IBUS_KEY_apostrophe,  0x0139, 
++IBUS_KEY_L, IBUS_KEY_comma,  0x013B, 
++IBUS_KEY_L, IBUS_KEY_minus,  0x00A3, 
++IBUS_KEY_L, IBUS_KEY_slash,  0x0141, 
++IBUS_KEY_L, IBUS_KEY_less,  0x013D, 
++IBUS_KEY_L, IBUS_KEY_equal,  0x20A4, 
++IBUS_KEY_L, IBUS_KEY_V,  0x007C, 
++IBUS_KEY_M, IBUS_KEY_period,  0x1E40, 
++IBUS_KEY_N, IBUS_KEY_apostrophe,  0x0143, 
++IBUS_KEY_N, IBUS_KEY_comma,  0x0145, 
++IBUS_KEY_N, IBUS_KEY_minus,  0x00D1, 
++IBUS_KEY_N, IBUS_KEY_less,  0x0147, 
++IBUS_KEY_N, IBUS_KEY_equal,  0x20A6, 
++IBUS_KEY_N, IBUS_KEY_G,  0x014A, 
++IBUS_KEY_N, IBUS_KEY_O,  0x2116, 
++IBUS_KEY_N, IBUS_KEY_o,  0x2116, 
++IBUS_KEY_N, IBUS_KEY_asciitilde,  0x00D1, 
++IBUS_KEY_O, IBUS_KEY_quotedbl,  0x00D6, 
++IBUS_KEY_O, IBUS_KEY_apostrophe,  0x00D3, 
++IBUS_KEY_O, IBUS_KEY_comma,  0x01EA, 
++IBUS_KEY_O, IBUS_KEY_minus,  0x014C, 
++IBUS_KEY_O, IBUS_KEY_slash,  0x00D8, 
++IBUS_KEY_O, IBUS_KEY_semicolon,  0x01EA, 
++IBUS_KEY_O, IBUS_KEY_greater,  0x00D4, 
++IBUS_KEY_O, IBUS_KEY_A,  0x24B6, 
++IBUS_KEY_O, IBUS_KEY_C,  0x00A9, 
++IBUS_KEY_O, IBUS_KEY_E,  0x0152, 
++IBUS_KEY_O, IBUS_KEY_R,  0x00AE, 
++IBUS_KEY_O, IBUS_KEY_S,  0x00A7, 
++IBUS_KEY_O, IBUS_KEY_X,  0x00A4, 
++IBUS_KEY_O, IBUS_KEY_asciicircum,  0x00D4, 
++IBUS_KEY_O, IBUS_KEY_underscore,  0x014C, 
++IBUS_KEY_O, IBUS_KEY_grave,  0x00D2, 
++IBUS_KEY_O, IBUS_KEY_c,  0x00A9, 
++IBUS_KEY_O, IBUS_KEY_r,  0x00AE, 
++IBUS_KEY_O, IBUS_KEY_x,  0x00A4, 
++IBUS_KEY_O, IBUS_KEY_asciitilde,  0x00D5, 
++IBUS_KEY_O, IBUS_KEY_diaeresis,  0x00D6, 
++IBUS_KEY_O, IBUS_KEY_acute,  0x00D3, 
++IBUS_KEY_P, IBUS_KEY_exclam,  0x00B6, 
++IBUS_KEY_P, IBUS_KEY_period,  0x1E56, 
++IBUS_KEY_P, IBUS_KEY_P,  0x00B6, 
++IBUS_KEY_P, IBUS_KEY_t,  0x20A7, 
++IBUS_KEY_R, IBUS_KEY_apostrophe,  0x0154, 
++IBUS_KEY_R, IBUS_KEY_comma,  0x0156, 
++IBUS_KEY_R, IBUS_KEY_less,  0x0158, 
++IBUS_KEY_R, IBUS_KEY_equal,  0x20B9, 
++IBUS_KEY_R, IBUS_KEY_O,  0x00AE, 
++IBUS_KEY_R, IBUS_KEY_o,  0x00AE, 
++IBUS_KEY_R, IBUS_KEY_s,  0x20A8, 
++IBUS_KEY_S, IBUS_KEY_exclam,  0x00A7, 
++IBUS_KEY_S, IBUS_KEY_apostrophe,  0x015A, 
++IBUS_KEY_S, IBUS_KEY_comma,  0x015E, 
++IBUS_KEY_S, IBUS_KEY_period,  0x1E60, 
++IBUS_KEY_S, IBUS_KEY_0,  0x00A7, 
++IBUS_KEY_S, IBUS_KEY_1,  0x00B9, 
++IBUS_KEY_S, IBUS_KEY_2,  0x00B2, 
++IBUS_KEY_S, IBUS_KEY_3,  0x00B3, 
++IBUS_KEY_S, IBUS_KEY_semicolon,  0x0218, 
++IBUS_KEY_S, IBUS_KEY_less,  0x0160, 
++IBUS_KEY_S, IBUS_KEY_M,  0x2120, 
++IBUS_KEY_S, IBUS_KEY_O,  0x00A7, 
++IBUS_KEY_S, IBUS_KEY_S,  0x1E9E, 
++IBUS_KEY_S, IBUS_KEY_m,  0x2120, 
++IBUS_KEY_S, IBUS_KEY_cedilla,  0x015E, 
++IBUS_KEY_T, IBUS_KEY_comma,  0x0162, 
++IBUS_KEY_T, IBUS_KEY_minus,  0x0166, 
++IBUS_KEY_T, IBUS_KEY_period,  0x1E6A, 
++IBUS_KEY_T, IBUS_KEY_slash,  0x0166, 
++IBUS_KEY_T, IBUS_KEY_semicolon,  0x021A, 
++IBUS_KEY_T, IBUS_KEY_less,  0x0164, 
++IBUS_KEY_T, IBUS_KEY_H,  0x00DE, 
++IBUS_KEY_T, IBUS_KEY_M,  0x2122, 
++IBUS_KEY_T, IBUS_KEY_m,  0x2122, 
++IBUS_KEY_U, IBUS_KEY_quotedbl,  0x00DC, 
++IBUS_KEY_U, IBUS_KEY_apostrophe,  0x00DA, 
++IBUS_KEY_U, IBUS_KEY_asterisk,  0x016E, 
++IBUS_KEY_U, IBUS_KEY_comma,  0x0172, 
++IBUS_KEY_U, IBUS_KEY_minus,  0x016A, 
++IBUS_KEY_U, IBUS_KEY_slash,  0x00B5, 
++IBUS_KEY_U, IBUS_KEY_semicolon,  0x0172, 
++IBUS_KEY_U, IBUS_KEY_greater,  0x00DB, 
++IBUS_KEY_U, IBUS_KEY_A,  0x0102, 
++IBUS_KEY_U, IBUS_KEY_E,  0x0114, 
++IBUS_KEY_U, IBUS_KEY_G,  0x011E, 
++IBUS_KEY_U, IBUS_KEY_I,  0x012C, 
++IBUS_KEY_U, IBUS_KEY_O,  0x014E, 
++IBUS_KEY_U, IBUS_KEY_U,  0x016C, 
++IBUS_KEY_U, IBUS_KEY_asciicircum,  0x00DB, 
++IBUS_KEY_U, IBUS_KEY_underscore,  0x016A, 
++IBUS_KEY_U, IBUS_KEY_grave,  0x00D9, 
++IBUS_KEY_U, IBUS_KEY_a,  0x0103, 
++IBUS_KEY_U, IBUS_KEY_e,  0x0115, 
++IBUS_KEY_U, IBUS_KEY_g,  0x011F, 
++IBUS_KEY_U, IBUS_KEY_i,  0x012D, 
++IBUS_KEY_U, IBUS_KEY_o,  0x014F, 
++IBUS_KEY_U, IBUS_KEY_u,  0x016D, 
++IBUS_KEY_U, IBUS_KEY_asciitilde,  0x0168, 
++IBUS_KEY_U, IBUS_KEY_diaeresis,  0x00DC, 
++IBUS_KEY_U, IBUS_KEY_acute,  0x00DA, 
++IBUS_KEY_U, 0x0228,  0x1E1C, 
++IBUS_KEY_U, 0x0229,  0x1E1D, 
++IBUS_KEY_U, IBUS_KEY_Cyrillic_a,  0x04D1, 
++IBUS_KEY_U, IBUS_KEY_Cyrillic_ie,  0x04D7, 
++IBUS_KEY_U, IBUS_KEY_Cyrillic_i,  0x0439, 
++IBUS_KEY_U, IBUS_KEY_Cyrillic_u,  0x045E, 
++IBUS_KEY_U, IBUS_KEY_Cyrillic_zhe,  0x04C2, 
++IBUS_KEY_U, IBUS_KEY_Cyrillic_A,  0x04D0, 
++IBUS_KEY_U, IBUS_KEY_Cyrillic_IE,  0x04D6, 
++IBUS_KEY_U, IBUS_KEY_Cyrillic_I,  0x0419, 
++IBUS_KEY_U, IBUS_KEY_Cyrillic_U,  0x040E, 
++IBUS_KEY_U, IBUS_KEY_Cyrillic_ZHE,  0x04C1, 
++IBUS_KEY_U, IBUS_KEY_Greek_ALPHA,  0x1FB8, 
++IBUS_KEY_U, IBUS_KEY_Greek_IOTA,  0x1FD8, 
++IBUS_KEY_U, IBUS_KEY_Greek_UPSILON,  0x1FE8, 
++IBUS_KEY_U, IBUS_KEY_Greek_alpha,  0x1FB0, 
++IBUS_KEY_U, IBUS_KEY_Greek_iota,  0x1FD0, 
++IBUS_KEY_U, IBUS_KEY_Greek_upsilon,  0x1FE0, 
++IBUS_KEY_U, 0x1EA0,  0x1EB6, 
++IBUS_KEY_U, 0x1EA1,  0x1EB7, 
++IBUS_KEY_V, IBUS_KEY_L,  0x007C, 
++IBUS_KEY_W, IBUS_KEY_equal,  0x20A9, 
++IBUS_KEY_W, IBUS_KEY_asciicircum,  0x0174, 
++IBUS_KEY_X, IBUS_KEY_0,  0x00A4, 
++IBUS_KEY_X, IBUS_KEY_O,  0x00A4, 
++IBUS_KEY_X, IBUS_KEY_o,  0x00A4, 
++IBUS_KEY_Y, IBUS_KEY_quotedbl,  0x0178, 
++IBUS_KEY_Y, IBUS_KEY_apostrophe,  0x00DD, 
++IBUS_KEY_Y, IBUS_KEY_minus,  0x00A5, 
++IBUS_KEY_Y, IBUS_KEY_equal,  0x00A5, 
++IBUS_KEY_Y, IBUS_KEY_asciicircum,  0x0176, 
++IBUS_KEY_Y, IBUS_KEY_diaeresis,  0x0178, 
++IBUS_KEY_Y, IBUS_KEY_acute,  0x00DD, 
++IBUS_KEY_Z, IBUS_KEY_apostrophe,  0x0179, 
++IBUS_KEY_Z, IBUS_KEY_period,  0x017B, 
++IBUS_KEY_Z, IBUS_KEY_less,  0x017D, 
++IBUS_KEY_bracketleft, IBUS_KEY_bracketright,  0x2337, 
++IBUS_KEY_backslash, IBUS_KEY_minus,  0x2340, 
++IBUS_KEY_backslash, 0x2395,  0x2342, 
++IBUS_KEY_backslash, IBUS_KEY_emopencircle,  0x2349, 
++IBUS_KEY_bracketright, IBUS_KEY_bracketleft,  0x2337, 
++IBUS_KEY_asciicircum, IBUS_KEY_space,  0x005E, 
++IBUS_KEY_asciicircum, IBUS_KEY_parenleft,  0x207D, 
++IBUS_KEY_asciicircum, IBUS_KEY_parenright,  0x207E, 
++IBUS_KEY_asciicircum, IBUS_KEY_plus,  0x207A, 
++IBUS_KEY_asciicircum, IBUS_KEY_minus,  0x00AF, 
++IBUS_KEY_asciicircum, IBUS_KEY_period,  0x00B7, 
++IBUS_KEY_asciicircum, IBUS_KEY_slash,  0x007C, 
++IBUS_KEY_asciicircum, IBUS_KEY_0,  0x2070, 
++IBUS_KEY_asciicircum, IBUS_KEY_1,  0x00B9, 
++IBUS_KEY_asciicircum, IBUS_KEY_2,  0x00B2, 
++IBUS_KEY_asciicircum, IBUS_KEY_3,  0x00B3, 
++IBUS_KEY_asciicircum, IBUS_KEY_4,  0x2074, 
++IBUS_KEY_asciicircum, IBUS_KEY_5,  0x2075, 
++IBUS_KEY_asciicircum, IBUS_KEY_6,  0x2076, 
++IBUS_KEY_asciicircum, IBUS_KEY_7,  0x2077, 
++IBUS_KEY_asciicircum, IBUS_KEY_8,  0x2078, 
++IBUS_KEY_asciicircum, IBUS_KEY_9,  0x2079, 
++IBUS_KEY_asciicircum, IBUS_KEY_equal,  0x207C, 
++IBUS_KEY_asciicircum, IBUS_KEY_A,  0x00C2, 
++IBUS_KEY_asciicircum, IBUS_KEY_C,  0x0108, 
++IBUS_KEY_asciicircum, IBUS_KEY_E,  0x00CA, 
++IBUS_KEY_asciicircum, IBUS_KEY_G,  0x011C, 
++IBUS_KEY_asciicircum, IBUS_KEY_H,  0x0124, 
++IBUS_KEY_asciicircum, IBUS_KEY_I,  0x00CE, 
++IBUS_KEY_asciicircum, IBUS_KEY_J,  0x0134, 
++IBUS_KEY_asciicircum, IBUS_KEY_O,  0x00D4, 
++IBUS_KEY_asciicircum, IBUS_KEY_S,  0x015C, 
++IBUS_KEY_asciicircum, IBUS_KEY_U,  0x00DB, 
++IBUS_KEY_asciicircum, IBUS_KEY_W,  0x0174, 
++IBUS_KEY_asciicircum, IBUS_KEY_Y,  0x0176, 
++IBUS_KEY_asciicircum, IBUS_KEY_Z,  0x1E90, 
++IBUS_KEY_asciicircum, IBUS_KEY_underscore,  0x00AF, 
++IBUS_KEY_asciicircum, IBUS_KEY_a,  0x00E2, 
++IBUS_KEY_asciicircum, IBUS_KEY_c,  0x0109, 
++IBUS_KEY_asciicircum, IBUS_KEY_e,  0x00EA, 
++IBUS_KEY_asciicircum, IBUS_KEY_g,  0x011D, 
++IBUS_KEY_asciicircum, IBUS_KEY_h,  0x0125, 
++IBUS_KEY_asciicircum, IBUS_KEY_i,  0x00EE, 
++IBUS_KEY_asciicircum, IBUS_KEY_j,  0x0135, 
++IBUS_KEY_asciicircum, IBUS_KEY_o,  0x00F4, 
++IBUS_KEY_asciicircum, IBUS_KEY_s,  0x015D, 
++IBUS_KEY_asciicircum, IBUS_KEY_u,  0x00FB, 
++IBUS_KEY_asciicircum, IBUS_KEY_w,  0x0175, 
++IBUS_KEY_asciicircum, IBUS_KEY_y,  0x0177, 
++IBUS_KEY_asciicircum, IBUS_KEY_z,  0x1E91, 
++IBUS_KEY_asciicircum, 0x1EA0,  0x1EAC, 
++IBUS_KEY_asciicircum, 0x1EA1,  0x1EAD, 
++IBUS_KEY_asciicircum, 0x1EB8,  0x1EC6, 
++IBUS_KEY_asciicircum, 0x1EB9,  0x1EC7, 
++IBUS_KEY_asciicircum, 0x1ECC,  0x1ED8, 
++IBUS_KEY_asciicircum, 0x1ECD,  0x1ED9, 
++IBUS_KEY_asciicircum, 0x2212,  0x207B, 
++IBUS_KEY_asciicircum, 0x4E00,  0x3192, 
++IBUS_KEY_asciicircum, 0x4E01,  0x319C, 
++IBUS_KEY_asciicircum, 0x4E09,  0x3194, 
++IBUS_KEY_asciicircum, 0x4E0A,  0x3196, 
++IBUS_KEY_asciicircum, 0x4E0B,  0x3198, 
++IBUS_KEY_asciicircum, 0x4E19,  0x319B, 
++IBUS_KEY_asciicircum, 0x4E2D,  0x3197, 
++IBUS_KEY_asciicircum, 0x4E59,  0x319A, 
++IBUS_KEY_asciicircum, 0x4E8C,  0x3193, 
++IBUS_KEY_asciicircum, 0x4EBA,  0x319F, 
++IBUS_KEY_asciicircum, 0x56DB,  0x3195, 
++IBUS_KEY_asciicircum, 0x5730,  0x319E, 
++IBUS_KEY_asciicircum, 0x5929,  0x319D, 
++IBUS_KEY_asciicircum, 0x7532,  0x3199, 
++IBUS_KEY_asciicircum, IBUS_KEY_KP_Space,  0x00B2, 
++IBUS_KEY_asciicircum, IBUS_KEY_KP_Add,  0x207A, 
++IBUS_KEY_asciicircum, IBUS_KEY_KP_0,  0x2070, 
++IBUS_KEY_asciicircum, IBUS_KEY_KP_1,  0x00B9, 
++IBUS_KEY_asciicircum, IBUS_KEY_KP_2,  0x00B2, 
++IBUS_KEY_asciicircum, IBUS_KEY_KP_3,  0x00B3, 
++IBUS_KEY_asciicircum, IBUS_KEY_KP_4,  0x2074, 
++IBUS_KEY_asciicircum, IBUS_KEY_KP_5,  0x2075, 
++IBUS_KEY_asciicircum, IBUS_KEY_KP_6,  0x2076, 
++IBUS_KEY_asciicircum, IBUS_KEY_KP_7,  0x2077, 
++IBUS_KEY_asciicircum, IBUS_KEY_KP_8,  0x2078, 
++IBUS_KEY_asciicircum, IBUS_KEY_KP_9,  0x2079, 
++IBUS_KEY_asciicircum, IBUS_KEY_KP_Equal,  0x207C, 
++IBUS_KEY_underscore, IBUS_KEY_apostrophe,  0x2358, 
++IBUS_KEY_underscore, IBUS_KEY_parenleft,  0x208D, 
++IBUS_KEY_underscore, IBUS_KEY_parenright,  0x208E, 
++IBUS_KEY_underscore, IBUS_KEY_plus,  0x208A, 
++IBUS_KEY_underscore, IBUS_KEY_0,  0x2080, 
++IBUS_KEY_underscore, IBUS_KEY_1,  0x2081, 
++IBUS_KEY_underscore, IBUS_KEY_2,  0x2082, 
++IBUS_KEY_underscore, IBUS_KEY_3,  0x2083, 
++IBUS_KEY_underscore, IBUS_KEY_4,  0x2084, 
++IBUS_KEY_underscore, IBUS_KEY_5,  0x2085, 
++IBUS_KEY_underscore, IBUS_KEY_6,  0x2086, 
++IBUS_KEY_underscore, IBUS_KEY_7,  0x2087, 
++IBUS_KEY_underscore, IBUS_KEY_8,  0x2088, 
++IBUS_KEY_underscore, IBUS_KEY_9,  0x2089, 
++IBUS_KEY_underscore, IBUS_KEY_less,  0x2264, 
++IBUS_KEY_underscore, IBUS_KEY_equal,  0x208C, 
++IBUS_KEY_underscore, IBUS_KEY_greater,  0x2265, 
++IBUS_KEY_underscore, IBUS_KEY_A,  0x0100, 
++IBUS_KEY_underscore, IBUS_KEY_E,  0x0112, 
++IBUS_KEY_underscore, IBUS_KEY_G,  0x1E20, 
++IBUS_KEY_underscore, IBUS_KEY_I,  0x012A, 
++IBUS_KEY_underscore, IBUS_KEY_O,  0x014C, 
++IBUS_KEY_underscore, IBUS_KEY_U,  0x016A, 
++IBUS_KEY_underscore, IBUS_KEY_Y,  0x0232, 
++IBUS_KEY_underscore, IBUS_KEY_asciicircum,  0x00AF, 
++IBUS_KEY_underscore, IBUS_KEY_underscore,  0x00AF, 
++IBUS_KEY_underscore, IBUS_KEY_a,  0x0101, 
++IBUS_KEY_underscore, IBUS_KEY_e,  0x0113, 
++IBUS_KEY_underscore, IBUS_KEY_g,  0x1E21, 
++IBUS_KEY_underscore, IBUS_KEY_i,  0x012B, 
++IBUS_KEY_underscore, IBUS_KEY_o,  0x014D, 
++IBUS_KEY_underscore, IBUS_KEY_u,  0x016B, 
++IBUS_KEY_underscore, IBUS_KEY_y,  0x0233, 
++IBUS_KEY_underscore, IBUS_KEY_Adiaeresis,  0x01DE, 
++IBUS_KEY_underscore, IBUS_KEY_AE,  0x01E2, 
++IBUS_KEY_underscore, IBUS_KEY_Otilde,  0x022C, 
++IBUS_KEY_underscore, IBUS_KEY_Odiaeresis,  0x022A, 
++IBUS_KEY_underscore, IBUS_KEY_Udiaeresis,  0x01D5, 
++IBUS_KEY_underscore, IBUS_KEY_adiaeresis,  0x01DF, 
++IBUS_KEY_underscore, IBUS_KEY_ae,  0x01E3, 
++IBUS_KEY_underscore, IBUS_KEY_otilde,  0x022D, 
++IBUS_KEY_underscore, IBUS_KEY_odiaeresis,  0x022B, 
++IBUS_KEY_underscore, IBUS_KEY_udiaeresis,  0x01D6, 
++IBUS_KEY_underscore, 0x01EA,  0x01EC, 
++IBUS_KEY_underscore, 0x01EB,  0x01ED, 
++IBUS_KEY_underscore, 0x0226,  0x01E0, 
++IBUS_KEY_underscore, 0x0227,  0x01E1, 
++IBUS_KEY_underscore, 0x022E,  0x0230, 
++IBUS_KEY_underscore, 0x022F,  0x0231, 
++IBUS_KEY_underscore, IBUS_KEY_Cyrillic_i,  0x04E3, 
++IBUS_KEY_underscore, IBUS_KEY_Cyrillic_u,  0x04EF, 
++IBUS_KEY_underscore, IBUS_KEY_Cyrillic_I,  0x04E2, 
++IBUS_KEY_underscore, IBUS_KEY_Cyrillic_U,  0x04EE, 
++IBUS_KEY_underscore, IBUS_KEY_Greek_ALPHA,  0x1FB9, 
++IBUS_KEY_underscore, IBUS_KEY_Greek_IOTA,  0x1FD9, 
++IBUS_KEY_underscore, IBUS_KEY_Greek_UPSILON,  0x1FE9, 
++IBUS_KEY_underscore, IBUS_KEY_Greek_alpha,  0x1FB1, 
++IBUS_KEY_underscore, IBUS_KEY_Greek_iota,  0x1FD1, 
++IBUS_KEY_underscore, IBUS_KEY_Greek_upsilon,  0x1FE1, 
++IBUS_KEY_underscore, 0x1E36,  0x1E38, 
++IBUS_KEY_underscore, 0x1E37,  0x1E39, 
++IBUS_KEY_underscore, 0x1E5A,  0x1E5C, 
++IBUS_KEY_underscore, 0x1E5B,  0x1E5D, 
++IBUS_KEY_underscore, 0x2206,  0x2359, 
++IBUS_KEY_underscore, 0x220A,  0x2377, 
++IBUS_KEY_underscore, 0x2212,  0x208B, 
++IBUS_KEY_underscore, 0x2218,  0x235B, 
++IBUS_KEY_underscore, 0x2260,  0x2262, 
++IBUS_KEY_underscore, 0x2282,  0x2286, 
++IBUS_KEY_underscore, 0x2283,  0x2287, 
++IBUS_KEY_underscore, IBUS_KEY_downtack,  0x234A, 
++IBUS_KEY_underscore, 0x22C4,  0x235A, 
++IBUS_KEY_underscore, 0x2373,  0x2378, 
++IBUS_KEY_underscore, 0x2375,  0x2379, 
++IBUS_KEY_underscore, 0x237A,  0x2376, 
++IBUS_KEY_underscore, IBUS_KEY_emopencircle,  0x235C, 
++IBUS_KEY_underscore, IBUS_KEY_KP_Space,  0x2082, 
++IBUS_KEY_underscore, IBUS_KEY_KP_Add,  0x208A, 
++IBUS_KEY_underscore, IBUS_KEY_KP_0,  0x2080, 
++IBUS_KEY_underscore, IBUS_KEY_KP_1,  0x2081, 
++IBUS_KEY_underscore, IBUS_KEY_KP_2,  0x2082, 
++IBUS_KEY_underscore, IBUS_KEY_KP_3,  0x2083, 
++IBUS_KEY_underscore, IBUS_KEY_KP_4,  0x2084, 
++IBUS_KEY_underscore, IBUS_KEY_KP_5,  0x2085, 
++IBUS_KEY_underscore, IBUS_KEY_KP_6,  0x2086, 
++IBUS_KEY_underscore, IBUS_KEY_KP_7,  0x2087, 
++IBUS_KEY_underscore, IBUS_KEY_KP_8,  0x2088, 
++IBUS_KEY_underscore, IBUS_KEY_KP_9,  0x2089, 
++IBUS_KEY_underscore, IBUS_KEY_KP_Equal,  0x208C, 
++IBUS_KEY_grave, IBUS_KEY_space,  0x0060, 
++IBUS_KEY_grave, IBUS_KEY_A,  0x00C0, 
++IBUS_KEY_grave, IBUS_KEY_E,  0x00C8, 
++IBUS_KEY_grave, IBUS_KEY_I,  0x00CC, 
++IBUS_KEY_grave, IBUS_KEY_N,  0x01F8, 
++IBUS_KEY_grave, IBUS_KEY_O,  0x00D2, 
++IBUS_KEY_grave, IBUS_KEY_U,  0x00D9, 
++IBUS_KEY_grave, IBUS_KEY_W,  0x1E80, 
++IBUS_KEY_grave, IBUS_KEY_Y,  0x1EF2, 
++IBUS_KEY_grave, IBUS_KEY_a,  0x00E0, 
++IBUS_KEY_grave, IBUS_KEY_e,  0x00E8, 
++IBUS_KEY_grave, IBUS_KEY_i,  0x00EC, 
++IBUS_KEY_grave, IBUS_KEY_n,  0x01F9, 
++IBUS_KEY_grave, IBUS_KEY_o,  0x00F2, 
++IBUS_KEY_grave, IBUS_KEY_u,  0x00F9, 
++IBUS_KEY_grave, IBUS_KEY_w,  0x1E81, 
++IBUS_KEY_grave, IBUS_KEY_y,  0x1EF3, 
++IBUS_KEY_grave, IBUS_KEY_Acircumflex,  0x1EA6, 
++IBUS_KEY_grave, IBUS_KEY_Ecircumflex,  0x1EC0, 
++IBUS_KEY_grave, IBUS_KEY_Ocircumflex,  0x1ED2, 
++IBUS_KEY_grave, IBUS_KEY_Udiaeresis,  0x01DB, 
++IBUS_KEY_grave, IBUS_KEY_acircumflex,  0x1EA7, 
++IBUS_KEY_grave, IBUS_KEY_ecircumflex,  0x1EC1, 
++IBUS_KEY_grave, IBUS_KEY_ocircumflex,  0x1ED3, 
++IBUS_KEY_grave, IBUS_KEY_udiaeresis,  0x01DC, 
++IBUS_KEY_grave, IBUS_KEY_Abreve,  0x1EB0, 
++IBUS_KEY_grave, IBUS_KEY_abreve,  0x1EB1, 
++IBUS_KEY_grave, IBUS_KEY_Emacron,  0x1E14, 
++IBUS_KEY_grave, IBUS_KEY_emacron,  0x1E15, 
++IBUS_KEY_grave, IBUS_KEY_Omacron,  0x1E50, 
++IBUS_KEY_grave, IBUS_KEY_omacron,  0x1E51, 
++IBUS_KEY_grave, IBUS_KEY_Cyrillic_ie,  0x0450, 
++IBUS_KEY_grave, IBUS_KEY_Cyrillic_i,  0x045D, 
++IBUS_KEY_grave, IBUS_KEY_Cyrillic_IE,  0x0400, 
++IBUS_KEY_grave, IBUS_KEY_Cyrillic_I,  0x040D, 
++IBUS_KEY_grave, IBUS_KEY_Greek_iotadieresis,  0x1FD2, 
++IBUS_KEY_grave, IBUS_KEY_Greek_upsilondieresis,  0x1FE2, 
++IBUS_KEY_grave, IBUS_KEY_Greek_ALPHA,  0x1FBA, 
++IBUS_KEY_grave, IBUS_KEY_Greek_EPSILON,  0x1FC8, 
++IBUS_KEY_grave, IBUS_KEY_Greek_ETA,  0x1FCA, 
++IBUS_KEY_grave, IBUS_KEY_Greek_IOTA,  0x1FDA, 
++IBUS_KEY_grave, IBUS_KEY_Greek_OMICRON,  0x1FF8, 
++IBUS_KEY_grave, IBUS_KEY_Greek_UPSILON,  0x1FEA, 
++IBUS_KEY_grave, IBUS_KEY_Greek_OMEGA,  0x1FFA, 
++IBUS_KEY_grave, IBUS_KEY_Greek_alpha,  0x1F70, 
++IBUS_KEY_grave, IBUS_KEY_Greek_epsilon,  0x1F72, 
++IBUS_KEY_grave, IBUS_KEY_Greek_eta,  0x1F74, 
++IBUS_KEY_grave, IBUS_KEY_Greek_iota,  0x1F76, 
++IBUS_KEY_grave, IBUS_KEY_Greek_omicron,  0x1F78, 
++IBUS_KEY_grave, IBUS_KEY_Greek_upsilon,  0x1F7A, 
++IBUS_KEY_grave, IBUS_KEY_Greek_omega,  0x1F7C, 
++IBUS_KEY_grave, 0x1F00,  0x1F02, 
++IBUS_KEY_grave, 0x1F01,  0x1F03, 
++IBUS_KEY_grave, 0x1F08,  0x1F0A, 
++IBUS_KEY_grave, 0x1F09,  0x1F0B, 
++IBUS_KEY_grave, 0x1F10,  0x1F12, 
++IBUS_KEY_grave, 0x1F11,  0x1F13, 
++IBUS_KEY_grave, 0x1F18,  0x1F1A, 
++IBUS_KEY_grave, 0x1F19,  0x1F1B, 
++IBUS_KEY_grave, 0x1F20,  0x1F22, 
++IBUS_KEY_grave, 0x1F21,  0x1F23, 
++IBUS_KEY_grave, 0x1F28,  0x1F2A, 
++IBUS_KEY_grave, 0x1F29,  0x1F2B, 
++IBUS_KEY_grave, 0x1F30,  0x1F32, 
++IBUS_KEY_grave, 0x1F31,  0x1F33, 
++IBUS_KEY_grave, 0x1F38,  0x1F3A, 
++IBUS_KEY_grave, 0x1F39,  0x1F3B, 
++IBUS_KEY_grave, 0x1F40,  0x1F42, 
++IBUS_KEY_grave, 0x1F41,  0x1F43, 
++IBUS_KEY_grave, 0x1F48,  0x1F4A, 
++IBUS_KEY_grave, 0x1F49,  0x1F4B, 
++IBUS_KEY_grave, 0x1F50,  0x1F52, 
++IBUS_KEY_grave, 0x1F51,  0x1F53, 
++IBUS_KEY_grave, 0x1F59,  0x1F5B, 
++IBUS_KEY_grave, 0x1F60,  0x1F62, 
++IBUS_KEY_grave, 0x1F61,  0x1F63, 
++IBUS_KEY_grave, 0x1F68,  0x1F6A, 
++IBUS_KEY_grave, 0x1F69,  0x1F6B, 
++IBUS_KEY_a, IBUS_KEY_quotedbl,  0x00E4, 
++IBUS_KEY_a, IBUS_KEY_apostrophe,  0x00E1, 
++IBUS_KEY_a, IBUS_KEY_parenleft,  0x0103, 
++IBUS_KEY_a, IBUS_KEY_asterisk,  0x00E5, 
++IBUS_KEY_a, IBUS_KEY_comma,  0x0105, 
++IBUS_KEY_a, IBUS_KEY_minus,  0x0101, 
++IBUS_KEY_a, IBUS_KEY_semicolon,  0x0105, 
++IBUS_KEY_a, IBUS_KEY_greater,  0x00E2, 
++IBUS_KEY_a, IBUS_KEY_asciicircum,  0x00E2, 
++IBUS_KEY_a, IBUS_KEY_underscore,  0x0101, 
++IBUS_KEY_a, IBUS_KEY_grave,  0x00E0, 
++IBUS_KEY_a, IBUS_KEY_a,  0x00E5, 
++IBUS_KEY_a, IBUS_KEY_e,  0x00E6, 
++IBUS_KEY_a, IBUS_KEY_asciitilde,  0x00E3, 
++IBUS_KEY_a, IBUS_KEY_diaeresis,  0x00E4, 
++IBUS_KEY_a, IBUS_KEY_acute,  0x00E1, 
++IBUS_KEY_b, IBUS_KEY_period,  0x1E03, 
++IBUS_KEY_b, IBUS_KEY_A,  0x0102, 
++IBUS_KEY_b, IBUS_KEY_E,  0x0114, 
++IBUS_KEY_b, IBUS_KEY_G,  0x011E, 
++IBUS_KEY_b, IBUS_KEY_I,  0x012C, 
++IBUS_KEY_b, IBUS_KEY_O,  0x014E, 
++IBUS_KEY_b, IBUS_KEY_U,  0x016C, 
++IBUS_KEY_b, IBUS_KEY_a,  0x0103, 
++IBUS_KEY_b, IBUS_KEY_e,  0x0115, 
++IBUS_KEY_b, IBUS_KEY_g,  0x011F, 
++IBUS_KEY_b, IBUS_KEY_i,  0x012D, 
++IBUS_KEY_b, IBUS_KEY_o,  0x014F, 
++IBUS_KEY_b, IBUS_KEY_u,  0x016D, 
++IBUS_KEY_b, 0x0228,  0x1E1C, 
++IBUS_KEY_b, 0x0229,  0x1E1D, 
++IBUS_KEY_b, IBUS_KEY_Cyrillic_a,  0x04D1, 
++IBUS_KEY_b, IBUS_KEY_Cyrillic_ie,  0x04D7, 
++IBUS_KEY_b, IBUS_KEY_Cyrillic_i,  0x0439, 
++IBUS_KEY_b, IBUS_KEY_Cyrillic_u,  0x045E, 
++IBUS_KEY_b, IBUS_KEY_Cyrillic_zhe,  0x04C2, 
++IBUS_KEY_b, IBUS_KEY_Cyrillic_A,  0x04D0, 
++IBUS_KEY_b, IBUS_KEY_Cyrillic_IE,  0x04D6, 
++IBUS_KEY_b, IBUS_KEY_Cyrillic_I,  0x0419, 
++IBUS_KEY_b, IBUS_KEY_Cyrillic_U,  0x040E, 
++IBUS_KEY_b, IBUS_KEY_Cyrillic_ZHE,  0x04C1, 
++IBUS_KEY_b, IBUS_KEY_Greek_ALPHA,  0x1FB8, 
++IBUS_KEY_b, IBUS_KEY_Greek_IOTA,  0x1FD8, 
++IBUS_KEY_b, IBUS_KEY_Greek_UPSILON,  0x1FE8, 
++IBUS_KEY_b, IBUS_KEY_Greek_alpha,  0x1FB0, 
++IBUS_KEY_b, IBUS_KEY_Greek_iota,  0x1FD0, 
++IBUS_KEY_b, IBUS_KEY_Greek_upsilon,  0x1FE0, 
++IBUS_KEY_b, 0x1EA0,  0x1EB6, 
++IBUS_KEY_b, 0x1EA1,  0x1EB7, 
++IBUS_KEY_c, IBUS_KEY_apostrophe,  0x0107, 
++IBUS_KEY_c, IBUS_KEY_comma,  0x00E7, 
++IBUS_KEY_c, IBUS_KEY_period,  0x010B, 
++IBUS_KEY_c, IBUS_KEY_slash,  0x00A2, 
++IBUS_KEY_c, IBUS_KEY_0,  0x00A9, 
++IBUS_KEY_c, IBUS_KEY_less,  0x010D, 
++IBUS_KEY_c, IBUS_KEY_equal,  0x20AC, 
++IBUS_KEY_c, IBUS_KEY_A,  0x01CD, 
++IBUS_KEY_c, IBUS_KEY_C,  0x010C, 
++IBUS_KEY_c, IBUS_KEY_D,  0x010E, 
++IBUS_KEY_c, IBUS_KEY_E,  0x011A, 
++IBUS_KEY_c, IBUS_KEY_G,  0x01E6, 
++IBUS_KEY_c, IBUS_KEY_H,  0x021E, 
++IBUS_KEY_c, IBUS_KEY_I,  0x01CF, 
++IBUS_KEY_c, IBUS_KEY_K,  0x01E8, 
++IBUS_KEY_c, IBUS_KEY_L,  0x013D, 
++IBUS_KEY_c, IBUS_KEY_N,  0x0147, 
++IBUS_KEY_c, IBUS_KEY_O,  0x01D1, 
++IBUS_KEY_c, IBUS_KEY_R,  0x0158, 
++IBUS_KEY_c, IBUS_KEY_S,  0x0160, 
++IBUS_KEY_c, IBUS_KEY_T,  0x0164, 
++IBUS_KEY_c, IBUS_KEY_U,  0x01D3, 
++IBUS_KEY_c, IBUS_KEY_Z,  0x017D, 
++IBUS_KEY_c, IBUS_KEY_a,  0x01CE, 
++IBUS_KEY_c, IBUS_KEY_c,  0x010D, 
++IBUS_KEY_c, IBUS_KEY_d,  0x010F, 
++IBUS_KEY_c, IBUS_KEY_e,  0x011B, 
++IBUS_KEY_c, IBUS_KEY_g,  0x01E7, 
++IBUS_KEY_c, IBUS_KEY_h,  0x021F, 
++IBUS_KEY_c, IBUS_KEY_i,  0x01D0, 
++IBUS_KEY_c, IBUS_KEY_j,  0x01F0, 
++IBUS_KEY_c, IBUS_KEY_k,  0x01E9, 
++IBUS_KEY_c, IBUS_KEY_l,  0x013E, 
++IBUS_KEY_c, IBUS_KEY_n,  0x0148, 
++IBUS_KEY_c, IBUS_KEY_o,  0x01D2, 
++IBUS_KEY_c, IBUS_KEY_r,  0x0159, 
++IBUS_KEY_c, IBUS_KEY_s,  0x0161, 
++IBUS_KEY_c, IBUS_KEY_t,  0x0165, 
++IBUS_KEY_c, IBUS_KEY_u,  0x01D4, 
++IBUS_KEY_c, IBUS_KEY_z,  0x017E, 
++IBUS_KEY_c, IBUS_KEY_bar,  0x00A2, 
++IBUS_KEY_c, IBUS_KEY_Udiaeresis,  0x01D9, 
++IBUS_KEY_c, IBUS_KEY_udiaeresis,  0x01DA, 
++IBUS_KEY_d, IBUS_KEY_comma,  0x1E11, 
++IBUS_KEY_d, IBUS_KEY_minus,  0x0111, 
++IBUS_KEY_d, IBUS_KEY_period,  0x1E0B, 
++IBUS_KEY_d, IBUS_KEY_less,  0x010F, 
++IBUS_KEY_d, IBUS_KEY_equal,  0x20AB, 
++IBUS_KEY_d, IBUS_KEY_h,  0x00F0, 
++IBUS_KEY_d, IBUS_KEY_i,  0x2300, 
++IBUS_KEY_e, IBUS_KEY_quotedbl,  0x00EB, 
++IBUS_KEY_e, IBUS_KEY_apostrophe,  0x00E9, 
++IBUS_KEY_e, IBUS_KEY_comma,  0x0119, 
++IBUS_KEY_e, IBUS_KEY_minus,  0x0113, 
++IBUS_KEY_e, IBUS_KEY_period,  0x0117, 
++IBUS_KEY_e, IBUS_KEY_semicolon,  0x0119, 
++IBUS_KEY_e, IBUS_KEY_less,  0x011B, 
++IBUS_KEY_e, IBUS_KEY_equal,  0x20AC, 
++IBUS_KEY_e, IBUS_KEY_greater,  0x00EA, 
++IBUS_KEY_e, IBUS_KEY_asciicircum,  0x00EA, 
++IBUS_KEY_e, IBUS_KEY_underscore,  0x0113, 
++IBUS_KEY_e, IBUS_KEY_grave,  0x00E8, 
++IBUS_KEY_e, IBUS_KEY_e,  0x0259, 
++IBUS_KEY_e, IBUS_KEY_diaeresis,  0x00EB, 
++IBUS_KEY_e, IBUS_KEY_acute,  0x00E9, 
++IBUS_KEY_f, IBUS_KEY_period,  0x1E1F, 
++IBUS_KEY_f, IBUS_KEY_S,  0x017F, 
++IBUS_KEY_f, IBUS_KEY_f,  0xFB00, 
++IBUS_KEY_f, IBUS_KEY_i,  0xFB01, 
++IBUS_KEY_f, IBUS_KEY_l,  0xFB02, 
++IBUS_KEY_f, IBUS_KEY_s,  0x017F, 
++IBUS_KEY_g, IBUS_KEY_parenleft,  0x011F, 
++IBUS_KEY_g, IBUS_KEY_comma,  0x0123, 
++IBUS_KEY_g, IBUS_KEY_period,  0x0121, 
++IBUS_KEY_g, IBUS_KEY_U,  0x011F, 
++IBUS_KEY_g, IBUS_KEY_breve,  0x011F, 
++IBUS_KEY_h, IBUS_KEY_comma,  0x1E29, 
++IBUS_KEY_i, IBUS_KEY_quotedbl,  0x00EF, 
++IBUS_KEY_i, IBUS_KEY_apostrophe,  0x00ED, 
++IBUS_KEY_i, IBUS_KEY_comma,  0x012F, 
++IBUS_KEY_i, IBUS_KEY_minus,  0x012B, 
++IBUS_KEY_i, IBUS_KEY_period,  0x0131, 
++IBUS_KEY_i, IBUS_KEY_semicolon,  0x012F, 
++IBUS_KEY_i, IBUS_KEY_greater,  0x00EE, 
++IBUS_KEY_i, IBUS_KEY_asciicircum,  0x00EE, 
++IBUS_KEY_i, IBUS_KEY_underscore,  0x012B, 
++IBUS_KEY_i, IBUS_KEY_grave,  0x00EC, 
++IBUS_KEY_i, IBUS_KEY_j,  0x0133, 
++IBUS_KEY_i, IBUS_KEY_asciitilde,  0x0129, 
++IBUS_KEY_i, IBUS_KEY_diaeresis,  0x00EF, 
++IBUS_KEY_i, IBUS_KEY_acute,  0x00ED, 
++IBUS_KEY_k, IBUS_KEY_comma,  0x0137, 
++IBUS_KEY_k, IBUS_KEY_k,  0x0138, 
++IBUS_KEY_l, IBUS_KEY_apostrophe,  0x013A, 
++IBUS_KEY_l, IBUS_KEY_comma,  0x013C, 
++IBUS_KEY_l, IBUS_KEY_minus,  0x00A3, 
++IBUS_KEY_l, IBUS_KEY_slash,  0x0142, 
++IBUS_KEY_l, IBUS_KEY_less,  0x013E, 
++IBUS_KEY_l, IBUS_KEY_equal,  0x00A3, 
++IBUS_KEY_l, IBUS_KEY_v,  0x007C, 
++IBUS_KEY_m, IBUS_KEY_period,  0x1E41, 
++IBUS_KEY_m, IBUS_KEY_slash,  0x20A5, 
++IBUS_KEY_m, IBUS_KEY_u,  0x00B5, 
++IBUS_KEY_n, IBUS_KEY_apostrophe,  0x0144, 
++IBUS_KEY_n, IBUS_KEY_comma,  0x0146, 
++IBUS_KEY_n, IBUS_KEY_minus,  0x00F1, 
++IBUS_KEY_n, IBUS_KEY_less,  0x0148, 
++IBUS_KEY_n, IBUS_KEY_g,  0x014B, 
++IBUS_KEY_n, IBUS_KEY_asciitilde,  0x00F1, 
++IBUS_KEY_o, IBUS_KEY_quotedbl,  0x00F6, 
++IBUS_KEY_o, IBUS_KEY_apostrophe,  0x00F3, 
++IBUS_KEY_o, IBUS_KEY_comma,  0x01EB, 
++IBUS_KEY_o, IBUS_KEY_minus,  0x014D, 
++IBUS_KEY_o, IBUS_KEY_slash,  0x00F8, 
++IBUS_KEY_o, IBUS_KEY_semicolon,  0x01EB, 
++IBUS_KEY_o, IBUS_KEY_greater,  0x00F4, 
++IBUS_KEY_o, IBUS_KEY_A,  0x00C5, 
++IBUS_KEY_o, IBUS_KEY_C,  0x00A9, 
++IBUS_KEY_o, IBUS_KEY_R,  0x00AE, 
++IBUS_KEY_o, IBUS_KEY_U,  0x016E, 
++IBUS_KEY_o, IBUS_KEY_X,  0x00A4, 
++IBUS_KEY_o, IBUS_KEY_asciicircum,  0x00F4, 
++IBUS_KEY_o, IBUS_KEY_underscore,  0x014D, 
++IBUS_KEY_o, IBUS_KEY_grave,  0x00F2, 
++IBUS_KEY_o, IBUS_KEY_a,  0x00E5, 
++IBUS_KEY_o, IBUS_KEY_c,  0x00A9, 
++IBUS_KEY_o, IBUS_KEY_e,  0x0153, 
++IBUS_KEY_o, IBUS_KEY_o,  0x00B0, 
++IBUS_KEY_o, IBUS_KEY_r,  0x00AE, 
++IBUS_KEY_o, IBUS_KEY_s,  0x00A7, 
++IBUS_KEY_o, IBUS_KEY_u,  0x016F, 
++IBUS_KEY_o, IBUS_KEY_w,  0x1E98, 
++IBUS_KEY_o, IBUS_KEY_x,  0x00A4, 
++IBUS_KEY_o, IBUS_KEY_y,  0x1E99, 
++IBUS_KEY_o, IBUS_KEY_asciitilde,  0x00F5, 
++IBUS_KEY_o, IBUS_KEY_diaeresis,  0x00F6, 
++IBUS_KEY_o, IBUS_KEY_acute,  0x00F3, 
++IBUS_KEY_p, IBUS_KEY_exclam,  0x00B6, 
++IBUS_KEY_p, IBUS_KEY_period,  0x1E57, 
++IBUS_KEY_r, IBUS_KEY_apostrophe,  0x0155, 
++IBUS_KEY_r, IBUS_KEY_comma,  0x0157, 
++IBUS_KEY_r, IBUS_KEY_less,  0x0159, 
++IBUS_KEY_r, IBUS_KEY_equal,  0x20B9, 
++IBUS_KEY_s, IBUS_KEY_exclam,  0x00A7, 
++IBUS_KEY_s, IBUS_KEY_apostrophe,  0x015B, 
++IBUS_KEY_s, IBUS_KEY_comma,  0x015F, 
++IBUS_KEY_s, IBUS_KEY_period,  0x1E61, 
++IBUS_KEY_s, IBUS_KEY_0,  0x00A7, 
++IBUS_KEY_s, IBUS_KEY_1,  0x00B9, 
++IBUS_KEY_s, IBUS_KEY_2,  0x00B2, 
++IBUS_KEY_s, IBUS_KEY_3,  0x00B3, 
++IBUS_KEY_s, IBUS_KEY_semicolon,  0x0219, 
++IBUS_KEY_s, IBUS_KEY_less,  0x0161, 
++IBUS_KEY_s, IBUS_KEY_M,  0x2120, 
++IBUS_KEY_s, IBUS_KEY_m,  0x2120, 
++IBUS_KEY_s, IBUS_KEY_o,  0x00A7, 
++IBUS_KEY_s, IBUS_KEY_s,  0x00DF, 
++IBUS_KEY_s, IBUS_KEY_cedilla,  0x015F, 
++IBUS_KEY_t, IBUS_KEY_comma,  0x0163, 
++IBUS_KEY_t, IBUS_KEY_minus,  0x0167, 
++IBUS_KEY_t, IBUS_KEY_period,  0x1E6B, 
++IBUS_KEY_t, IBUS_KEY_slash,  0x0167, 
++IBUS_KEY_t, IBUS_KEY_semicolon,  0x021B, 
++IBUS_KEY_t, IBUS_KEY_less,  0x0165, 
++IBUS_KEY_t, IBUS_KEY_M,  0x2122, 
++IBUS_KEY_t, IBUS_KEY_h,  0x00FE, 
++IBUS_KEY_t, IBUS_KEY_m,  0x2122, 
++IBUS_KEY_u, IBUS_KEY_quotedbl,  0x00FC, 
++IBUS_KEY_u, IBUS_KEY_apostrophe,  0x00FA, 
++IBUS_KEY_u, IBUS_KEY_asterisk,  0x016F, 
++IBUS_KEY_u, IBUS_KEY_comma,  0x0173, 
++IBUS_KEY_u, IBUS_KEY_minus,  0x016B, 
++IBUS_KEY_u, IBUS_KEY_slash,  0x00B5, 
++IBUS_KEY_u, IBUS_KEY_semicolon,  0x0173, 
++IBUS_KEY_u, IBUS_KEY_greater,  0x00FB, 
++IBUS_KEY_u, IBUS_KEY_A,  0x0102, 
++IBUS_KEY_u, IBUS_KEY_U,  0x016C, 
++IBUS_KEY_u, IBUS_KEY_asciicircum,  0x00FB, 
++IBUS_KEY_u, IBUS_KEY_underscore,  0x016B, 
++IBUS_KEY_u, IBUS_KEY_grave,  0x00F9, 
++IBUS_KEY_u, IBUS_KEY_a,  0x0103, 
++IBUS_KEY_u, IBUS_KEY_u,  0x016D, 
++IBUS_KEY_u, IBUS_KEY_asciitilde,  0x0169, 
++IBUS_KEY_u, IBUS_KEY_diaeresis,  0x00FC, 
++IBUS_KEY_u, IBUS_KEY_acute,  0x00FA, 
++IBUS_KEY_v, IBUS_KEY_slash,  0x221A, 
++IBUS_KEY_v, IBUS_KEY_Z,  0x017D, 
++IBUS_KEY_v, IBUS_KEY_l,  0x007C, 
++IBUS_KEY_v, IBUS_KEY_z,  0x017E, 
++IBUS_KEY_w, IBUS_KEY_asciicircum,  0x0175, 
++IBUS_KEY_x, IBUS_KEY_0,  0x00A4, 
++IBUS_KEY_x, IBUS_KEY_O,  0x00A4, 
++IBUS_KEY_x, IBUS_KEY_o,  0x00A4, 
++IBUS_KEY_x, IBUS_KEY_x,  0x00D7, 
++IBUS_KEY_y, IBUS_KEY_quotedbl,  0x00FF, 
++IBUS_KEY_y, IBUS_KEY_apostrophe,  0x00FD, 
++IBUS_KEY_y, IBUS_KEY_minus,  0x00A5, 
++IBUS_KEY_y, IBUS_KEY_equal,  0x00A5, 
++IBUS_KEY_y, IBUS_KEY_asciicircum,  0x0177, 
++IBUS_KEY_y, IBUS_KEY_diaeresis,  0x00FF, 
++IBUS_KEY_y, IBUS_KEY_acute,  0x00FD, 
++IBUS_KEY_z, IBUS_KEY_apostrophe,  0x017A, 
++IBUS_KEY_z, IBUS_KEY_period,  0x017C, 
++IBUS_KEY_z, IBUS_KEY_less,  0x017E, 
++IBUS_KEY_braceleft, IBUS_KEY_braceright,  0x2205, 
++IBUS_KEY_bar, IBUS_KEY_C,  0x00A2, 
++IBUS_KEY_bar, IBUS_KEY_c,  0x00A2, 
++IBUS_KEY_bar, IBUS_KEY_asciitilde,  0x236D, 
++IBUS_KEY_bar, 0x2190,  0x2345, 
++IBUS_KEY_bar, 0x2192,  0x2346, 
++IBUS_KEY_bar, 0x2206,  0x234B, 
++IBUS_KEY_bar, 0x2207,  0x2352, 
++IBUS_KEY_bar, IBUS_KEY_union,  0x2366, 
++IBUS_KEY_bar, 0x2282,  0x2367, 
++IBUS_KEY_bar, IBUS_KEY_emopencircle,  0x233D, 
++IBUS_KEY_asciitilde, IBUS_KEY_space,  0x007E, 
++IBUS_KEY_asciitilde, IBUS_KEY_0,  0x236C, 
++IBUS_KEY_asciitilde, IBUS_KEY_A,  0x00C3, 
++IBUS_KEY_asciitilde, IBUS_KEY_E,  0x1EBC, 
++IBUS_KEY_asciitilde, IBUS_KEY_I,  0x0128, 
++IBUS_KEY_asciitilde, IBUS_KEY_N,  0x00D1, 
++IBUS_KEY_asciitilde, IBUS_KEY_O,  0x00D5, 
++IBUS_KEY_asciitilde, IBUS_KEY_U,  0x0168, 
++IBUS_KEY_asciitilde, IBUS_KEY_V,  0x1E7C, 
++IBUS_KEY_asciitilde, IBUS_KEY_Y,  0x1EF8, 
++IBUS_KEY_asciitilde, IBUS_KEY_a,  0x00E3, 
++IBUS_KEY_asciitilde, IBUS_KEY_e,  0x1EBD, 
++IBUS_KEY_asciitilde, IBUS_KEY_i,  0x0129, 
++IBUS_KEY_asciitilde, IBUS_KEY_n,  0x00F1, 
++IBUS_KEY_asciitilde, IBUS_KEY_o,  0x00F5, 
++IBUS_KEY_asciitilde, IBUS_KEY_u,  0x0169, 
++IBUS_KEY_asciitilde, IBUS_KEY_v,  0x1E7D, 
++IBUS_KEY_asciitilde, IBUS_KEY_y,  0x1EF9, 
++IBUS_KEY_asciitilde, IBUS_KEY_bar,  0x236D, 
++IBUS_KEY_asciitilde, IBUS_KEY_diaeresis,  0x2368, 
++IBUS_KEY_asciitilde, IBUS_KEY_Acircumflex,  0x1EAA, 
++IBUS_KEY_asciitilde, IBUS_KEY_Ecircumflex,  0x1EC4, 
++IBUS_KEY_asciitilde, IBUS_KEY_Ocircumflex,  0x1ED6, 
++IBUS_KEY_asciitilde, IBUS_KEY_acircumflex,  0x1EAB, 
++IBUS_KEY_asciitilde, IBUS_KEY_ecircumflex,  0x1EC5, 
++IBUS_KEY_asciitilde, IBUS_KEY_ocircumflex,  0x1ED7, 
++IBUS_KEY_asciitilde, IBUS_KEY_Abreve,  0x1EB4, 
++IBUS_KEY_asciitilde, IBUS_KEY_abreve,  0x1EB5, 
++IBUS_KEY_asciitilde, IBUS_KEY_Greek_iotadieresis,  0x1FD7, 
++IBUS_KEY_asciitilde, IBUS_KEY_Greek_upsilondieresis,  0x1FE7, 
++IBUS_KEY_asciitilde, IBUS_KEY_Greek_alpha,  0x1FB6, 
++IBUS_KEY_asciitilde, IBUS_KEY_Greek_eta,  0x1FC6, 
++IBUS_KEY_asciitilde, IBUS_KEY_Greek_iota,  0x1FD6, 
++IBUS_KEY_asciitilde, IBUS_KEY_Greek_upsilon,  0x1FE6, 
++IBUS_KEY_asciitilde, IBUS_KEY_Greek_omega,  0x1FF6, 
++IBUS_KEY_asciitilde, 0x1F00,  0x1F06, 
++IBUS_KEY_asciitilde, 0x1F01,  0x1F07, 
++IBUS_KEY_asciitilde, 0x1F08,  0x1F0E, 
++IBUS_KEY_asciitilde, 0x1F09,  0x1F0F, 
++IBUS_KEY_asciitilde, 0x1F20,  0x1F26, 
++IBUS_KEY_asciitilde, 0x1F21,  0x1F27, 
++IBUS_KEY_asciitilde, 0x1F28,  0x1F2E, 
++IBUS_KEY_asciitilde, 0x1F29,  0x1F2F, 
++IBUS_KEY_asciitilde, 0x1F30,  0x1F36, 
++IBUS_KEY_asciitilde, 0x1F31,  0x1F37, 
++IBUS_KEY_asciitilde, 0x1F38,  0x1F3E, 
++IBUS_KEY_asciitilde, 0x1F39,  0x1F3F, 
++IBUS_KEY_asciitilde, 0x1F50,  0x1F56, 
++IBUS_KEY_asciitilde, 0x1F51,  0x1F57, 
++IBUS_KEY_asciitilde, 0x1F59,  0x1F5F, 
++IBUS_KEY_asciitilde, 0x1F60,  0x1F66, 
++IBUS_KEY_asciitilde, 0x1F61,  0x1F67, 
++IBUS_KEY_asciitilde, 0x1F68,  0x1F6E, 
++IBUS_KEY_asciitilde, 0x1F69,  0x1F6F, 
++IBUS_KEY_asciitilde, 0x2207,  0x236B, 
++IBUS_KEY_asciitilde, 0x2227,  0x2372, 
++IBUS_KEY_asciitilde, 0x2228,  0x2371, 
++IBUS_KEY_diaeresis, IBUS_KEY_apostrophe,  0x0385, 
++IBUS_KEY_diaeresis, IBUS_KEY_asterisk,  0x2363, 
++IBUS_KEY_diaeresis, IBUS_KEY_greater,  0x2369, 
++IBUS_KEY_diaeresis, IBUS_KEY_A,  0x00C4, 
++IBUS_KEY_diaeresis, IBUS_KEY_E,  0x00CB, 
++IBUS_KEY_diaeresis, IBUS_KEY_I,  0x00CF, 
++IBUS_KEY_diaeresis, IBUS_KEY_O,  0x00D6, 
++IBUS_KEY_diaeresis, IBUS_KEY_U,  0x00DC, 
++IBUS_KEY_diaeresis, IBUS_KEY_Y,  0x0178, 
++IBUS_KEY_diaeresis, IBUS_KEY_grave,  0x1FED, 
++IBUS_KEY_diaeresis, IBUS_KEY_a,  0x00E4, 
++IBUS_KEY_diaeresis, IBUS_KEY_e,  0x00EB, 
++IBUS_KEY_diaeresis, IBUS_KEY_i,  0x00EF, 
++IBUS_KEY_diaeresis, IBUS_KEY_o,  0x00F6, 
++IBUS_KEY_diaeresis, IBUS_KEY_u,  0x00FC, 
++IBUS_KEY_diaeresis, IBUS_KEY_y,  0x00FF, 
++IBUS_KEY_diaeresis, IBUS_KEY_asciitilde,  0x1FC1, 
++IBUS_KEY_diaeresis, IBUS_KEY_acute,  0x0385, 
++IBUS_KEY_diaeresis, 0x2207,  0x2362, 
++IBUS_KEY_diaeresis, 0x2218,  0x2364, 
++IBUS_KEY_diaeresis, IBUS_KEY_uptack,  0x2361, 
++IBUS_KEY_diaeresis, IBUS_KEY_emopencircle,  0x2365, 
++IBUS_KEY_diaeresis, IBUS_KEY_dead_grave,  0x1FED, 
++IBUS_KEY_diaeresis, IBUS_KEY_dead_acute,  0x0385, 
++IBUS_KEY_diaeresis, IBUS_KEY_dead_tilde,  0x1FC1, 
++IBUS_KEY_macron, IBUS_KEY_A,  0x0100, 
++IBUS_KEY_macron, IBUS_KEY_E,  0x0112, 
++IBUS_KEY_macron, IBUS_KEY_G,  0x1E20, 
++IBUS_KEY_macron, IBUS_KEY_I,  0x012A, 
++IBUS_KEY_macron, IBUS_KEY_O,  0x014C, 
++IBUS_KEY_macron, IBUS_KEY_U,  0x016A, 
++IBUS_KEY_macron, IBUS_KEY_Y,  0x0232, 
++IBUS_KEY_macron, IBUS_KEY_a,  0x0101, 
++IBUS_KEY_macron, IBUS_KEY_e,  0x0113, 
++IBUS_KEY_macron, IBUS_KEY_g,  0x1E21, 
++IBUS_KEY_macron, IBUS_KEY_i,  0x012B, 
++IBUS_KEY_macron, IBUS_KEY_o,  0x014D, 
++IBUS_KEY_macron, IBUS_KEY_u,  0x016B, 
++IBUS_KEY_macron, IBUS_KEY_y,  0x0233, 
++IBUS_KEY_macron, IBUS_KEY_Adiaeresis,  0x01DE, 
++IBUS_KEY_macron, IBUS_KEY_AE,  0x01E2, 
++IBUS_KEY_macron, IBUS_KEY_Otilde,  0x022C, 
++IBUS_KEY_macron, IBUS_KEY_Odiaeresis,  0x022A, 
++IBUS_KEY_macron, IBUS_KEY_Udiaeresis,  0x01D5, 
++IBUS_KEY_macron, IBUS_KEY_adiaeresis,  0x01DF, 
++IBUS_KEY_macron, IBUS_KEY_ae,  0x01E3, 
++IBUS_KEY_macron, IBUS_KEY_otilde,  0x022D, 
++IBUS_KEY_macron, IBUS_KEY_odiaeresis,  0x022B, 
++IBUS_KEY_macron, IBUS_KEY_udiaeresis,  0x01D6, 
++IBUS_KEY_macron, 0x01EA,  0x01EC, 
++IBUS_KEY_macron, 0x01EB,  0x01ED, 
++IBUS_KEY_macron, 0x0226,  0x01E0, 
++IBUS_KEY_macron, 0x0227,  0x01E1, 
++IBUS_KEY_macron, 0x022E,  0x0230, 
++IBUS_KEY_macron, 0x022F,  0x0231, 
++IBUS_KEY_macron, IBUS_KEY_Cyrillic_i,  0x04E3, 
++IBUS_KEY_macron, IBUS_KEY_Cyrillic_u,  0x04EF, 
++IBUS_KEY_macron, IBUS_KEY_Cyrillic_I,  0x04E2, 
++IBUS_KEY_macron, IBUS_KEY_Cyrillic_U,  0x04EE, 
++IBUS_KEY_macron, IBUS_KEY_Greek_ALPHA,  0x1FB9, 
++IBUS_KEY_macron, IBUS_KEY_Greek_IOTA,  0x1FD9, 
++IBUS_KEY_macron, IBUS_KEY_Greek_UPSILON,  0x1FE9, 
++IBUS_KEY_macron, IBUS_KEY_Greek_alpha,  0x1FB1, 
++IBUS_KEY_macron, IBUS_KEY_Greek_iota,  0x1FD1, 
++IBUS_KEY_macron, IBUS_KEY_Greek_upsilon,  0x1FE1, 
++IBUS_KEY_macron, 0x1E36,  0x1E38, 
++IBUS_KEY_macron, 0x1E37,  0x1E39, 
++IBUS_KEY_macron, 0x1E5A,  0x1E5C, 
++IBUS_KEY_macron, 0x1E5B,  0x1E5D, 
++IBUS_KEY_macron, IBUS_KEY_uptack,  0x2351, 
++IBUS_KEY_acute, IBUS_KEY_A,  0x00C1, 
++IBUS_KEY_acute, IBUS_KEY_C,  0x0106, 
++IBUS_KEY_acute, IBUS_KEY_E,  0x00C9, 
++IBUS_KEY_acute, IBUS_KEY_G,  0x01F4, 
++IBUS_KEY_acute, IBUS_KEY_I,  0x00CD, 
++IBUS_KEY_acute, IBUS_KEY_K,  0x1E30, 
++IBUS_KEY_acute, IBUS_KEY_L,  0x0139, 
++IBUS_KEY_acute, IBUS_KEY_M,  0x1E3E, 
++IBUS_KEY_acute, IBUS_KEY_N,  0x0143, 
++IBUS_KEY_acute, IBUS_KEY_O,  0x00D3, 
++IBUS_KEY_acute, IBUS_KEY_P,  0x1E54, 
++IBUS_KEY_acute, IBUS_KEY_R,  0x0154, 
++IBUS_KEY_acute, IBUS_KEY_S,  0x015A, 
++IBUS_KEY_acute, IBUS_KEY_U,  0x00DA, 
++IBUS_KEY_acute, IBUS_KEY_W,  0x1E82, 
++IBUS_KEY_acute, IBUS_KEY_Y,  0x00DD, 
++IBUS_KEY_acute, IBUS_KEY_Z,  0x0179, 
++IBUS_KEY_acute, IBUS_KEY_a,  0x00E1, 
++IBUS_KEY_acute, IBUS_KEY_c,  0x0107, 
++IBUS_KEY_acute, IBUS_KEY_e,  0x00E9, 
++IBUS_KEY_acute, IBUS_KEY_g,  0x01F5, 
++IBUS_KEY_acute, IBUS_KEY_i,  0x00ED, 
++IBUS_KEY_acute, IBUS_KEY_k,  0x1E31, 
++IBUS_KEY_acute, IBUS_KEY_l,  0x013A, 
++IBUS_KEY_acute, IBUS_KEY_m,  0x1E3F, 
++IBUS_KEY_acute, IBUS_KEY_n,  0x0144, 
++IBUS_KEY_acute, IBUS_KEY_o,  0x00F3, 
++IBUS_KEY_acute, IBUS_KEY_p,  0x1E55, 
++IBUS_KEY_acute, IBUS_KEY_r,  0x0155, 
++IBUS_KEY_acute, IBUS_KEY_s,  0x015B, 
++IBUS_KEY_acute, IBUS_KEY_u,  0x00FA, 
++IBUS_KEY_acute, IBUS_KEY_w,  0x1E83, 
++IBUS_KEY_acute, IBUS_KEY_y,  0x00FD, 
++IBUS_KEY_acute, IBUS_KEY_z,  0x017A, 
++IBUS_KEY_acute, IBUS_KEY_Acircumflex,  0x1EA4, 
++IBUS_KEY_acute, IBUS_KEY_Aring,  0x01FA, 
++IBUS_KEY_acute, IBUS_KEY_AE,  0x01FC, 
++IBUS_KEY_acute, IBUS_KEY_Ccedilla,  0x1E08, 
++IBUS_KEY_acute, IBUS_KEY_Ecircumflex,  0x1EBE, 
++IBUS_KEY_acute, IBUS_KEY_Idiaeresis,  0x1E2E, 
++IBUS_KEY_acute, IBUS_KEY_Ocircumflex,  0x1ED0, 
++IBUS_KEY_acute, IBUS_KEY_Otilde,  0x1E4C, 
++IBUS_KEY_acute, IBUS_KEY_Ooblique,  0x01FE, 
++IBUS_KEY_acute, IBUS_KEY_Udiaeresis,  0x01D7, 
++IBUS_KEY_acute, IBUS_KEY_acircumflex,  0x1EA5, 
++IBUS_KEY_acute, IBUS_KEY_aring,  0x01FB, 
++IBUS_KEY_acute, IBUS_KEY_ae,  0x01FD, 
++IBUS_KEY_acute, IBUS_KEY_ccedilla,  0x1E09, 
++IBUS_KEY_acute, IBUS_KEY_ecircumflex,  0x1EBF, 
++IBUS_KEY_acute, IBUS_KEY_idiaeresis,  0x1E2F, 
++IBUS_KEY_acute, IBUS_KEY_ocircumflex,  0x1ED1, 
++IBUS_KEY_acute, IBUS_KEY_otilde,  0x1E4D, 
++IBUS_KEY_acute, IBUS_KEY_oslash,  0x01FF, 
++IBUS_KEY_acute, IBUS_KEY_udiaeresis,  0x01D8, 
++IBUS_KEY_acute, IBUS_KEY_Abreve,  0x1EAE, 
++IBUS_KEY_acute, IBUS_KEY_abreve,  0x1EAF, 
++IBUS_KEY_acute, IBUS_KEY_Emacron,  0x1E16, 
++IBUS_KEY_acute, IBUS_KEY_emacron,  0x1E17, 
++IBUS_KEY_acute, IBUS_KEY_Omacron,  0x1E52, 
++IBUS_KEY_acute, IBUS_KEY_Utilde,  0x1E78, 
++IBUS_KEY_acute, IBUS_KEY_omacron,  0x1E53, 
++IBUS_KEY_acute, IBUS_KEY_utilde,  0x1E79, 
++IBUS_KEY_acute, IBUS_KEY_Cyrillic_ghe,  0x0453, 
++IBUS_KEY_acute, IBUS_KEY_Cyrillic_ka,  0x045C, 
++IBUS_KEY_acute, IBUS_KEY_Cyrillic_GHE,  0x0403, 
++IBUS_KEY_acute, IBUS_KEY_Cyrillic_KA,  0x040C, 
++IBUS_KEY_acute, IBUS_KEY_Greek_iotadieresis,  0x0390, 
++IBUS_KEY_acute, IBUS_KEY_Greek_upsilondieresis,  0x03B0, 
++IBUS_KEY_acute, IBUS_KEY_Greek_ALPHA,  0x0386, 
++IBUS_KEY_acute, IBUS_KEY_Greek_EPSILON,  0x0388, 
++IBUS_KEY_acute, IBUS_KEY_Greek_ETA,  0x0389, 
++IBUS_KEY_acute, IBUS_KEY_Greek_IOTA,  0x038A, 
++IBUS_KEY_acute, IBUS_KEY_Greek_OMICRON,  0x038C, 
++IBUS_KEY_acute, IBUS_KEY_Greek_UPSILON,  0x038E, 
++IBUS_KEY_acute, IBUS_KEY_Greek_OMEGA,  0x038F, 
++IBUS_KEY_acute, IBUS_KEY_Greek_alpha,  0x03AC, 
++IBUS_KEY_acute, IBUS_KEY_Greek_epsilon,  0x03AD, 
++IBUS_KEY_acute, IBUS_KEY_Greek_eta,  0x03AE, 
++IBUS_KEY_acute, IBUS_KEY_Greek_iota,  0x03AF, 
++IBUS_KEY_acute, IBUS_KEY_Greek_omicron,  0x03CC, 
++IBUS_KEY_acute, IBUS_KEY_Greek_upsilon,  0x03CD, 
++IBUS_KEY_acute, IBUS_KEY_Greek_omega,  0x03CE, 
++IBUS_KEY_acute, 0x1F00,  0x1F04, 
++IBUS_KEY_acute, 0x1F01,  0x1F05, 
++IBUS_KEY_acute, 0x1F08,  0x1F0C, 
++IBUS_KEY_acute, 0x1F09,  0x1F0D, 
++IBUS_KEY_acute, 0x1F10,  0x1F14, 
++IBUS_KEY_acute, 0x1F11,  0x1F15, 
++IBUS_KEY_acute, 0x1F18,  0x1F1C, 
++IBUS_KEY_acute, 0x1F19,  0x1F1D, 
++IBUS_KEY_acute, 0x1F20,  0x1F24, 
++IBUS_KEY_acute, 0x1F21,  0x1F25, 
++IBUS_KEY_acute, 0x1F28,  0x1F2C, 
++IBUS_KEY_acute, 0x1F29,  0x1F2D, 
++IBUS_KEY_acute, 0x1F30,  0x1F34, 
++IBUS_KEY_acute, 0x1F31,  0x1F35, 
++IBUS_KEY_acute, 0x1F38,  0x1F3C, 
++IBUS_KEY_acute, 0x1F39,  0x1F3D, 
++IBUS_KEY_acute, 0x1F40,  0x1F44, 
++IBUS_KEY_acute, 0x1F41,  0x1F45, 
++IBUS_KEY_acute, 0x1F48,  0x1F4C, 
++IBUS_KEY_acute, 0x1F49,  0x1F4D, 
++IBUS_KEY_acute, 0x1F50,  0x1F54, 
++IBUS_KEY_acute, 0x1F51,  0x1F55, 
++IBUS_KEY_acute, 0x1F59,  0x1F5D, 
++IBUS_KEY_acute, 0x1F60,  0x1F64, 
++IBUS_KEY_acute, 0x1F61,  0x1F65, 
++IBUS_KEY_acute, 0x1F68,  0x1F6C, 
++IBUS_KEY_acute, 0x1F69,  0x1F6D, 
++IBUS_KEY_cedilla, IBUS_KEY_C,  0x00C7, 
++IBUS_KEY_cedilla, IBUS_KEY_D,  0x1E10, 
++IBUS_KEY_cedilla, IBUS_KEY_E,  0x0228, 
++IBUS_KEY_cedilla, IBUS_KEY_G,  0x0122, 
++IBUS_KEY_cedilla, IBUS_KEY_H,  0x1E28, 
++IBUS_KEY_cedilla, IBUS_KEY_K,  0x0136, 
++IBUS_KEY_cedilla, IBUS_KEY_L,  0x013B, 
++IBUS_KEY_cedilla, IBUS_KEY_N,  0x0145, 
++IBUS_KEY_cedilla, IBUS_KEY_R,  0x0156, 
++IBUS_KEY_cedilla, IBUS_KEY_S,  0x015E, 
++IBUS_KEY_cedilla, IBUS_KEY_T,  0x0162, 
++IBUS_KEY_cedilla, IBUS_KEY_c,  0x00E7, 
++IBUS_KEY_cedilla, IBUS_KEY_d,  0x1E11, 
++IBUS_KEY_cedilla, IBUS_KEY_e,  0x0229, 
++IBUS_KEY_cedilla, IBUS_KEY_g,  0x0123, 
++IBUS_KEY_cedilla, IBUS_KEY_h,  0x1E29, 
++IBUS_KEY_cedilla, IBUS_KEY_k,  0x0137, 
++IBUS_KEY_cedilla, IBUS_KEY_l,  0x013C, 
++IBUS_KEY_cedilla, IBUS_KEY_n,  0x0146, 
++IBUS_KEY_cedilla, IBUS_KEY_r,  0x0157, 
++IBUS_KEY_cedilla, IBUS_KEY_s,  0x015F, 
++IBUS_KEY_cedilla, IBUS_KEY_t,  0x0163, 
++IBUS_KEY_division, 0x2395,  0x2339, 
++IBUS_KEY_breve, IBUS_KEY_G,  0x011E, 
++IBUS_KEY_breve, IBUS_KEY_g,  0x011F, 
++0x05B4, IBUS_KEY_hebrew_yod,  0xFB1D, 
++0x05B7, 0x05F2,  0xFB1F, 
++0x05B7, IBUS_KEY_hebrew_aleph,  0xFB2E, 
++0x05B8, IBUS_KEY_hebrew_aleph,  0xFB2F, 
++0x05B9, IBUS_KEY_hebrew_waw,  0xFB4B, 
++0x05BC, IBUS_KEY_hebrew_aleph,  0xFB30, 
++0x05BC, IBUS_KEY_hebrew_bet,  0xFB31, 
++0x05BC, IBUS_KEY_hebrew_gimel,  0xFB32, 
++0x05BC, IBUS_KEY_hebrew_dalet,  0xFB33, 
++0x05BC, IBUS_KEY_hebrew_he,  0xFB34, 
++0x05BC, IBUS_KEY_hebrew_waw,  0xFB35, 
++0x05BC, IBUS_KEY_hebrew_zain,  0xFB36, 
++0x05BC, IBUS_KEY_hebrew_tet,  0xFB38, 
++0x05BC, IBUS_KEY_hebrew_yod,  0xFB39, 
++0x05BC, IBUS_KEY_hebrew_finalkaph,  0xFB3A, 
++0x05BC, IBUS_KEY_hebrew_kaph,  0xFB3B, 
++0x05BC, IBUS_KEY_hebrew_lamed,  0xFB3C, 
++0x05BC, IBUS_KEY_hebrew_mem,  0xFB3E, 
++0x05BC, IBUS_KEY_hebrew_nun,  0xFB40, 
++0x05BC, IBUS_KEY_hebrew_samech,  0xFB41, 
++0x05BC, IBUS_KEY_hebrew_finalpe,  0xFB43, 
++0x05BC, IBUS_KEY_hebrew_pe,  0xFB44, 
++0x05BC, IBUS_KEY_hebrew_zade,  0xFB46, 
++0x05BC, IBUS_KEY_hebrew_kuf,  0xFB47, 
++0x05BC, IBUS_KEY_hebrew_resh,  0xFB48, 
++0x05BC, IBUS_KEY_hebrew_shin,  0xFB49, 
++0x05BC, IBUS_KEY_hebrew_taf,  0xFB4A, 
++0x05BF, IBUS_KEY_hebrew_bet,  0xFB4C, 
++0x05BF, IBUS_KEY_hebrew_kaph,  0xFB4D, 
++0x05BF, IBUS_KEY_hebrew_pe,  0xFB4E, 
++0x05C1, IBUS_KEY_hebrew_shin,  0xFB2A, 
++0x05C1, 0xFB49,  0xFB2C, 
++0x05C2, IBUS_KEY_hebrew_shin,  0xFB2B, 
++0x05C2, 0xFB49,  0xFB2D, 
++0x0653, IBUS_KEY_Arabic_alef,  0x0622, 
++0x0654, IBUS_KEY_Arabic_alef,  0x0623, 
++0x0654, IBUS_KEY_Arabic_waw,  0x0624, 
++0x0654, IBUS_KEY_Arabic_yeh,  0x0626, 
++0x0654, 0x06C1,  0x06C2, 
++0x0654, 0x06D2,  0x06D3, 
++0x0654, 0x06D5,  0x06C0, 
++0x0655, IBUS_KEY_Arabic_alef,  0x0625, 
++IBUS_KEY_Cyrillic_pe, IBUS_KEY_Cyrillic_a,  0x00A7, 
++IBUS_KEY_Cyrillic_IE, IBUS_KEY_equal,  0x20AC, 
++IBUS_KEY_Cyrillic_EN, IBUS_KEY_Cyrillic_o,  0x2116, 
++IBUS_KEY_Cyrillic_EN, IBUS_KEY_Cyrillic_O,  0x2116, 
++IBUS_KEY_Cyrillic_ES, IBUS_KEY_equal,  0x20AC, 
++IBUS_KEY_Greek_ALPHA, IBUS_KEY_apostrophe,  0x0386, 
++IBUS_KEY_Greek_EPSILON, IBUS_KEY_apostrophe,  0x0388, 
++IBUS_KEY_Greek_ETA, IBUS_KEY_apostrophe,  0x0389, 
++IBUS_KEY_Greek_IOTA, IBUS_KEY_quotedbl,  0x03AA, 
++IBUS_KEY_Greek_IOTA, IBUS_KEY_apostrophe,  0x038A, 
++IBUS_KEY_Greek_OMICRON, IBUS_KEY_apostrophe,  0x038C, 
++IBUS_KEY_Greek_UPSILON, IBUS_KEY_quotedbl,  0x03AB, 
++IBUS_KEY_Greek_UPSILON, IBUS_KEY_apostrophe,  0x038E, 
++IBUS_KEY_Greek_OMEGA, IBUS_KEY_apostrophe,  0x038F, 
++IBUS_KEY_Greek_alpha, IBUS_KEY_apostrophe,  0x03AC, 
++IBUS_KEY_Greek_epsilon, IBUS_KEY_apostrophe,  0x03AD, 
++IBUS_KEY_Greek_eta, IBUS_KEY_apostrophe,  0x03AE, 
++IBUS_KEY_Greek_iota, IBUS_KEY_quotedbl,  0x03CA, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe,  0x03AF, 
++IBUS_KEY_Greek_iota, IBUS_KEY_Greek_alphaaccent,  0x1FB4, 
++IBUS_KEY_Greek_iota, IBUS_KEY_Greek_etaaccent,  0x1FC4, 
++IBUS_KEY_Greek_iota, IBUS_KEY_Greek_omegaaccent,  0x1FF4, 
++IBUS_KEY_Greek_iota, IBUS_KEY_Greek_ALPHA,  0x1FBC, 
++IBUS_KEY_Greek_iota, IBUS_KEY_Greek_ETA,  0x1FCC, 
++IBUS_KEY_Greek_iota, IBUS_KEY_Greek_OMEGA,  0x1FFC, 
++IBUS_KEY_Greek_iota, IBUS_KEY_Greek_alpha,  0x1FB3, 
++IBUS_KEY_Greek_iota, IBUS_KEY_Greek_eta,  0x1FC3, 
++IBUS_KEY_Greek_iota, IBUS_KEY_Greek_omega,  0x1FF3, 
++IBUS_KEY_Greek_iota, 0x1F00,  0x1F80, 
++IBUS_KEY_Greek_iota, 0x1F01,  0x1F81, 
++IBUS_KEY_Greek_iota, 0x1F02,  0x1F82, 
++IBUS_KEY_Greek_iota, 0x1F03,  0x1F83, 
++IBUS_KEY_Greek_iota, 0x1F04,  0x1F84, 
++IBUS_KEY_Greek_iota, 0x1F05,  0x1F85, 
++IBUS_KEY_Greek_iota, 0x1F06,  0x1F86, 
++IBUS_KEY_Greek_iota, 0x1F07,  0x1F87, 
++IBUS_KEY_Greek_iota, 0x1F08,  0x1F88, 
++IBUS_KEY_Greek_iota, 0x1F09,  0x1F89, 
++IBUS_KEY_Greek_iota, 0x1F0A,  0x1F8A, 
++IBUS_KEY_Greek_iota, 0x1F0B,  0x1F8B, 
++IBUS_KEY_Greek_iota, 0x1F0C,  0x1F8C, 
++IBUS_KEY_Greek_iota, 0x1F0D,  0x1F8D, 
++IBUS_KEY_Greek_iota, 0x1F0E,  0x1F8E, 
++IBUS_KEY_Greek_iota, 0x1F0F,  0x1F8F, 
++IBUS_KEY_Greek_iota, 0x1F20,  0x1F90, 
++IBUS_KEY_Greek_iota, 0x1F21,  0x1F91, 
++IBUS_KEY_Greek_iota, 0x1F22,  0x1F92, 
++IBUS_KEY_Greek_iota, 0x1F23,  0x1F93, 
++IBUS_KEY_Greek_iota, 0x1F24,  0x1F94, 
++IBUS_KEY_Greek_iota, 0x1F25,  0x1F95, 
++IBUS_KEY_Greek_iota, 0x1F26,  0x1F96, 
++IBUS_KEY_Greek_iota, 0x1F27,  0x1F97, 
++IBUS_KEY_Greek_iota, 0x1F28,  0x1F98, 
++IBUS_KEY_Greek_iota, 0x1F29,  0x1F99, 
++IBUS_KEY_Greek_iota, 0x1F2A,  0x1F9A, 
++IBUS_KEY_Greek_iota, 0x1F2B,  0x1F9B, 
++IBUS_KEY_Greek_iota, 0x1F2C,  0x1F9C, 
++IBUS_KEY_Greek_iota, 0x1F2D,  0x1F9D, 
++IBUS_KEY_Greek_iota, 0x1F2E,  0x1F9E, 
++IBUS_KEY_Greek_iota, 0x1F2F,  0x1F9F, 
++IBUS_KEY_Greek_iota, 0x1F60,  0x1FA0, 
++IBUS_KEY_Greek_iota, 0x1F61,  0x1FA1, 
++IBUS_KEY_Greek_iota, 0x1F62,  0x1FA2, 
++IBUS_KEY_Greek_iota, 0x1F63,  0x1FA3, 
++IBUS_KEY_Greek_iota, 0x1F64,  0x1FA4, 
++IBUS_KEY_Greek_iota, 0x1F65,  0x1FA5, 
++IBUS_KEY_Greek_iota, 0x1F66,  0x1FA6, 
++IBUS_KEY_Greek_iota, 0x1F67,  0x1FA7, 
++IBUS_KEY_Greek_iota, 0x1F68,  0x1FA8, 
++IBUS_KEY_Greek_iota, 0x1F69,  0x1FA9, 
++IBUS_KEY_Greek_iota, 0x1F6A,  0x1FAA, 
++IBUS_KEY_Greek_iota, 0x1F6B,  0x1FAB, 
++IBUS_KEY_Greek_iota, 0x1F6C,  0x1FAC, 
++IBUS_KEY_Greek_iota, 0x1F6D,  0x1FAD, 
++IBUS_KEY_Greek_iota, 0x1F6E,  0x1FAE, 
++IBUS_KEY_Greek_iota, 0x1F6F,  0x1FAF, 
++IBUS_KEY_Greek_iota, 0x1F70,  0x1FB2, 
++IBUS_KEY_Greek_iota, 0x1F74,  0x1FC2, 
++IBUS_KEY_Greek_iota, 0x1F7C,  0x1FF2, 
++IBUS_KEY_Greek_iota, 0x1FB6,  0x1FB7, 
++IBUS_KEY_Greek_iota, 0x1FC6,  0x1FC7, 
++IBUS_KEY_Greek_iota, 0x1FF6,  0x1FF7, 
++IBUS_KEY_Greek_omicron, IBUS_KEY_apostrophe,  0x03CC, 
++IBUS_KEY_Greek_upsilon, IBUS_KEY_quotedbl,  0x03CB, 
++IBUS_KEY_Greek_upsilon, IBUS_KEY_apostrophe,  0x03CD, 
++IBUS_KEY_Greek_omega, IBUS_KEY_apostrophe,  0x03CE, 
++IBUS_KEY_lessthanequal, 0x0338,  0x2270, 
++IBUS_KEY_greaterthanequal, 0x0338,  0x2271, 
++IBUS_KEY_approximate, 0x0338,  0x2247, 
++IBUS_KEY_identical, 0x0338,  0x2262, 
++IBUS_KEY_includedin, 0x0338,  0x2284, 
++IBUS_KEY_includes, 0x0338,  0x2285, 
++0x093C, 0x0915,  0x0958, 
++0x093C, 0x0916,  0x0959, 
++0x093C, 0x0917,  0x095A, 
++0x093C, 0x091C,  0x095B, 
++0x093C, 0x0921,  0x095C, 
++0x093C, 0x0922,  0x095D, 
++0x093C, 0x0928,  0x0929, 
++0x093C, 0x092B,  0x095E, 
++0x093C, 0x092F,  0x095F, 
++0x093C, 0x0930,  0x0931, 
++0x093C, 0x0933,  0x0934, 
++0x09BC, 0x09A1,  0x09DC, 
++0x09BC, 0x09A2,  0x09DD, 
++0x09BC, 0x09AF,  0x09DF, 
++0x09C7, 0x09BE,  0x09CB, 
++0x09C7, 0x09D7,  0x09CC, 
++0x0A3C, 0x0A16,  0x0A59, 
++0x0A3C, 0x0A17,  0x0A5A, 
++0x0A3C, 0x0A1C,  0x0A5B, 
++0x0A3C, 0x0A2B,  0x0A5E, 
++0x0A3C, 0x0A32,  0x0A33, 
++0x0A3C, 0x0A38,  0x0A36, 
++0x0B3C, 0x0B21,  0x0B5C, 
++0x0B3C, 0x0B22,  0x0B5D, 
++0x0B47, 0x0B3E,  0x0B4B, 
++0x0B47, 0x0B56,  0x0B48, 
++0x0B47, 0x0B57,  0x0B4C, 
++IBUS_KEY_leftcaret, 0x0338,  0x226E, 
++IBUS_KEY_rightcaret, 0x0338,  0x226F, 
++IBUS_KEY_underbar, IBUS_KEY_parenleft,  0x208D, 
++IBUS_KEY_underbar, IBUS_KEY_parenright,  0x208E, 
++IBUS_KEY_underbar, IBUS_KEY_plus,  0x208A, 
++IBUS_KEY_underbar, IBUS_KEY_0,  0x2080, 
++IBUS_KEY_underbar, IBUS_KEY_1,  0x2081, 
++IBUS_KEY_underbar, IBUS_KEY_2,  0x2082, 
++IBUS_KEY_underbar, IBUS_KEY_3,  0x2083, 
++IBUS_KEY_underbar, IBUS_KEY_4,  0x2084, 
++IBUS_KEY_underbar, IBUS_KEY_5,  0x2085, 
++IBUS_KEY_underbar, IBUS_KEY_6,  0x2086, 
++IBUS_KEY_underbar, IBUS_KEY_7,  0x2087, 
++IBUS_KEY_underbar, IBUS_KEY_8,  0x2088, 
++IBUS_KEY_underbar, IBUS_KEY_9,  0x2089, 
++IBUS_KEY_underbar, IBUS_KEY_equal,  0x208C, 
++0x0BC6, 0x0BBE,  0x0BCA, 
++0x0BC6, 0x0BD7,  0x0BCC, 
++IBUS_KEY_underbar, 0x2212,  0x208B, 
++IBUS_KEY_underbar, IBUS_KEY_KP_Space,  0x2082, 
++IBUS_KEY_underbar, IBUS_KEY_KP_Add,  0x208A, 
++IBUS_KEY_underbar, IBUS_KEY_KP_0,  0x2080, 
++IBUS_KEY_underbar, IBUS_KEY_KP_1,  0x2081, 
++IBUS_KEY_underbar, IBUS_KEY_KP_2,  0x2082, 
++IBUS_KEY_underbar, IBUS_KEY_KP_3,  0x2083, 
++IBUS_KEY_underbar, IBUS_KEY_KP_4,  0x2084, 
++IBUS_KEY_underbar, IBUS_KEY_KP_5,  0x2085, 
++IBUS_KEY_underbar, IBUS_KEY_KP_6,  0x2086, 
++IBUS_KEY_underbar, IBUS_KEY_KP_7,  0x2087, 
++IBUS_KEY_underbar, IBUS_KEY_KP_8,  0x2088, 
++IBUS_KEY_underbar, IBUS_KEY_KP_9,  0x2089, 
++IBUS_KEY_underbar, IBUS_KEY_KP_Equal,  0x208C, 
++0x0BC7, 0x0BBE,  0x0BCB, 
++0x0BD7, 0x0B92,  0x0B94, 
++IBUS_KEY_rightshoe, 0x0338,  0x2285, 
++IBUS_KEY_leftshoe, 0x0338,  0x2284, 
++IBUS_KEY_righttack, 0x0338,  0x22AC, 
++0x0C46, 0x0C56,  0x0C48, 
++0x0CBF, 0x0CD5,  0x0CC0, 
++0x0CC6, 0x0CC2,  0x0CCA, 
++0x0CC6, 0x0CD5,  0x0CC7, 
++0x0CC6, 0x0CD6,  0x0CC8, 
++0x0CCA, 0x0CD5,  0x0CCB, 
++0x0D46, 0x0D3E,  0x0D4A, 
++0x0D46, 0x0D57,  0x0D4C, 
++0x0D47, 0x0D3E,  0x0D4B, 
++0x0DD9, 0x0DCA,  0x0DDA, 
++0x0DD9, 0x0DCF,  0x0DDC, 
++0x0DD9, 0x0DDF,  0x0DDE, 
++0x0DDC, 0x0DCA,  0x0DDD, 
++0x0F71, 0x0F72,  0x0F73, 
++0x0F71, 0x0F74,  0x0F75, 
++0x0F71, 0x0F80,  0x0F81, 
++0x0F90, 0x0FB5,  0x0FB9, 
++0x0F92, 0x0FB7,  0x0F93, 
++0x0F9C, 0x0FB7,  0x0F9D, 
++0x0FA1, 0x0FB7,  0x0FA2, 
++0x0FA6, 0x0FB7,  0x0FA7, 
++0x0FAB, 0x0FB7,  0x0FAC, 
++0x0FB2, 0x0F80,  0x0F76, 
++0x0FB3, 0x0F80,  0x0F78, 
++0x0FB5, 0x0F40,  0x0F69, 
++0x0FB7, 0x0F42,  0x0F43, 
++0x0FB7, 0x0F4C,  0x0F4D, 
++0x0FB7, 0x0F51,  0x0F52, 
++0x0FB7, 0x0F56,  0x0F57, 
++0x0FB7, 0x0F5B,  0x0F5C, 
++0x102E, 0x1025,  0x1026, 
++0x1100, 0x1100,  0x1101, 
++0x1102, 0x1100,  0x1113, 
++0x1102, 0x1102,  0x1114, 
++0x1102, 0x1103,  0x1115, 
++0x1102, 0x1107,  0x1116, 
++0x1103, 0x1100,  0x1117, 
++0x1103, 0x1103,  0x1104, 
++0x1105, 0x1102,  0x1118, 
++0x1105, 0x1105,  0x1119, 
++0x1105, 0x110B,  0x111B, 
++0x1105, 0x1112,  0x111A, 
++0x1106, 0x1107,  0x111C, 
++0x1106, 0x110B,  0x111D, 
++0x1107, 0x1100,  0x111E, 
++0x1107, 0x1102,  0x111F, 
++0x1107, 0x1103,  0x1120, 
++0x1107, 0x1107,  0x1108, 
++0x1107, 0x1109,  0x1121, 
++0x1107, 0x110A,  0x1125, 
++0x1107, 0x110B,  0x112B, 
++0x1107, 0x110C,  0x1127, 
++0x1107, 0x110E,  0x1128, 
++0x1107, 0x1110,  0x1129, 
++0x1107, 0x1111,  0x112A, 
++0x1107, 0x112B,  0x112C, 
++0x1107, 0x112D,  0x1122, 
++0x1107, 0x112F,  0x1123, 
++0x1107, 0x1132,  0x1124, 
++0x1107, 0x1136,  0x1126, 
++0x1108, 0x110B,  0x112C, 
++0x1109, 0x1100,  0x112D, 
++0x1109, 0x1102,  0x112E, 
++0x1109, 0x1103,  0x112F, 
++0x1109, 0x1105,  0x1130, 
++0x1109, 0x1106,  0x1131, 
++0x1109, 0x1107,  0x1132, 
++0x1109, 0x1109,  0x110A, 
++0x1109, 0x110A,  0x1134, 
++0x1109, 0x110B,  0x1135, 
++0x1109, 0x110C,  0x1136, 
++0x1109, 0x110E,  0x1137, 
++0x1109, 0x110F,  0x1138, 
++0x1109, 0x1110,  0x1139, 
++0x1109, 0x1111,  0x113A, 
++0x1109, 0x1112,  0x113B, 
++0x1109, 0x111E,  0x1133, 
++0x110A, 0x1109,  0x1134, 
++0x110B, 0x1100,  0x1141, 
++0x110B, 0x1103,  0x1142, 
++0x110B, 0x1106,  0x1143, 
++0x110B, 0x1107,  0x1144, 
++0x110B, 0x1109,  0x1145, 
++0x110B, 0x110B,  0x1147, 
++0x110B, 0x110C,  0x1148, 
++0x110B, 0x110E,  0x1149, 
++0x110B, 0x1110,  0x114A, 
++0x110B, 0x1111,  0x114B, 
++0x110B, 0x1140,  0x1146, 
++0x110C, 0x110B,  0x114D, 
++0x110C, 0x110C,  0x110D, 
++0x110E, 0x110F,  0x1152, 
++0x110E, 0x1112,  0x1153, 
++0x1111, 0x1107,  0x1156, 
++0x1111, 0x110B,  0x1157, 
++0x1112, 0x1112,  0x1158, 
++0x1121, 0x1100,  0x1122, 
++0x1121, 0x1103,  0x1123, 
++0x1121, 0x1107,  0x1124, 
++0x1121, 0x1109,  0x1125, 
++0x1121, 0x110C,  0x1126, 
++0x1132, 0x1100,  0x1133, 
++0x113C, 0x113C,  0x113D, 
++0x113E, 0x113E,  0x113F, 
++0x114E, 0x114E,  0x114F, 
++0x1150, 0x1150,  0x1151, 
++0x1161, 0x1169,  0x1176, 
++0x1161, 0x116E,  0x1177, 
++0x1161, 0x1175,  0x1162, 
++0x1163, 0x1169,  0x1178, 
++0x1163, 0x116D,  0x1179, 
++0x1163, 0x1175,  0x1164, 
++0x1165, 0x1169,  0x117A, 
++0x1165, 0x116E,  0x117B, 
++0x1165, 0x1173,  0x117C, 
++0x1165, 0x1175,  0x1166, 
++0x1167, 0x1169,  0x117D, 
++0x1167, 0x116E,  0x117E, 
++0x1167, 0x1175,  0x1168, 
++0x1169, 0x1161,  0x116A, 
++0x1169, 0x1162,  0x116B, 
++0x1169, 0x1165,  0x117F, 
++0x1169, 0x1166,  0x1180, 
++0x1169, 0x1168,  0x1181, 
++0x1169, 0x1169,  0x1182, 
++0x1169, 0x116E,  0x1183, 
++0x1169, 0x1175,  0x116C, 
++0x116A, 0x1175,  0x116B, 
++0x116D, 0x1163,  0x1184, 
++0x116D, 0x1164,  0x1185, 
++0x116D, 0x1167,  0x1186, 
++0x116D, 0x1169,  0x1187, 
++0x116D, 0x1175,  0x1188, 
++0x116E, 0x1161,  0x1189, 
++0x116E, 0x1162,  0x118A, 
++0x116E, 0x1165,  0x116F, 
++0x116E, 0x1166,  0x1170, 
++0x116E, 0x1168,  0x118C, 
++0x116E, 0x116E,  0x118D, 
++0x116E, 0x1175,  0x1171, 
++0x116E, 0x117C,  0x118B, 
++0x116F, 0x1173,  0x118B, 
++0x116F, 0x1175,  0x1170, 
++0x1172, 0x1161,  0x118E, 
++0x1172, 0x1165,  0x118F, 
++0x1172, 0x1166,  0x1190, 
++0x1172, 0x1167,  0x1191, 
++0x1172, 0x1168,  0x1192, 
++0x1172, 0x116E,  0x1193, 
++0x1172, 0x1175,  0x1194, 
++0x1173, 0x116E,  0x1195, 
++0x1173, 0x1173,  0x1196, 
++0x1173, 0x1175,  0x1174, 
++0x1174, 0x116E,  0x1197, 
++0x1175, 0x1161,  0x1198, 
++0x1175, 0x1163,  0x1199, 
++0x1175, 0x1169,  0x119A, 
++0x1175, 0x116E,  0x119B, 
++0x1175, 0x1173,  0x119C, 
++0x1175, 0x119E,  0x119D, 
++0x119E, 0x1165,  0x119F, 
++0x119E, 0x116E,  0x11A0, 
++0x119E, 0x1175,  0x11A1, 
++0x119E, 0x119E,  0x11A2, 
++0x11A8, 0x11A8,  0x11A9, 
++0x11A8, 0x11AF,  0x11C3, 
++0x11A8, 0x11BA,  0x11AA, 
++0x11A8, 0x11E7,  0x11C4, 
++0x11AA, 0x11A8,  0x11C4, 
++0x11AB, 0x11A8,  0x11C5, 
++0x11AB, 0x11AE,  0x11C6, 
++0x11AB, 0x11BA,  0x11C7, 
++0x11AB, 0x11BD,  0x11AC, 
++0x11AB, 0x11C0,  0x11C9, 
++0x11AB, 0x11C2,  0x11AD, 
++0x11AB, 0x11EB,  0x11C8, 
++0x11AE, 0x11A8,  0x11CA, 
++0x11AE, 0x11AF,  0x11CB, 
++0x11AF, 0x11A8,  0x11B0, 
++0x11AF, 0x11AA,  0x11CC, 
++0x11AF, 0x11AB,  0x11CD, 
++0x11AF, 0x11AE,  0x11CE, 
++0x11AF, 0x11AF,  0x11D0, 
++0x11AF, 0x11B7,  0x11B1, 
++0x11AF, 0x11B8,  0x11B2, 
++0x11AF, 0x11B9,  0x11D3, 
++0x11AF, 0x11BA,  0x11B3, 
++0x11AF, 0x11BB,  0x11D6, 
++0x11AF, 0x11BF,  0x11D8, 
++0x11AF, 0x11C0,  0x11B4, 
++0x11AF, 0x11C1,  0x11B5, 
++0x11AF, 0x11C2,  0x11B6, 
++0x11AF, 0x11DA,  0x11D1, 
++0x11AF, 0x11DD,  0x11D2, 
++0x11AF, 0x11E5,  0x11D4, 
++0x11AF, 0x11E6,  0x11D5, 
++0x11AF, 0x11EB,  0x11D7, 
++0x11AF, 0x11F9,  0x11D9, 
++0x11B0, 0x11BA,  0x11CC, 
++0x11B1, 0x11A8,  0x11D1, 
++0x11B1, 0x11BA,  0x11D2, 
++0x11B2, 0x11BA,  0x11D3, 
++0x11B2, 0x11BC,  0x11D5, 
++0x11B2, 0x11C2,  0x11D4, 
++0x11B3, 0x11BA,  0x11D6, 
++0x11B7, 0x11A8,  0x11DA, 
++0x11B7, 0x11AF,  0x11DB, 
++0x11B7, 0x11B8,  0x11DC, 
++0x11B7, 0x11BA,  0x11DD, 
++0x11B7, 0x11BB,  0x11DE, 
++0x11B7, 0x11BC,  0x11E2, 
++0x11B7, 0x11BE,  0x11E0, 
++0x11B7, 0x11C2,  0x11E1, 
++0x11B7, 0x11EB,  0x11DF, 
++0x11B8, 0x11AF,  0x11E3, 
++0x11B8, 0x11BA,  0x11B9, 
++0x11B8, 0x11BC,  0x11E6, 
++0x11B8, 0x11C1,  0x11E4, 
++0x11B8, 0x11C2,  0x11E5, 
++0x11BA, 0x11A8,  0x11E7, 
++0x11BA, 0x11AE,  0x11E8, 
++0x11BA, 0x11AF,  0x11E9, 
++0x11BA, 0x11B8,  0x11EA, 
++0x11BA, 0x11BA,  0x11BB, 
++0x11BC, 0x11A8,  0x11EC, 
++0x11BC, 0x11A9,  0x11ED, 
++0x11BC, 0x11BC,  0x11EE, 
++0x11BC, 0x11BF,  0x11EF, 
++0x11C1, 0x11B8,  0x11F3, 
++0x11C1, 0x11BC,  0x11F4, 
++0x11C2, 0x11AB,  0x11F5, 
++0x11C2, 0x11AF,  0x11F6, 
++0x11C2, 0x11B7,  0x11F7, 
++0x11C2, 0x11B8,  0x11F8, 
++0x11CE, 0x11C2,  0x11CF, 
++0x11DD, 0x11BA,  0x11DE, 
++0x11EC, 0x11A8,  0x11ED, 
++0x11F0, 0x11BA,  0x11F1, 
++0x11F0, 0x11EB,  0x11F2, 
++0x1FBF, IBUS_KEY_apostrophe,  0x1FCE, 
++0x1FBF, IBUS_KEY_grave,  0x1FCD, 
++0x1FBF, IBUS_KEY_asciitilde,  0x1FCF, 
++0x1FBF, IBUS_KEY_acute,  0x1FCE, 
++0x1FBF, IBUS_KEY_dead_grave,  0x1FCD, 
++0x1FBF, IBUS_KEY_dead_acute,  0x1FCE, 
++0x1FBF, IBUS_KEY_dead_tilde,  0x1FCF, 
++0x1FFE, IBUS_KEY_apostrophe,  0x1FDE, 
++0x1FFE, IBUS_KEY_grave,  0x1FDD, 
++0x1FFE, IBUS_KEY_asciitilde,  0x1FDF, 
++0x1FFE, IBUS_KEY_acute,  0x1FDE, 
++0x1FFE, IBUS_KEY_dead_grave,  0x1FDD, 
++0x1FFE, IBUS_KEY_dead_acute,  0x1FDE, 
++0x1FFE, IBUS_KEY_dead_tilde,  0x1FDF, 
++0x2190, IBUS_KEY_bar,  0x2345, 
++0x2190, 0x2395,  0x2347, 
++0x2191, IBUS_KEY_minus,  0x234F, 
++0x2191, 0x2395,  0x2350, 
++0x2192, IBUS_KEY_bar,  0x2346, 
++0x2192, 0x2395,  0x2348, 
++0x2193, IBUS_KEY_minus,  0x2356, 
++0x2193, 0x2395,  0x2357, 
++0x2203, 0x0338,  0x2204, 
++0x2206, IBUS_KEY_underscore,  0x2359, 
++0x2206, IBUS_KEY_bar,  0x234B, 
++0x2206, 0x2395,  0x234D, 
++0x2207, IBUS_KEY_bar,  0x2352, 
++0x2207, IBUS_KEY_asciitilde,  0x236B, 
++0x2207, IBUS_KEY_diaeresis,  0x2362, 
++0x2207, 0x2395,  0x2354, 
++0x2208, 0x0338,  0x2209, 
++0x220A, IBUS_KEY_underscore,  0x2377, 
++0x220B, 0x0338,  0x220C, 
++0x2218, IBUS_KEY_underscore,  0x235B, 
++0x2218, IBUS_KEY_diaeresis,  0x2364, 
++0x2218, 0x2229,  0x235D, 
++0x2218, IBUS_KEY_uptack,  0x2355, 
++0x2218, IBUS_KEY_downtack,  0x234E, 
++0x2218, 0x2395,  0x233B, 
++0x2218, IBUS_KEY_emopencircle,  0x233E, 
++0x2223, 0x0338,  0x2224, 
++0x2225, 0x0338,  0x2226, 
++0x2227, IBUS_KEY_asciitilde,  0x2372, 
++0x2227, 0x2228,  0x22C4, 
++0x2227, 0x2395,  0x2353, 
++0x2228, IBUS_KEY_asciitilde,  0x2371, 
++0x2228, 0x2227,  0x22C4, 
++0x2228, 0x2395,  0x234C, 
++0x2229, 0x2218,  0x235D, 
++IBUS_KEY_union, IBUS_KEY_bar,  0x2366, 
++0x223C, 0x0338,  0x2241, 
++0x2243, 0x0338,  0x2244, 
++0x2248, 0x0338,  0x2249, 
++0x224D, 0x0338,  0x226D, 
++0x2260, IBUS_KEY_underscore,  0x2262, 
++0x2260, 0x2395,  0x236F, 
++0x2272, 0x0338,  0x2274, 
++0x2273, 0x0338,  0x2275, 
++0x2276, 0x0338,  0x2278, 
++0x2277, 0x0338,  0x2279, 
++0x227A, 0x0338,  0x2280, 
++0x227B, 0x0338,  0x2281, 
++0x227C, 0x0338,  0x22E0, 
++0x227D, 0x0338,  0x22E1, 
++0x2282, IBUS_KEY_underscore,  0x2286, 
++0x2282, IBUS_KEY_bar,  0x2367, 
++0x2283, IBUS_KEY_underscore,  0x2287, 
++0x2286, 0x0338,  0x2288, 
++0x2287, 0x0338,  0x2289, 
++0x2291, 0x0338,  0x22E2, 
++0x2292, 0x0338,  0x22E3, 
++IBUS_KEY_uptack, IBUS_KEY_diaeresis,  0x2361, 
++IBUS_KEY_uptack, IBUS_KEY_macron,  0x2351, 
++IBUS_KEY_uptack, 0x2218,  0x2355, 
++IBUS_KEY_uptack, IBUS_KEY_downtack,  0x2336, 
++IBUS_KEY_downtack, IBUS_KEY_underscore,  0x234A, 
++IBUS_KEY_downtack, 0x2218,  0x234E, 
++IBUS_KEY_downtack, IBUS_KEY_uptack,  0x2336, 
++0x22A8, 0x0338,  0x22AD, 
++0x22A9, 0x0338,  0x22AE, 
++0x22AB, 0x0338,  0x22AF, 
++0x22B2, 0x0338,  0x22EA, 
++0x22B3, 0x0338,  0x22EB, 
++0x22B4, 0x0338,  0x22EC, 
++0x22B5, 0x0338,  0x22ED, 
++0x22C4, IBUS_KEY_underscore,  0x235A, 
++0x22C4, 0x2395,  0x233A, 
++0x2373, IBUS_KEY_underscore,  0x2378, 
++0x2375, IBUS_KEY_underscore,  0x2379, 
++0x237A, IBUS_KEY_underscore,  0x2376, 
++0x2395, IBUS_KEY_apostrophe,  0x235E, 
++0x2395, IBUS_KEY_slash,  0x2341, 
++0x2395, IBUS_KEY_colon,  0x2360, 
++0x2395, IBUS_KEY_less,  0x2343, 
++0x2395, IBUS_KEY_equal,  0x2338, 
++0x2395, IBUS_KEY_greater,  0x2344, 
++0x2395, IBUS_KEY_question,  0x2370, 
++0x2395, IBUS_KEY_backslash,  0x2342, 
++0x2395, IBUS_KEY_division,  0x2339, 
++0x2395, 0x2190,  0x2347, 
++0x2395, 0x2191,  0x2350, 
++0x2395, 0x2192,  0x2348, 
++0x2395, 0x2193,  0x2357, 
++0x2395, 0x2206,  0x234D, 
++0x2395, 0x2207,  0x2354, 
++0x2395, 0x2218,  0x233B, 
++0x2395, 0x2227,  0x2353, 
++0x2395, 0x2228,  0x234C, 
++0x2395, 0x2260,  0x236F, 
++0x2395, 0x22C4,  0x233A, 
++0x2395, IBUS_KEY_emopencircle,  0x233C, 
++IBUS_KEY_emopencircle, IBUS_KEY_asterisk,  0x235F, 
++IBUS_KEY_emopencircle, IBUS_KEY_minus,  0x2296, 
++IBUS_KEY_emopencircle, IBUS_KEY_period,  0x2299, 
++IBUS_KEY_emopencircle, IBUS_KEY_backslash,  0x2349, 
++IBUS_KEY_emopencircle, IBUS_KEY_underscore,  0x235C, 
++IBUS_KEY_emopencircle, IBUS_KEY_bar,  0x233D, 
++IBUS_KEY_emopencircle, IBUS_KEY_diaeresis,  0x2365, 
++IBUS_KEY_emopencircle, 0x2218,  0x233E, 
++IBUS_KEY_emopencircle, 0x2395,  0x233C, 
++0x2ADD, 0x0338,  0x2ADC, 
++IBUS_KEY_KP_Divide, IBUS_KEY_D,  0x0110, 
++IBUS_KEY_KP_Divide, IBUS_KEY_G,  0x01E4, 
++IBUS_KEY_KP_Divide, IBUS_KEY_H,  0x0126, 
++IBUS_KEY_KP_Divide, IBUS_KEY_I,  0x0197, 
++IBUS_KEY_KP_Divide, IBUS_KEY_L,  0x0141, 
++IBUS_KEY_KP_Divide, IBUS_KEY_O,  0x00D8, 
++IBUS_KEY_KP_Divide, IBUS_KEY_T,  0x0166, 
++IBUS_KEY_KP_Divide, IBUS_KEY_Z,  0x01B5, 
++IBUS_KEY_KP_Divide, IBUS_KEY_b,  0x0180, 
++IBUS_KEY_KP_Divide, IBUS_KEY_d,  0x0111, 
++IBUS_KEY_KP_Divide, IBUS_KEY_g,  0x01E5, 
++IBUS_KEY_KP_Divide, IBUS_KEY_h,  0x0127, 
++IBUS_KEY_KP_Divide, IBUS_KEY_i,  0x0268, 
++IBUS_KEY_KP_Divide, IBUS_KEY_l,  0x0142, 
++IBUS_KEY_KP_Divide, IBUS_KEY_o,  0x00F8, 
++IBUS_KEY_KP_Divide, IBUS_KEY_t,  0x0167, 
++IBUS_KEY_KP_Divide, IBUS_KEY_z,  0x01B6, 
++IBUS_KEY_KP_Divide, 0x0294,  0x02A1, 
++IBUS_KEY_KP_Divide, 0x04AE,  0x04B0, 
++IBUS_KEY_KP_Divide, 0x04AF,  0x04B1, 
++IBUS_KEY_KP_Divide, IBUS_KEY_Cyrillic_ghe,  0x0493, 
++IBUS_KEY_KP_Divide, IBUS_KEY_Cyrillic_ka,  0x049F, 
++IBUS_KEY_KP_Divide, IBUS_KEY_Cyrillic_GHE,  0x0492, 
++IBUS_KEY_KP_Divide, IBUS_KEY_Cyrillic_KA,  0x049E, 
++IBUS_KEY_KP_Divide, IBUS_KEY_leftarrow,  0x219A, 
++IBUS_KEY_KP_Divide, IBUS_KEY_rightarrow,  0x219B, 
++IBUS_KEY_KP_Divide, 0x2194,  0x21AE, 
++IBUS_KEY_KP_Equal, 0x0338,  0x2260, 
++IBUS_KEY_exclam, IBUS_KEY_plus, IBUS_KEY_O,  0x1EE2, 
++IBUS_KEY_exclam, IBUS_KEY_plus, IBUS_KEY_U,  0x1EF0, 
++IBUS_KEY_exclam, IBUS_KEY_plus, IBUS_KEY_o,  0x1EE3, 
++IBUS_KEY_exclam, IBUS_KEY_plus, IBUS_KEY_u,  0x1EF1, 
++IBUS_KEY_exclam, IBUS_KEY_dead_horn, IBUS_KEY_O,  0x1EE2, 
++IBUS_KEY_exclam, IBUS_KEY_dead_horn, IBUS_KEY_U,  0x1EF0, 
++IBUS_KEY_exclam, IBUS_KEY_dead_horn, IBUS_KEY_o,  0x1EE3, 
++IBUS_KEY_exclam, IBUS_KEY_dead_horn, IBUS_KEY_u,  0x1EF1, 
++IBUS_KEY_quotedbl, IBUS_KEY_apostrophe, IBUS_KEY_space,  0x0385, 
++IBUS_KEY_quotedbl, IBUS_KEY_apostrophe, IBUS_KEY_Greek_iota,  0x0390, 
++IBUS_KEY_quotedbl, IBUS_KEY_apostrophe, IBUS_KEY_Greek_upsilon,  0x03B0, 
++IBUS_KEY_quotedbl, IBUS_KEY_underscore, IBUS_KEY_U,  0x1E7A, 
++IBUS_KEY_quotedbl, IBUS_KEY_underscore, IBUS_KEY_u,  0x1E7B, 
++IBUS_KEY_quotedbl, IBUS_KEY_asciitilde, IBUS_KEY_O,  0x1E4E, 
++IBUS_KEY_quotedbl, IBUS_KEY_asciitilde, IBUS_KEY_o,  0x1E4F, 
++IBUS_KEY_quotedbl, IBUS_KEY_macron, IBUS_KEY_U,  0x1E7A, 
++IBUS_KEY_quotedbl, IBUS_KEY_macron, IBUS_KEY_u,  0x1E7B, 
++IBUS_KEY_quotedbl, IBUS_KEY_dead_tilde, IBUS_KEY_O,  0x1E4E, 
++IBUS_KEY_quotedbl, IBUS_KEY_dead_tilde, IBUS_KEY_o,  0x1E4F, 
++IBUS_KEY_quotedbl, IBUS_KEY_dead_macron, IBUS_KEY_U,  0x1E7A, 
++IBUS_KEY_quotedbl, IBUS_KEY_dead_macron, IBUS_KEY_u,  0x1E7B, 
++IBUS_KEY_apostrophe, IBUS_KEY_quotedbl, IBUS_KEY_space,  0x0385, 
++IBUS_KEY_apostrophe, IBUS_KEY_quotedbl, IBUS_KEY_I,  0x1E2E, 
++IBUS_KEY_apostrophe, IBUS_KEY_quotedbl, IBUS_KEY_U,  0x01D7, 
++IBUS_KEY_apostrophe, IBUS_KEY_quotedbl, IBUS_KEY_i,  0x1E2F, 
++IBUS_KEY_apostrophe, IBUS_KEY_quotedbl, IBUS_KEY_u,  0x01D8, 
++IBUS_KEY_apostrophe, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota,  0x0390, 
++IBUS_KEY_apostrophe, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon,  0x03B0, 
++IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA,  0x1F0D, 
++IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_EPSILON,  0x1F1D, 
++IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA,  0x1F2D, 
++IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA,  0x1F3D, 
++IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMICRON,  0x1F4D, 
++IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON,  0x1F5D, 
++IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA,  0x1F6D, 
++IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha,  0x1F05, 
++IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_epsilon,  0x1F15, 
++IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta,  0x1F25, 
++IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_iota,  0x1F35, 
++IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_omicron,  0x1F45, 
++IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon,  0x1F55, 
++IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega,  0x1F65, 
++IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA,  0x1F0C, 
++IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_EPSILON,  0x1F1C, 
++IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA,  0x1F2C, 
++IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA,  0x1F3C, 
++IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_OMICRON,  0x1F4C, 
++IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA,  0x1F6C, 
++IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha,  0x1F04, 
++IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_epsilon,  0x1F14, 
++IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_eta,  0x1F24, 
++IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_iota,  0x1F34, 
++IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_omicron,  0x1F44, 
++IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon,  0x1F54, 
++IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_omega,  0x1F64, 
++IBUS_KEY_apostrophe, IBUS_KEY_plus, IBUS_KEY_O,  0x1EDA, 
++IBUS_KEY_apostrophe, IBUS_KEY_plus, IBUS_KEY_U,  0x1EE8, 
++IBUS_KEY_apostrophe, IBUS_KEY_plus, IBUS_KEY_o,  0x1EDB, 
++IBUS_KEY_apostrophe, IBUS_KEY_plus, IBUS_KEY_u,  0x1EE9, 
++IBUS_KEY_apostrophe, IBUS_KEY_slash, IBUS_KEY_O,  0x01FE, 
++IBUS_KEY_apostrophe, IBUS_KEY_slash, IBUS_KEY_o,  0x01FF, 
++IBUS_KEY_apostrophe, IBUS_KEY_asciicircum, IBUS_KEY_A,  0x1EA4, 
++IBUS_KEY_apostrophe, IBUS_KEY_asciicircum, IBUS_KEY_E,  0x1EBE, 
++IBUS_KEY_apostrophe, IBUS_KEY_asciicircum, IBUS_KEY_O,  0x1ED0, 
++IBUS_KEY_apostrophe, IBUS_KEY_asciicircum, IBUS_KEY_a,  0x1EA5, 
++IBUS_KEY_apostrophe, IBUS_KEY_asciicircum, IBUS_KEY_e,  0x1EBF, 
++IBUS_KEY_apostrophe, IBUS_KEY_asciicircum, IBUS_KEY_o,  0x1ED1, 
++IBUS_KEY_apostrophe, IBUS_KEY_underscore, IBUS_KEY_E,  0x1E16, 
++IBUS_KEY_apostrophe, IBUS_KEY_underscore, IBUS_KEY_O,  0x1E52, 
++IBUS_KEY_apostrophe, IBUS_KEY_underscore, IBUS_KEY_e,  0x1E17, 
++IBUS_KEY_apostrophe, IBUS_KEY_underscore, IBUS_KEY_o,  0x1E53, 
++IBUS_KEY_apostrophe, IBUS_KEY_b, IBUS_KEY_A,  0x1EAE, 
++IBUS_KEY_apostrophe, IBUS_KEY_b, IBUS_KEY_a,  0x1EAF, 
++IBUS_KEY_apostrophe, IBUS_KEY_asciitilde, IBUS_KEY_O,  0x1E4C, 
++IBUS_KEY_apostrophe, IBUS_KEY_asciitilde, IBUS_KEY_U,  0x1E78, 
++IBUS_KEY_apostrophe, IBUS_KEY_asciitilde, IBUS_KEY_o,  0x1E4D, 
++IBUS_KEY_apostrophe, IBUS_KEY_asciitilde, IBUS_KEY_u,  0x1E79, 
++IBUS_KEY_apostrophe, IBUS_KEY_macron, IBUS_KEY_E,  0x1E16, 
++IBUS_KEY_apostrophe, IBUS_KEY_macron, IBUS_KEY_O,  0x1E52, 
++IBUS_KEY_apostrophe, IBUS_KEY_macron, IBUS_KEY_e,  0x1E17, 
++IBUS_KEY_apostrophe, IBUS_KEY_macron, IBUS_KEY_o,  0x1E53, 
++IBUS_KEY_apostrophe, IBUS_KEY_cedilla, IBUS_KEY_C,  0x1E08, 
++IBUS_KEY_apostrophe, IBUS_KEY_cedilla, IBUS_KEY_c,  0x1E09, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_circumflex, IBUS_KEY_A,  0x1EA4, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_circumflex, IBUS_KEY_E,  0x1EBE, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_circumflex, IBUS_KEY_O,  0x1ED0, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_circumflex, IBUS_KEY_a,  0x1EA5, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_circumflex, IBUS_KEY_e,  0x1EBF, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_circumflex, IBUS_KEY_o,  0x1ED1, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_tilde, IBUS_KEY_O,  0x1E4C, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_tilde, IBUS_KEY_U,  0x1E78, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_tilde, IBUS_KEY_o,  0x1E4D, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_tilde, IBUS_KEY_u,  0x1E79, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_macron, IBUS_KEY_E,  0x1E16, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_macron, IBUS_KEY_O,  0x1E52, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_macron, IBUS_KEY_e,  0x1E17, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_macron, IBUS_KEY_o,  0x1E53, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_breve, IBUS_KEY_A,  0x1EAE, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_breve, IBUS_KEY_a,  0x1EAF, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_diaeresis, IBUS_KEY_I,  0x1E2E, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_diaeresis, IBUS_KEY_U,  0x01D7, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_diaeresis, IBUS_KEY_i,  0x1E2F, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_diaeresis, IBUS_KEY_u,  0x01D8, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_iota,  0x0390, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_upsilon,  0x03B0, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_abovering, IBUS_KEY_A,  0x01FA, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_abovering, IBUS_KEY_a,  0x01FB, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_cedilla, IBUS_KEY_C,  0x1E08, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_cedilla, IBUS_KEY_c,  0x1E09, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_horn, IBUS_KEY_O,  0x1EDA, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_horn, IBUS_KEY_U,  0x1EE8, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_horn, IBUS_KEY_o,  0x1EDB, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_horn, IBUS_KEY_u,  0x1EE9, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA,  0x1F0C, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_EPSILON,  0x1F1C, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA,  0x1F2C, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_IOTA,  0x1F3C, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMICRON,  0x1F4C, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA,  0x1F6C, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha,  0x1F04, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_epsilon,  0x1F14, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta,  0x1F24, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_iota,  0x1F34, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omicron,  0x1F44, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_upsilon,  0x1F54, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega,  0x1F64, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA,  0x1F0D, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_EPSILON,  0x1F1D, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA,  0x1F2D, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_IOTA,  0x1F3D, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMICRON,  0x1F4D, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_UPSILON,  0x1F5D, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA,  0x1F6D, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha,  0x1F05, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_epsilon,  0x1F15, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta,  0x1F25, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_iota,  0x1F35, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omicron,  0x1F45, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_upsilon,  0x1F55, 
++IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega,  0x1F65, 
++IBUS_KEY_apostrophe, IBUS_KEY_KP_Divide, IBUS_KEY_O,  0x01FE, 
++IBUS_KEY_apostrophe, IBUS_KEY_KP_Divide, IBUS_KEY_o,  0x01FF, 
++IBUS_KEY_parenleft, IBUS_KEY_0, IBUS_KEY_parenright,  0x24EA, 
++IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_parenright,  0x2460, 
++IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_parenright,  0x2461, 
++IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_parenright,  0x2462, 
++IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_parenright,  0x2463, 
++IBUS_KEY_parenleft, IBUS_KEY_5, IBUS_KEY_parenright,  0x2464, 
++IBUS_KEY_parenleft, IBUS_KEY_6, IBUS_KEY_parenright,  0x2465, 
++IBUS_KEY_parenleft, IBUS_KEY_7, IBUS_KEY_parenright,  0x2466, 
++IBUS_KEY_parenleft, IBUS_KEY_8, IBUS_KEY_parenright,  0x2467, 
++IBUS_KEY_parenleft, IBUS_KEY_9, IBUS_KEY_parenright,  0x2468, 
++IBUS_KEY_parenleft, IBUS_KEY_A, IBUS_KEY_parenright,  0x24B6, 
++IBUS_KEY_parenleft, IBUS_KEY_B, IBUS_KEY_parenright,  0x24B7, 
++IBUS_KEY_parenleft, IBUS_KEY_C, IBUS_KEY_parenright,  0x24B8, 
++IBUS_KEY_parenleft, IBUS_KEY_D, IBUS_KEY_parenright,  0x24B9, 
++IBUS_KEY_parenleft, IBUS_KEY_E, IBUS_KEY_parenright,  0x24BA, 
++IBUS_KEY_parenleft, IBUS_KEY_F, IBUS_KEY_parenright,  0x24BB, 
++IBUS_KEY_parenleft, IBUS_KEY_G, IBUS_KEY_parenright,  0x24BC, 
++IBUS_KEY_parenleft, IBUS_KEY_H, IBUS_KEY_parenright,  0x24BD, 
++IBUS_KEY_parenleft, IBUS_KEY_I, IBUS_KEY_parenright,  0x24BE, 
++IBUS_KEY_parenleft, IBUS_KEY_J, IBUS_KEY_parenright,  0x24BF, 
++IBUS_KEY_parenleft, IBUS_KEY_K, IBUS_KEY_parenright,  0x24C0, 
++IBUS_KEY_parenleft, IBUS_KEY_L, IBUS_KEY_parenright,  0x24C1, 
++IBUS_KEY_parenleft, IBUS_KEY_M, IBUS_KEY_parenright,  0x24C2, 
++IBUS_KEY_parenleft, IBUS_KEY_N, IBUS_KEY_parenright,  0x24C3, 
++IBUS_KEY_parenleft, IBUS_KEY_O, IBUS_KEY_parenright,  0x24C4, 
++IBUS_KEY_parenleft, IBUS_KEY_P, IBUS_KEY_parenright,  0x24C5, 
++IBUS_KEY_parenleft, IBUS_KEY_Q, IBUS_KEY_parenright,  0x24C6, 
++IBUS_KEY_parenleft, IBUS_KEY_R, IBUS_KEY_parenright,  0x24C7, 
++IBUS_KEY_parenleft, IBUS_KEY_S, IBUS_KEY_parenright,  0x24C8, 
++IBUS_KEY_parenleft, IBUS_KEY_T, IBUS_KEY_parenright,  0x24C9, 
++IBUS_KEY_parenleft, IBUS_KEY_U, IBUS_KEY_parenright,  0x24CA, 
++IBUS_KEY_parenleft, IBUS_KEY_V, IBUS_KEY_parenright,  0x24CB, 
++IBUS_KEY_parenleft, IBUS_KEY_W, IBUS_KEY_parenright,  0x24CC, 
++IBUS_KEY_parenleft, IBUS_KEY_X, IBUS_KEY_parenright,  0x24CD, 
++IBUS_KEY_parenleft, IBUS_KEY_Y, IBUS_KEY_parenright,  0x24CE, 
++IBUS_KEY_parenleft, IBUS_KEY_Z, IBUS_KEY_parenright,  0x24CF, 
++IBUS_KEY_parenleft, IBUS_KEY_a, IBUS_KEY_parenright,  0x24D0, 
++IBUS_KEY_parenleft, IBUS_KEY_b, IBUS_KEY_parenright,  0x24D1, 
++IBUS_KEY_parenleft, IBUS_KEY_c, IBUS_KEY_parenright,  0x24D2, 
++IBUS_KEY_parenleft, IBUS_KEY_d, IBUS_KEY_parenright,  0x24D3, 
++IBUS_KEY_parenleft, IBUS_KEY_e, IBUS_KEY_parenright,  0x24D4, 
++IBUS_KEY_parenleft, IBUS_KEY_f, IBUS_KEY_parenright,  0x24D5, 
++IBUS_KEY_parenleft, IBUS_KEY_g, IBUS_KEY_parenright,  0x24D6, 
++IBUS_KEY_parenleft, IBUS_KEY_h, IBUS_KEY_parenright,  0x24D7, 
++IBUS_KEY_parenleft, IBUS_KEY_i, IBUS_KEY_parenright,  0x24D8, 
++IBUS_KEY_parenleft, IBUS_KEY_j, IBUS_KEY_parenright,  0x24D9, 
++IBUS_KEY_parenleft, IBUS_KEY_k, IBUS_KEY_parenright,  0x24DA, 
++IBUS_KEY_parenleft, IBUS_KEY_l, IBUS_KEY_parenright,  0x24DB, 
++IBUS_KEY_parenleft, IBUS_KEY_m, IBUS_KEY_parenright,  0x24DC, 
++IBUS_KEY_parenleft, IBUS_KEY_n, IBUS_KEY_parenright,  0x24DD, 
++IBUS_KEY_parenleft, IBUS_KEY_o, IBUS_KEY_parenright,  0x24DE, 
++IBUS_KEY_parenleft, IBUS_KEY_p, IBUS_KEY_parenright,  0x24DF, 
++IBUS_KEY_parenleft, IBUS_KEY_q, IBUS_KEY_parenright,  0x24E0, 
++IBUS_KEY_parenleft, IBUS_KEY_r, IBUS_KEY_parenright,  0x24E1, 
++IBUS_KEY_parenleft, IBUS_KEY_s, IBUS_KEY_parenright,  0x24E2, 
++IBUS_KEY_parenleft, IBUS_KEY_t, IBUS_KEY_parenright,  0x24E3, 
++IBUS_KEY_parenleft, IBUS_KEY_u, IBUS_KEY_parenright,  0x24E4, 
++IBUS_KEY_parenleft, IBUS_KEY_v, IBUS_KEY_parenright,  0x24E5, 
++IBUS_KEY_parenleft, IBUS_KEY_w, IBUS_KEY_parenright,  0x24E6, 
++IBUS_KEY_parenleft, IBUS_KEY_x, IBUS_KEY_parenright,  0x24E7, 
++IBUS_KEY_parenleft, IBUS_KEY_y, IBUS_KEY_parenright,  0x24E8, 
++IBUS_KEY_parenleft, IBUS_KEY_z, IBUS_KEY_parenright,  0x24E9, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_WO, IBUS_KEY_parenright,  0x32FE, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_A, IBUS_KEY_parenright,  0x32D0, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_I, IBUS_KEY_parenright,  0x32D1, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_U, IBUS_KEY_parenright,  0x32D2, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_E, IBUS_KEY_parenright,  0x32D3, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_O, IBUS_KEY_parenright,  0x32D4, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_KA, IBUS_KEY_parenright,  0x32D5, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_KI, IBUS_KEY_parenright,  0x32D6, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_KU, IBUS_KEY_parenright,  0x32D7, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_KE, IBUS_KEY_parenright,  0x32D8, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_KO, IBUS_KEY_parenright,  0x32D9, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_SA, IBUS_KEY_parenright,  0x32DA, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_SHI, IBUS_KEY_parenright,  0x32DB, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_SU, IBUS_KEY_parenright,  0x32DC, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_SE, IBUS_KEY_parenright,  0x32DD, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_SO, IBUS_KEY_parenright,  0x32DE, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_TA, IBUS_KEY_parenright,  0x32DF, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_CHI, IBUS_KEY_parenright,  0x32E0, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_TSU, IBUS_KEY_parenright,  0x32E1, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_TE, IBUS_KEY_parenright,  0x32E2, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_TO, IBUS_KEY_parenright,  0x32E3, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_NA, IBUS_KEY_parenright,  0x32E4, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_NI, IBUS_KEY_parenright,  0x32E5, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_NU, IBUS_KEY_parenright,  0x32E6, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_NE, IBUS_KEY_parenright,  0x32E7, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_NO, IBUS_KEY_parenright,  0x32E8, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_HA, IBUS_KEY_parenright,  0x32E9, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_HI, IBUS_KEY_parenright,  0x32EA, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_FU, IBUS_KEY_parenright,  0x32EB, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_HE, IBUS_KEY_parenright,  0x32EC, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_HO, IBUS_KEY_parenright,  0x32ED, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_MA, IBUS_KEY_parenright,  0x32EE, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_MI, IBUS_KEY_parenright,  0x32EF, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_MU, IBUS_KEY_parenright,  0x32F0, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_ME, IBUS_KEY_parenright,  0x32F1, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_MO, IBUS_KEY_parenright,  0x32F2, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_YA, IBUS_KEY_parenright,  0x32F3, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_YU, IBUS_KEY_parenright,  0x32F4, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_YO, IBUS_KEY_parenright,  0x32F5, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_RA, IBUS_KEY_parenright,  0x32F6, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_RI, IBUS_KEY_parenright,  0x32F7, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_RU, IBUS_KEY_parenright,  0x32F8, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_RE, IBUS_KEY_parenright,  0x32F9, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_RO, IBUS_KEY_parenright,  0x32FA, 
++IBUS_KEY_parenleft, IBUS_KEY_kana_WA, IBUS_KEY_parenright,  0x32FB, 
++IBUS_KEY_parenleft, 0x1100, IBUS_KEY_parenright,  0x3260, 
++IBUS_KEY_parenleft, 0x1102, IBUS_KEY_parenright,  0x3261, 
++IBUS_KEY_parenleft, 0x1103, IBUS_KEY_parenright,  0x3262, 
++IBUS_KEY_parenleft, 0x1105, IBUS_KEY_parenright,  0x3263, 
++IBUS_KEY_parenleft, 0x1106, IBUS_KEY_parenright,  0x3264, 
++IBUS_KEY_parenleft, 0x1107, IBUS_KEY_parenright,  0x3265, 
++IBUS_KEY_parenleft, 0x1109, IBUS_KEY_parenright,  0x3266, 
++IBUS_KEY_parenleft, 0x110B, IBUS_KEY_parenright,  0x3267, 
++IBUS_KEY_parenleft, 0x110C, IBUS_KEY_parenright,  0x3268, 
++IBUS_KEY_parenleft, 0x110E, IBUS_KEY_parenright,  0x3269, 
++IBUS_KEY_parenleft, 0x110F, IBUS_KEY_parenright,  0x326A, 
++IBUS_KEY_parenleft, 0x1110, IBUS_KEY_parenright,  0x326B, 
++IBUS_KEY_parenleft, 0x1111, IBUS_KEY_parenright,  0x326C, 
++IBUS_KEY_parenleft, 0x1112, IBUS_KEY_parenright,  0x326D, 
++IBUS_KEY_parenleft, 0x30F0, IBUS_KEY_parenright,  0x32FC, 
++IBUS_KEY_parenleft, 0x30F1, IBUS_KEY_parenright,  0x32FD, 
++IBUS_KEY_parenleft, 0x4E00, IBUS_KEY_parenright,  0x3280, 
++IBUS_KEY_parenleft, 0x4E03, IBUS_KEY_parenright,  0x3286, 
++IBUS_KEY_parenleft, 0x4E09, IBUS_KEY_parenright,  0x3282, 
++IBUS_KEY_parenleft, 0x4E0A, IBUS_KEY_parenright,  0x32A4, 
++IBUS_KEY_parenleft, 0x4E0B, IBUS_KEY_parenright,  0x32A6, 
++IBUS_KEY_parenleft, 0x4E2D, IBUS_KEY_parenright,  0x32A5, 
++IBUS_KEY_parenleft, 0x4E5D, IBUS_KEY_parenright,  0x3288, 
++IBUS_KEY_parenleft, 0x4E8C, IBUS_KEY_parenright,  0x3281, 
++IBUS_KEY_parenleft, 0x4E94, IBUS_KEY_parenright,  0x3284, 
++IBUS_KEY_parenleft, 0x4F01, IBUS_KEY_parenright,  0x32AD, 
++IBUS_KEY_parenleft, 0x4F11, IBUS_KEY_parenright,  0x32A1, 
++IBUS_KEY_parenleft, 0x512A, IBUS_KEY_parenright,  0x329D, 
++IBUS_KEY_parenleft, 0x516B, IBUS_KEY_parenright,  0x3287, 
++IBUS_KEY_parenleft, 0x516D, IBUS_KEY_parenright,  0x3285, 
++IBUS_KEY_parenleft, 0x5199, IBUS_KEY_parenright,  0x32A2, 
++IBUS_KEY_parenleft, 0x52B4, IBUS_KEY_parenright,  0x3298, 
++IBUS_KEY_parenleft, 0x533B, IBUS_KEY_parenright,  0x32A9, 
++IBUS_KEY_parenleft, 0x5341, IBUS_KEY_parenright,  0x3289, 
++IBUS_KEY_parenleft, 0x5354, IBUS_KEY_parenright,  0x32AF, 
++IBUS_KEY_parenleft, 0x5370, IBUS_KEY_parenright,  0x329E, 
++IBUS_KEY_parenleft, 0x53F3, IBUS_KEY_parenright,  0x32A8, 
++IBUS_KEY_parenleft, 0x540D, IBUS_KEY_parenright,  0x3294, 
++IBUS_KEY_parenleft, 0x56DB, IBUS_KEY_parenright,  0x3283, 
++IBUS_KEY_parenleft, 0x571F, IBUS_KEY_parenright,  0x328F, 
++IBUS_KEY_parenleft, 0x591C, IBUS_KEY_parenright,  0x32B0, 
++IBUS_KEY_parenleft, 0x5973, IBUS_KEY_parenright,  0x329B, 
++IBUS_KEY_parenleft, 0x5B66, IBUS_KEY_parenright,  0x32AB, 
++IBUS_KEY_parenleft, 0x5B97, IBUS_KEY_parenright,  0x32AA, 
++IBUS_KEY_parenleft, 0x5DE6, IBUS_KEY_parenright,  0x32A7, 
++IBUS_KEY_parenleft, 0x65E5, IBUS_KEY_parenright,  0x3290, 
++IBUS_KEY_parenleft, 0x6708, IBUS_KEY_parenright,  0x328A, 
++IBUS_KEY_parenleft, 0x6709, IBUS_KEY_parenright,  0x3292, 
++IBUS_KEY_parenleft, 0x6728, IBUS_KEY_parenright,  0x328D, 
++IBUS_KEY_parenleft, 0x682A, IBUS_KEY_parenright,  0x3291, 
++IBUS_KEY_parenleft, 0x6B63, IBUS_KEY_parenright,  0x32A3, 
++IBUS_KEY_parenleft, 0x6C34, IBUS_KEY_parenright,  0x328C, 
++IBUS_KEY_parenleft, 0x6CE8, IBUS_KEY_parenright,  0x329F, 
++IBUS_KEY_parenleft, 0x706B, IBUS_KEY_parenright,  0x328B, 
++IBUS_KEY_parenleft, 0x7279, IBUS_KEY_parenright,  0x3295, 
++IBUS_KEY_parenleft, 0x7537, IBUS_KEY_parenright,  0x329A, 
++IBUS_KEY_parenleft, 0x76E3, IBUS_KEY_parenright,  0x32AC, 
++IBUS_KEY_parenleft, 0x793E, IBUS_KEY_parenright,  0x3293, 
++IBUS_KEY_parenleft, 0x795D, IBUS_KEY_parenright,  0x3297, 
++IBUS_KEY_parenleft, 0x79D8, IBUS_KEY_parenright,  0x3299, 
++IBUS_KEY_parenleft, 0x8CA1, IBUS_KEY_parenright,  0x3296, 
++IBUS_KEY_parenleft, 0x8CC7, IBUS_KEY_parenright,  0x32AE, 
++IBUS_KEY_parenleft, 0x9069, IBUS_KEY_parenright,  0x329C, 
++IBUS_KEY_parenleft, 0x91D1, IBUS_KEY_parenright,  0x328E, 
++IBUS_KEY_parenleft, 0x9805, IBUS_KEY_parenright,  0x32A0, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_parenright,  0x2461, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_0, IBUS_KEY_parenright,  0x24EA, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_parenright,  0x2460, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_parenright,  0x2461, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_parenright,  0x2462, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_parenright,  0x2463, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_5, IBUS_KEY_parenright,  0x2464, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_6, IBUS_KEY_parenright,  0x2465, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_7, IBUS_KEY_parenright,  0x2466, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_8, IBUS_KEY_parenright,  0x2467, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_9, IBUS_KEY_parenright,  0x2468, 
++IBUS_KEY_asterisk, IBUS_KEY_apostrophe, IBUS_KEY_A,  0x01FA, 
++IBUS_KEY_asterisk, IBUS_KEY_apostrophe, IBUS_KEY_a,  0x01FB, 
++IBUS_KEY_minus, IBUS_KEY_minus, IBUS_KEY_space,  0x00AD, 
++IBUS_KEY_minus, IBUS_KEY_minus, IBUS_KEY_minus,  0x2014, 
++IBUS_KEY_minus, IBUS_KEY_minus, IBUS_KEY_period,  0x2013, 
++IBUS_KEY_period, IBUS_KEY_exclam, IBUS_KEY_S,  0x1E68, 
++IBUS_KEY_period, IBUS_KEY_exclam, IBUS_KEY_s,  0x1E69, 
++IBUS_KEY_period, IBUS_KEY_apostrophe, IBUS_KEY_S,  0x1E64, 
++IBUS_KEY_period, IBUS_KEY_apostrophe, IBUS_KEY_s,  0x1E65, 
++IBUS_KEY_period, IBUS_KEY_acute, IBUS_KEY_S,  0x1E64, 
++IBUS_KEY_period, IBUS_KEY_acute, IBUS_KEY_s,  0x1E65, 
++IBUS_KEY_period, IBUS_KEY_dead_acute, IBUS_KEY_S,  0x1E64, 
++IBUS_KEY_period, IBUS_KEY_dead_acute, IBUS_KEY_s,  0x1E65, 
++IBUS_KEY_period, IBUS_KEY_dead_caron, IBUS_KEY_S,  0x1E66, 
++IBUS_KEY_period, IBUS_KEY_dead_caron, IBUS_KEY_s,  0x1E67, 
++IBUS_KEY_period, IBUS_KEY_dead_belowdot, IBUS_KEY_S,  0x1E68, 
++IBUS_KEY_period, IBUS_KEY_dead_belowdot, IBUS_KEY_s,  0x1E69, 
++IBUS_KEY_1, IBUS_KEY_1, IBUS_KEY_0,  0x2152, 
++IBUS_KEY_question, IBUS_KEY_plus, IBUS_KEY_O,  0x1EDE, 
++IBUS_KEY_question, IBUS_KEY_plus, IBUS_KEY_U,  0x1EEC, 
++IBUS_KEY_question, IBUS_KEY_plus, IBUS_KEY_o,  0x1EDF, 
++IBUS_KEY_question, IBUS_KEY_plus, IBUS_KEY_u,  0x1EED, 
++IBUS_KEY_question, IBUS_KEY_asciicircum, IBUS_KEY_A,  0x1EA8, 
++IBUS_KEY_question, IBUS_KEY_asciicircum, IBUS_KEY_E,  0x1EC2, 
++IBUS_KEY_question, IBUS_KEY_asciicircum, IBUS_KEY_O,  0x1ED4, 
++IBUS_KEY_question, IBUS_KEY_asciicircum, IBUS_KEY_a,  0x1EA9, 
++IBUS_KEY_question, IBUS_KEY_asciicircum, IBUS_KEY_e,  0x1EC3, 
++IBUS_KEY_question, IBUS_KEY_asciicircum, IBUS_KEY_o,  0x1ED5, 
++IBUS_KEY_question, IBUS_KEY_b, IBUS_KEY_A,  0x1EB2, 
++IBUS_KEY_question, IBUS_KEY_b, IBUS_KEY_a,  0x1EB3, 
++IBUS_KEY_question, IBUS_KEY_dead_circumflex, IBUS_KEY_A,  0x1EA8, 
++IBUS_KEY_question, IBUS_KEY_dead_circumflex, IBUS_KEY_E,  0x1EC2, 
++IBUS_KEY_question, IBUS_KEY_dead_circumflex, IBUS_KEY_O,  0x1ED4, 
++IBUS_KEY_question, IBUS_KEY_dead_circumflex, IBUS_KEY_a,  0x1EA9, 
++IBUS_KEY_question, IBUS_KEY_dead_circumflex, IBUS_KEY_e,  0x1EC3, 
++IBUS_KEY_question, IBUS_KEY_dead_circumflex, IBUS_KEY_o,  0x1ED5, 
++IBUS_KEY_question, IBUS_KEY_dead_breve, IBUS_KEY_A,  0x1EB2, 
++IBUS_KEY_question, IBUS_KEY_dead_breve, IBUS_KEY_a,  0x1EB3, 
++IBUS_KEY_question, IBUS_KEY_dead_horn, IBUS_KEY_O,  0x1EDE, 
++IBUS_KEY_question, IBUS_KEY_dead_horn, IBUS_KEY_U,  0x1EEC, 
++IBUS_KEY_question, IBUS_KEY_dead_horn, IBUS_KEY_o,  0x1EDF, 
++IBUS_KEY_question, IBUS_KEY_dead_horn, IBUS_KEY_u,  0x1EED, 
++IBUS_KEY_U, IBUS_KEY_exclam, IBUS_KEY_A,  0x1EB6, 
++IBUS_KEY_U, IBUS_KEY_exclam, IBUS_KEY_a,  0x1EB7, 
++IBUS_KEY_U, IBUS_KEY_cedilla, IBUS_KEY_E,  0x1E1C, 
++IBUS_KEY_U, IBUS_KEY_cedilla, IBUS_KEY_e,  0x1E1D, 
++IBUS_KEY_U, IBUS_KEY_dead_cedilla, IBUS_KEY_E,  0x1E1C, 
++IBUS_KEY_U, IBUS_KEY_dead_cedilla, IBUS_KEY_e,  0x1E1D, 
++IBUS_KEY_U, IBUS_KEY_dead_belowdot, IBUS_KEY_A,  0x1EB6, 
++IBUS_KEY_U, IBUS_KEY_dead_belowdot, IBUS_KEY_a,  0x1EB7, 
++IBUS_KEY_asciicircum, IBUS_KEY_exclam, IBUS_KEY_A,  0x1EAC, 
++IBUS_KEY_asciicircum, IBUS_KEY_exclam, IBUS_KEY_E,  0x1EC6, 
++IBUS_KEY_asciicircum, IBUS_KEY_exclam, IBUS_KEY_O,  0x1ED8, 
++IBUS_KEY_asciicircum, IBUS_KEY_exclam, IBUS_KEY_a,  0x1EAD, 
++IBUS_KEY_asciicircum, IBUS_KEY_exclam, IBUS_KEY_e,  0x1EC7, 
++IBUS_KEY_asciicircum, IBUS_KEY_exclam, IBUS_KEY_o,  0x1ED9, 
++IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_a,  0x00AA, 
++IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_h,  0x02B0, 
++IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_i,  0x2071, 
++IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_j,  0x02B2, 
++IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_l,  0x02E1, 
++IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_n,  0x207F, 
++IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_o,  0x00BA, 
++IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_r,  0x02B3, 
++IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_s,  0x02E2, 
++IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_w,  0x02B7, 
++IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_x,  0x02E3, 
++IBUS_KEY_asciicircum, IBUS_KEY_underscore, IBUS_KEY_y,  0x02B8, 
++IBUS_KEY_asciicircum, IBUS_KEY_underscore, 0x0263,  0x02E0, 
++IBUS_KEY_asciicircum, IBUS_KEY_underscore, 0x0266,  0x02B1, 
++IBUS_KEY_asciicircum, IBUS_KEY_underscore, 0x0279,  0x02B4, 
++IBUS_KEY_asciicircum, IBUS_KEY_underscore, 0x027B,  0x02B5, 
++IBUS_KEY_asciicircum, IBUS_KEY_underscore, 0x0281,  0x02B6, 
++IBUS_KEY_asciicircum, IBUS_KEY_underscore, 0x0295,  0x02E4, 
++IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_a,  0x00AA, 
++IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_h,  0x02B0, 
++IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_i,  0x2071, 
++IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_j,  0x02B2, 
++IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_l,  0x02E1, 
++IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_n,  0x207F, 
++IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_o,  0x00BA, 
++IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_r,  0x02B3, 
++IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_s,  0x02E2, 
++IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_w,  0x02B7, 
++IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_x,  0x02E3, 
++IBUS_KEY_asciicircum, IBUS_KEY_underbar, IBUS_KEY_y,  0x02B8, 
++IBUS_KEY_asciicircum, IBUS_KEY_underbar, 0x0263,  0x02E0, 
++IBUS_KEY_asciicircum, IBUS_KEY_underbar, 0x0266,  0x02B1, 
++IBUS_KEY_asciicircum, IBUS_KEY_underbar, 0x0279,  0x02B4, 
++IBUS_KEY_asciicircum, IBUS_KEY_underbar, 0x027B,  0x02B5, 
++IBUS_KEY_asciicircum, IBUS_KEY_underbar, 0x0281,  0x02B6, 
++IBUS_KEY_asciicircum, IBUS_KEY_underbar, 0x0295,  0x02E4, 
++IBUS_KEY_asciicircum, IBUS_KEY_dead_belowdot, IBUS_KEY_A,  0x1EAC, 
++IBUS_KEY_asciicircum, IBUS_KEY_dead_belowdot, IBUS_KEY_E,  0x1EC6, 
++IBUS_KEY_asciicircum, IBUS_KEY_dead_belowdot, IBUS_KEY_O,  0x1ED8, 
++IBUS_KEY_asciicircum, IBUS_KEY_dead_belowdot, IBUS_KEY_a,  0x1EAD, 
++IBUS_KEY_asciicircum, IBUS_KEY_dead_belowdot, IBUS_KEY_e,  0x1EC7, 
++IBUS_KEY_asciicircum, IBUS_KEY_dead_belowdot, IBUS_KEY_o,  0x1ED9, 
++IBUS_KEY_underscore, IBUS_KEY_exclam, IBUS_KEY_L,  0x1E38, 
++IBUS_KEY_underscore, IBUS_KEY_exclam, IBUS_KEY_R,  0x1E5C, 
++IBUS_KEY_underscore, IBUS_KEY_exclam, IBUS_KEY_l,  0x1E39, 
++IBUS_KEY_underscore, IBUS_KEY_exclam, IBUS_KEY_r,  0x1E5D, 
++IBUS_KEY_underscore, IBUS_KEY_quotedbl, IBUS_KEY_A,  0x01DE, 
++IBUS_KEY_underscore, IBUS_KEY_quotedbl, IBUS_KEY_O,  0x022A, 
++IBUS_KEY_underscore, IBUS_KEY_quotedbl, IBUS_KEY_U,  0x01D5, 
++IBUS_KEY_underscore, IBUS_KEY_quotedbl, IBUS_KEY_a,  0x01DF, 
++IBUS_KEY_underscore, IBUS_KEY_quotedbl, IBUS_KEY_o,  0x022B, 
++IBUS_KEY_underscore, IBUS_KEY_quotedbl, IBUS_KEY_u,  0x01D6, 
++IBUS_KEY_underscore, IBUS_KEY_period, IBUS_KEY_A,  0x01E0, 
++IBUS_KEY_underscore, IBUS_KEY_period, IBUS_KEY_O,  0x0230, 
++IBUS_KEY_underscore, IBUS_KEY_period, IBUS_KEY_a,  0x01E1, 
++IBUS_KEY_underscore, IBUS_KEY_period, IBUS_KEY_o,  0x0231, 
++IBUS_KEY_underscore, IBUS_KEY_semicolon, IBUS_KEY_O,  0x01EC, 
++IBUS_KEY_underscore, IBUS_KEY_semicolon, IBUS_KEY_o,  0x01ED, 
++IBUS_KEY_underscore, IBUS_KEY_asciitilde, IBUS_KEY_O,  0x022C, 
++IBUS_KEY_underscore, IBUS_KEY_asciitilde, IBUS_KEY_o,  0x022D, 
++IBUS_KEY_underscore, IBUS_KEY_dead_tilde, IBUS_KEY_O,  0x022C, 
++IBUS_KEY_underscore, IBUS_KEY_dead_tilde, IBUS_KEY_o,  0x022D, 
++IBUS_KEY_underscore, IBUS_KEY_dead_abovedot, IBUS_KEY_A,  0x01E0, 
++IBUS_KEY_underscore, IBUS_KEY_dead_abovedot, IBUS_KEY_O,  0x0230, 
++IBUS_KEY_underscore, IBUS_KEY_dead_abovedot, IBUS_KEY_a,  0x01E1, 
++IBUS_KEY_underscore, IBUS_KEY_dead_abovedot, IBUS_KEY_o,  0x0231, 
++IBUS_KEY_underscore, IBUS_KEY_dead_diaeresis, IBUS_KEY_A,  0x01DE, 
++IBUS_KEY_underscore, IBUS_KEY_dead_diaeresis, IBUS_KEY_O,  0x022A, 
++IBUS_KEY_underscore, IBUS_KEY_dead_diaeresis, IBUS_KEY_U,  0x01D5, 
++IBUS_KEY_underscore, IBUS_KEY_dead_diaeresis, IBUS_KEY_a,  0x01DF, 
++IBUS_KEY_underscore, IBUS_KEY_dead_diaeresis, IBUS_KEY_o,  0x022B, 
++IBUS_KEY_underscore, IBUS_KEY_dead_diaeresis, IBUS_KEY_u,  0x01D6, 
++IBUS_KEY_underscore, IBUS_KEY_dead_ogonek, IBUS_KEY_O,  0x01EC, 
++IBUS_KEY_underscore, IBUS_KEY_dead_ogonek, IBUS_KEY_o,  0x01ED, 
++IBUS_KEY_underscore, IBUS_KEY_dead_belowdot, IBUS_KEY_L,  0x1E38, 
++IBUS_KEY_underscore, IBUS_KEY_dead_belowdot, IBUS_KEY_R,  0x1E5C, 
++IBUS_KEY_underscore, IBUS_KEY_dead_belowdot, IBUS_KEY_l,  0x1E39, 
++IBUS_KEY_underscore, IBUS_KEY_dead_belowdot, IBUS_KEY_r,  0x1E5D, 
++IBUS_KEY_grave, IBUS_KEY_quotedbl, IBUS_KEY_U,  0x01DB, 
++IBUS_KEY_grave, IBUS_KEY_quotedbl, IBUS_KEY_u,  0x01DC, 
++IBUS_KEY_grave, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota,  0x1FD2, 
++IBUS_KEY_grave, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon,  0x1FE2, 
++IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA,  0x1F0B, 
++IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_EPSILON,  0x1F1B, 
++IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA,  0x1F2B, 
++IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA,  0x1F3B, 
++IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMICRON,  0x1F4B, 
++IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON,  0x1F5B, 
++IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA,  0x1F6B, 
++IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha,  0x1F03, 
++IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_epsilon,  0x1F13, 
++IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta,  0x1F23, 
++IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_iota,  0x1F33, 
++IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_omicron,  0x1F43, 
++IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon,  0x1F53, 
++IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega,  0x1F63, 
++IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA,  0x1F0A, 
++IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_EPSILON,  0x1F1A, 
++IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA,  0x1F2A, 
++IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA,  0x1F3A, 
++IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_OMICRON,  0x1F4A, 
++IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA,  0x1F6A, 
++IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha,  0x1F02, 
++IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_epsilon,  0x1F12, 
++IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_eta,  0x1F22, 
++IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_iota,  0x1F32, 
++IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_omicron,  0x1F42, 
++IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon,  0x1F52, 
++IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_omega,  0x1F62, 
++IBUS_KEY_grave, IBUS_KEY_plus, IBUS_KEY_O,  0x1EDC, 
++IBUS_KEY_grave, IBUS_KEY_plus, IBUS_KEY_U,  0x1EEA, 
++IBUS_KEY_grave, IBUS_KEY_plus, IBUS_KEY_o,  0x1EDD, 
++IBUS_KEY_grave, IBUS_KEY_plus, IBUS_KEY_u,  0x1EEB, 
++IBUS_KEY_grave, IBUS_KEY_asciicircum, IBUS_KEY_A,  0x1EA6, 
++IBUS_KEY_grave, IBUS_KEY_asciicircum, IBUS_KEY_E,  0x1EC0, 
++IBUS_KEY_grave, IBUS_KEY_asciicircum, IBUS_KEY_O,  0x1ED2, 
++IBUS_KEY_grave, IBUS_KEY_asciicircum, IBUS_KEY_a,  0x1EA7, 
++IBUS_KEY_grave, IBUS_KEY_asciicircum, IBUS_KEY_e,  0x1EC1, 
++IBUS_KEY_grave, IBUS_KEY_asciicircum, IBUS_KEY_o,  0x1ED3, 
++IBUS_KEY_grave, IBUS_KEY_underscore, IBUS_KEY_E,  0x1E14, 
++IBUS_KEY_grave, IBUS_KEY_underscore, IBUS_KEY_O,  0x1E50, 
++IBUS_KEY_grave, IBUS_KEY_underscore, IBUS_KEY_e,  0x1E15, 
++IBUS_KEY_grave, IBUS_KEY_underscore, IBUS_KEY_o,  0x1E51, 
++IBUS_KEY_grave, IBUS_KEY_b, IBUS_KEY_A,  0x1EB0, 
++IBUS_KEY_grave, IBUS_KEY_b, IBUS_KEY_a,  0x1EB1, 
++IBUS_KEY_grave, IBUS_KEY_macron, IBUS_KEY_E,  0x1E14, 
++IBUS_KEY_grave, IBUS_KEY_macron, IBUS_KEY_O,  0x1E50, 
++IBUS_KEY_grave, IBUS_KEY_macron, IBUS_KEY_e,  0x1E15, 
++IBUS_KEY_grave, IBUS_KEY_macron, IBUS_KEY_o,  0x1E51, 
++IBUS_KEY_grave, IBUS_KEY_dead_circumflex, IBUS_KEY_A,  0x1EA6, 
++IBUS_KEY_grave, IBUS_KEY_dead_circumflex, IBUS_KEY_E,  0x1EC0, 
++IBUS_KEY_grave, IBUS_KEY_dead_circumflex, IBUS_KEY_O,  0x1ED2, 
++IBUS_KEY_grave, IBUS_KEY_dead_circumflex, IBUS_KEY_a,  0x1EA7, 
++IBUS_KEY_grave, IBUS_KEY_dead_circumflex, IBUS_KEY_e,  0x1EC1, 
++IBUS_KEY_grave, IBUS_KEY_dead_circumflex, IBUS_KEY_o,  0x1ED3, 
++IBUS_KEY_grave, IBUS_KEY_dead_macron, IBUS_KEY_E,  0x1E14, 
++IBUS_KEY_grave, IBUS_KEY_dead_macron, IBUS_KEY_O,  0x1E50, 
++IBUS_KEY_grave, IBUS_KEY_dead_macron, IBUS_KEY_e,  0x1E15, 
++IBUS_KEY_grave, IBUS_KEY_dead_macron, IBUS_KEY_o,  0x1E51, 
++IBUS_KEY_grave, IBUS_KEY_dead_breve, IBUS_KEY_A,  0x1EB0, 
++IBUS_KEY_grave, IBUS_KEY_dead_breve, IBUS_KEY_a,  0x1EB1, 
++IBUS_KEY_grave, IBUS_KEY_dead_diaeresis, IBUS_KEY_U,  0x01DB, 
++IBUS_KEY_grave, IBUS_KEY_dead_diaeresis, IBUS_KEY_u,  0x01DC, 
++IBUS_KEY_grave, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_iota,  0x1FD2, 
++IBUS_KEY_grave, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_upsilon,  0x1FE2, 
++IBUS_KEY_grave, IBUS_KEY_dead_horn, IBUS_KEY_O,  0x1EDC, 
++IBUS_KEY_grave, IBUS_KEY_dead_horn, IBUS_KEY_U,  0x1EEA, 
++IBUS_KEY_grave, IBUS_KEY_dead_horn, IBUS_KEY_o,  0x1EDD, 
++IBUS_KEY_grave, IBUS_KEY_dead_horn, IBUS_KEY_u,  0x1EEB, 
++IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA,  0x1F0A, 
++IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_EPSILON,  0x1F1A, 
++IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA,  0x1F2A, 
++IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_IOTA,  0x1F3A, 
++IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMICRON,  0x1F4A, 
++IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA,  0x1F6A, 
++IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha,  0x1F02, 
++IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_epsilon,  0x1F12, 
++IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta,  0x1F22, 
++IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_iota,  0x1F32, 
++IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omicron,  0x1F42, 
++IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_upsilon,  0x1F52, 
++IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega,  0x1F62, 
++IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA,  0x1F0B, 
++IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_EPSILON,  0x1F1B, 
++IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA,  0x1F2B, 
++IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_IOTA,  0x1F3B, 
++IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMICRON,  0x1F4B, 
++IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_UPSILON,  0x1F5B, 
++IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA,  0x1F6B, 
++IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha,  0x1F03, 
++IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_epsilon,  0x1F13, 
++IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta,  0x1F23, 
++IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_iota,  0x1F33, 
++IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omicron,  0x1F43, 
++IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_upsilon,  0x1F53, 
++IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega,  0x1F63, 
++IBUS_KEY_b, IBUS_KEY_exclam, IBUS_KEY_A,  0x1EB6, 
++IBUS_KEY_b, IBUS_KEY_exclam, IBUS_KEY_a,  0x1EB7, 
++IBUS_KEY_b, IBUS_KEY_comma, IBUS_KEY_E,  0x1E1C, 
++IBUS_KEY_b, IBUS_KEY_comma, IBUS_KEY_e,  0x1E1D, 
++IBUS_KEY_b, IBUS_KEY_cedilla, IBUS_KEY_E,  0x1E1C, 
++IBUS_KEY_b, IBUS_KEY_cedilla, IBUS_KEY_e,  0x1E1D, 
++IBUS_KEY_b, IBUS_KEY_dead_cedilla, IBUS_KEY_E,  0x1E1C, 
++IBUS_KEY_b, IBUS_KEY_dead_cedilla, IBUS_KEY_e,  0x1E1D, 
++IBUS_KEY_b, IBUS_KEY_dead_belowdot, IBUS_KEY_A,  0x1EB6, 
++IBUS_KEY_b, IBUS_KEY_dead_belowdot, IBUS_KEY_a,  0x1EB7, 
++IBUS_KEY_c, IBUS_KEY_quotedbl, IBUS_KEY_U,  0x01D9, 
++IBUS_KEY_c, IBUS_KEY_quotedbl, IBUS_KEY_u,  0x01DA, 
++IBUS_KEY_c, IBUS_KEY_dead_diaeresis, IBUS_KEY_U,  0x01D9, 
++IBUS_KEY_c, IBUS_KEY_dead_diaeresis, IBUS_KEY_u,  0x01DA, 
++IBUS_KEY_asciitilde, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota,  0x1FD7, 
++IBUS_KEY_asciitilde, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon,  0x1FE7, 
++IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA,  0x1F0F, 
++IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA,  0x1F2F, 
++IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA,  0x1F3F, 
++IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON,  0x1F5F, 
++IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA,  0x1F6F, 
++IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha,  0x1F07, 
++IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta,  0x1F27, 
++IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_iota,  0x1F37, 
++IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon,  0x1F57, 
++IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega,  0x1F67, 
++IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA,  0x1F0E, 
++IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA,  0x1F2E, 
++IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA,  0x1F3E, 
++IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA,  0x1F6E, 
++IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha,  0x1F06, 
++IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_eta,  0x1F26, 
++IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_iota,  0x1F36, 
++IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon,  0x1F56, 
++IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_omega,  0x1F66, 
++IBUS_KEY_asciitilde, IBUS_KEY_plus, IBUS_KEY_O,  0x1EE0, 
++IBUS_KEY_asciitilde, IBUS_KEY_plus, IBUS_KEY_U,  0x1EEE, 
++IBUS_KEY_asciitilde, IBUS_KEY_plus, IBUS_KEY_o,  0x1EE1, 
++IBUS_KEY_asciitilde, IBUS_KEY_plus, IBUS_KEY_u,  0x1EEF, 
++IBUS_KEY_asciitilde, IBUS_KEY_asciicircum, IBUS_KEY_A,  0x1EAA, 
++IBUS_KEY_asciitilde, IBUS_KEY_asciicircum, IBUS_KEY_E,  0x1EC4, 
++IBUS_KEY_asciitilde, IBUS_KEY_asciicircum, IBUS_KEY_O,  0x1ED6, 
++IBUS_KEY_asciitilde, IBUS_KEY_asciicircum, IBUS_KEY_a,  0x1EAB, 
++IBUS_KEY_asciitilde, IBUS_KEY_asciicircum, IBUS_KEY_e,  0x1EC5, 
++IBUS_KEY_asciitilde, IBUS_KEY_asciicircum, IBUS_KEY_o,  0x1ED7, 
++IBUS_KEY_asciitilde, IBUS_KEY_b, IBUS_KEY_A,  0x1EB4, 
++IBUS_KEY_asciitilde, IBUS_KEY_b, IBUS_KEY_a,  0x1EB5, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_circumflex, IBUS_KEY_A,  0x1EAA, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_circumflex, IBUS_KEY_E,  0x1EC4, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_circumflex, IBUS_KEY_O,  0x1ED6, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_circumflex, IBUS_KEY_a,  0x1EAB, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_circumflex, IBUS_KEY_e,  0x1EC5, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_circumflex, IBUS_KEY_o,  0x1ED7, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_breve, IBUS_KEY_A,  0x1EB4, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_breve, IBUS_KEY_a,  0x1EB5, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_iota,  0x1FD7, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_upsilon,  0x1FE7, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_horn, IBUS_KEY_O,  0x1EE0, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_horn, IBUS_KEY_U,  0x1EEE, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_horn, IBUS_KEY_o,  0x1EE1, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_horn, IBUS_KEY_u,  0x1EEF, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA,  0x1F0E, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA,  0x1F2E, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_IOTA,  0x1F3E, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA,  0x1F6E, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha,  0x1F06, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta,  0x1F26, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_iota,  0x1F36, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_upsilon,  0x1F56, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega,  0x1F66, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA,  0x1F0F, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA,  0x1F2F, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_IOTA,  0x1F3F, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_UPSILON,  0x1F5F, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA,  0x1F6F, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha,  0x1F07, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta,  0x1F27, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_iota,  0x1F37, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_upsilon,  0x1F57, 
++IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega,  0x1F67, 
++IBUS_KEY_macron, IBUS_KEY_exclam, IBUS_KEY_L,  0x1E38, 
++IBUS_KEY_macron, IBUS_KEY_exclam, IBUS_KEY_R,  0x1E5C, 
++IBUS_KEY_macron, IBUS_KEY_exclam, IBUS_KEY_l,  0x1E39, 
++IBUS_KEY_macron, IBUS_KEY_exclam, IBUS_KEY_r,  0x1E5D, 
++IBUS_KEY_macron, IBUS_KEY_quotedbl, IBUS_KEY_A,  0x01DE, 
++IBUS_KEY_macron, IBUS_KEY_quotedbl, IBUS_KEY_O,  0x022A, 
++IBUS_KEY_macron, IBUS_KEY_quotedbl, IBUS_KEY_U,  0x01D5, 
++IBUS_KEY_macron, IBUS_KEY_quotedbl, IBUS_KEY_a,  0x01DF, 
++IBUS_KEY_macron, IBUS_KEY_quotedbl, IBUS_KEY_o,  0x022B, 
++IBUS_KEY_macron, IBUS_KEY_quotedbl, IBUS_KEY_u,  0x01D6, 
++IBUS_KEY_macron, IBUS_KEY_period, IBUS_KEY_A,  0x01E0, 
++IBUS_KEY_macron, IBUS_KEY_period, IBUS_KEY_O,  0x0230, 
++IBUS_KEY_macron, IBUS_KEY_period, IBUS_KEY_a,  0x01E1, 
++IBUS_KEY_macron, IBUS_KEY_period, IBUS_KEY_o,  0x0231, 
++IBUS_KEY_macron, IBUS_KEY_semicolon, IBUS_KEY_O,  0x01EC, 
++IBUS_KEY_macron, IBUS_KEY_semicolon, IBUS_KEY_o,  0x01ED, 
++IBUS_KEY_macron, IBUS_KEY_asciitilde, IBUS_KEY_O,  0x022C, 
++IBUS_KEY_macron, IBUS_KEY_asciitilde, IBUS_KEY_o,  0x022D, 
++IBUS_KEY_macron, IBUS_KEY_dead_tilde, IBUS_KEY_O,  0x022C, 
++IBUS_KEY_macron, IBUS_KEY_dead_tilde, IBUS_KEY_o,  0x022D, 
++IBUS_KEY_macron, IBUS_KEY_dead_abovedot, IBUS_KEY_A,  0x01E0, 
++IBUS_KEY_macron, IBUS_KEY_dead_abovedot, IBUS_KEY_O,  0x0230, 
++IBUS_KEY_macron, IBUS_KEY_dead_abovedot, IBUS_KEY_a,  0x01E1, 
++IBUS_KEY_macron, IBUS_KEY_dead_abovedot, IBUS_KEY_o,  0x0231, 
++IBUS_KEY_macron, IBUS_KEY_dead_diaeresis, IBUS_KEY_A,  0x01DE, 
++IBUS_KEY_macron, IBUS_KEY_dead_diaeresis, IBUS_KEY_O,  0x022A, 
++IBUS_KEY_macron, IBUS_KEY_dead_diaeresis, IBUS_KEY_U,  0x01D5, 
++IBUS_KEY_macron, IBUS_KEY_dead_diaeresis, IBUS_KEY_a,  0x01DF, 
++IBUS_KEY_macron, IBUS_KEY_dead_diaeresis, IBUS_KEY_o,  0x022B, 
++IBUS_KEY_macron, IBUS_KEY_dead_diaeresis, IBUS_KEY_u,  0x01D6, 
++IBUS_KEY_macron, IBUS_KEY_dead_ogonek, IBUS_KEY_O,  0x01EC, 
++IBUS_KEY_macron, IBUS_KEY_dead_ogonek, IBUS_KEY_o,  0x01ED, 
++IBUS_KEY_macron, IBUS_KEY_dead_belowdot, IBUS_KEY_L,  0x1E38, 
++IBUS_KEY_macron, IBUS_KEY_dead_belowdot, IBUS_KEY_R,  0x1E5C, 
++IBUS_KEY_macron, IBUS_KEY_dead_belowdot, IBUS_KEY_l,  0x1E39, 
++IBUS_KEY_macron, IBUS_KEY_dead_belowdot, IBUS_KEY_r,  0x1E5D, 
++IBUS_KEY_acute, IBUS_KEY_quotedbl, IBUS_KEY_I,  0x1E2E, 
++IBUS_KEY_acute, IBUS_KEY_quotedbl, IBUS_KEY_U,  0x01D7, 
++IBUS_KEY_acute, IBUS_KEY_quotedbl, IBUS_KEY_i,  0x1E2F, 
++IBUS_KEY_acute, IBUS_KEY_quotedbl, IBUS_KEY_u,  0x01D8, 
++IBUS_KEY_acute, IBUS_KEY_quotedbl, IBUS_KEY_Greek_iota,  0x0390, 
++IBUS_KEY_acute, IBUS_KEY_quotedbl, IBUS_KEY_Greek_upsilon,  0x03B0, 
++IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA,  0x1F0D, 
++IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_EPSILON,  0x1F1D, 
++IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA,  0x1F2D, 
++IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_IOTA,  0x1F3D, 
++IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMICRON,  0x1F4D, 
++IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_UPSILON,  0x1F5D, 
++IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA,  0x1F6D, 
++IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha,  0x1F05, 
++IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_epsilon,  0x1F15, 
++IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta,  0x1F25, 
++IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_iota,  0x1F35, 
++IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_omicron,  0x1F45, 
++IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_upsilon,  0x1F55, 
++IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega,  0x1F65, 
++IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA,  0x1F0C, 
++IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_EPSILON,  0x1F1C, 
++IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA,  0x1F2C, 
++IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_IOTA,  0x1F3C, 
++IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_OMICRON,  0x1F4C, 
++IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA,  0x1F6C, 
++IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha,  0x1F04, 
++IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_epsilon,  0x1F14, 
++IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_eta,  0x1F24, 
++IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_iota,  0x1F34, 
++IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_omicron,  0x1F44, 
++IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_upsilon,  0x1F54, 
++IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_omega,  0x1F64, 
++IBUS_KEY_acute, IBUS_KEY_plus, IBUS_KEY_O,  0x1EDA, 
++IBUS_KEY_acute, IBUS_KEY_plus, IBUS_KEY_U,  0x1EE8, 
++IBUS_KEY_acute, IBUS_KEY_plus, IBUS_KEY_o,  0x1EDB, 
++IBUS_KEY_acute, IBUS_KEY_plus, IBUS_KEY_u,  0x1EE9, 
++IBUS_KEY_acute, IBUS_KEY_comma, IBUS_KEY_C,  0x1E08, 
++IBUS_KEY_acute, IBUS_KEY_comma, IBUS_KEY_c,  0x1E09, 
++IBUS_KEY_acute, IBUS_KEY_slash, IBUS_KEY_O,  0x01FE, 
++IBUS_KEY_acute, IBUS_KEY_slash, IBUS_KEY_o,  0x01FF, 
++IBUS_KEY_acute, IBUS_KEY_asciicircum, IBUS_KEY_A,  0x1EA4, 
++IBUS_KEY_acute, IBUS_KEY_asciicircum, IBUS_KEY_E,  0x1EBE, 
++IBUS_KEY_acute, IBUS_KEY_asciicircum, IBUS_KEY_O,  0x1ED0, 
++IBUS_KEY_acute, IBUS_KEY_asciicircum, IBUS_KEY_a,  0x1EA5, 
++IBUS_KEY_acute, IBUS_KEY_asciicircum, IBUS_KEY_e,  0x1EBF, 
++IBUS_KEY_acute, IBUS_KEY_asciicircum, IBUS_KEY_o,  0x1ED1, 
++IBUS_KEY_acute, IBUS_KEY_underscore, IBUS_KEY_E,  0x1E16, 
++IBUS_KEY_acute, IBUS_KEY_underscore, IBUS_KEY_O,  0x1E52, 
++IBUS_KEY_acute, IBUS_KEY_underscore, IBUS_KEY_e,  0x1E17, 
++IBUS_KEY_acute, IBUS_KEY_underscore, IBUS_KEY_o,  0x1E53, 
++IBUS_KEY_acute, IBUS_KEY_b, IBUS_KEY_A,  0x1EAE, 
++IBUS_KEY_acute, IBUS_KEY_b, IBUS_KEY_a,  0x1EAF, 
++IBUS_KEY_acute, IBUS_KEY_asciitilde, IBUS_KEY_O,  0x1E4C, 
++IBUS_KEY_acute, IBUS_KEY_asciitilde, IBUS_KEY_U,  0x1E78, 
++IBUS_KEY_acute, IBUS_KEY_asciitilde, IBUS_KEY_o,  0x1E4D, 
++IBUS_KEY_acute, IBUS_KEY_asciitilde, IBUS_KEY_u,  0x1E79, 
++IBUS_KEY_acute, IBUS_KEY_macron, IBUS_KEY_E,  0x1E16, 
++IBUS_KEY_acute, IBUS_KEY_macron, IBUS_KEY_O,  0x1E52, 
++IBUS_KEY_acute, IBUS_KEY_macron, IBUS_KEY_e,  0x1E17, 
++IBUS_KEY_acute, IBUS_KEY_macron, IBUS_KEY_o,  0x1E53, 
++IBUS_KEY_acute, IBUS_KEY_cedilla, IBUS_KEY_C,  0x1E08, 
++IBUS_KEY_acute, IBUS_KEY_cedilla, IBUS_KEY_c,  0x1E09, 
++IBUS_KEY_acute, IBUS_KEY_dead_circumflex, IBUS_KEY_A,  0x1EA4, 
++IBUS_KEY_acute, IBUS_KEY_dead_circumflex, IBUS_KEY_E,  0x1EBE, 
++IBUS_KEY_acute, IBUS_KEY_dead_circumflex, IBUS_KEY_O,  0x1ED0, 
++IBUS_KEY_acute, IBUS_KEY_dead_circumflex, IBUS_KEY_a,  0x1EA5, 
++IBUS_KEY_acute, IBUS_KEY_dead_circumflex, IBUS_KEY_e,  0x1EBF, 
++IBUS_KEY_acute, IBUS_KEY_dead_circumflex, IBUS_KEY_o,  0x1ED1, 
++IBUS_KEY_acute, IBUS_KEY_dead_tilde, IBUS_KEY_O,  0x1E4C, 
++IBUS_KEY_acute, IBUS_KEY_dead_tilde, IBUS_KEY_U,  0x1E78, 
++IBUS_KEY_acute, IBUS_KEY_dead_tilde, IBUS_KEY_o,  0x1E4D, 
++IBUS_KEY_acute, IBUS_KEY_dead_tilde, IBUS_KEY_u,  0x1E79, 
++IBUS_KEY_acute, IBUS_KEY_dead_macron, IBUS_KEY_E,  0x1E16, 
++IBUS_KEY_acute, IBUS_KEY_dead_macron, IBUS_KEY_O,  0x1E52, 
++IBUS_KEY_acute, IBUS_KEY_dead_macron, IBUS_KEY_e,  0x1E17, 
++IBUS_KEY_acute, IBUS_KEY_dead_macron, IBUS_KEY_o,  0x1E53, 
++IBUS_KEY_acute, IBUS_KEY_dead_breve, IBUS_KEY_A,  0x1EAE, 
++IBUS_KEY_acute, IBUS_KEY_dead_breve, IBUS_KEY_a,  0x1EAF, 
++IBUS_KEY_acute, IBUS_KEY_dead_diaeresis, IBUS_KEY_I,  0x1E2E, 
++IBUS_KEY_acute, IBUS_KEY_dead_diaeresis, IBUS_KEY_U,  0x01D7, 
++IBUS_KEY_acute, IBUS_KEY_dead_diaeresis, IBUS_KEY_i,  0x1E2F, 
++IBUS_KEY_acute, IBUS_KEY_dead_diaeresis, IBUS_KEY_u,  0x01D8, 
++IBUS_KEY_acute, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_iota,  0x0390, 
++IBUS_KEY_acute, IBUS_KEY_dead_diaeresis, IBUS_KEY_Greek_upsilon,  0x03B0, 
++IBUS_KEY_acute, IBUS_KEY_dead_abovering, IBUS_KEY_A,  0x01FA, 
++IBUS_KEY_acute, IBUS_KEY_dead_abovering, IBUS_KEY_a,  0x01FB, 
++IBUS_KEY_acute, IBUS_KEY_dead_cedilla, IBUS_KEY_C,  0x1E08, 
++IBUS_KEY_acute, IBUS_KEY_dead_cedilla, IBUS_KEY_c,  0x1E09, 
++IBUS_KEY_acute, IBUS_KEY_dead_horn, IBUS_KEY_O,  0x1EDA, 
++IBUS_KEY_acute, IBUS_KEY_dead_horn, IBUS_KEY_U,  0x1EE8, 
++IBUS_KEY_acute, IBUS_KEY_dead_horn, IBUS_KEY_o,  0x1EDB, 
++IBUS_KEY_acute, IBUS_KEY_dead_horn, IBUS_KEY_u,  0x1EE9, 
++IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA,  0x1F0C, 
++IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_EPSILON,  0x1F1C, 
++IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA,  0x1F2C, 
++IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_IOTA,  0x1F3C, 
++IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMICRON,  0x1F4C, 
++IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA,  0x1F6C, 
++IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha,  0x1F04, 
++IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_epsilon,  0x1F14, 
++IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta,  0x1F24, 
++IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_iota,  0x1F34, 
++IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omicron,  0x1F44, 
++IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_upsilon,  0x1F54, 
++IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega,  0x1F64, 
++IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA,  0x1F0D, 
++IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_EPSILON,  0x1F1D, 
++IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA,  0x1F2D, 
++IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_IOTA,  0x1F3D, 
++IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMICRON,  0x1F4D, 
++IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_UPSILON,  0x1F5D, 
++IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA,  0x1F6D, 
++IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha,  0x1F05, 
++IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_epsilon,  0x1F15, 
++IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta,  0x1F25, 
++IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_iota,  0x1F35, 
++IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omicron,  0x1F45, 
++IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_upsilon,  0x1F55, 
++IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega,  0x1F65, 
++IBUS_KEY_acute, IBUS_KEY_KP_Divide, IBUS_KEY_O,  0x01FE, 
++IBUS_KEY_acute, IBUS_KEY_KP_Divide, IBUS_KEY_o,  0x01FF, 
++0x05C1, 0x05BC, IBUS_KEY_hebrew_shin,  0xFB2C, 
++0x05C2, 0x05BC, IBUS_KEY_hebrew_shin,  0xFB2D, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_Greek_alpha,  0x1FB4, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_Greek_eta,  0x1FC4, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_Greek_omega,  0x1FF4, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F00,  0x1F84, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F01,  0x1F85, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F08,  0x1F8C, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F09,  0x1F8D, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F20,  0x1F94, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F21,  0x1F95, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F28,  0x1F9C, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F29,  0x1F9D, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F60,  0x1FA4, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F61,  0x1FA5, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F68,  0x1FAC, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, 0x1F69,  0x1FAD, 
++IBUS_KEY_Greek_iota, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA,  0x1F89, 
++IBUS_KEY_Greek_iota, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA,  0x1F99, 
++IBUS_KEY_Greek_iota, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA,  0x1FA9, 
++IBUS_KEY_Greek_iota, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha,  0x1F81, 
++IBUS_KEY_Greek_iota, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta,  0x1F91, 
++IBUS_KEY_Greek_iota, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega,  0x1FA1, 
++IBUS_KEY_Greek_iota, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA,  0x1F88, 
++IBUS_KEY_Greek_iota, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA,  0x1F98, 
++IBUS_KEY_Greek_iota, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA,  0x1FA8, 
++IBUS_KEY_Greek_iota, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha,  0x1F80, 
++IBUS_KEY_Greek_iota, IBUS_KEY_parenright, IBUS_KEY_Greek_eta,  0x1F90, 
++IBUS_KEY_Greek_iota, IBUS_KEY_parenright, IBUS_KEY_Greek_omega,  0x1FA0, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_Greek_alpha,  0x1FB2, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_Greek_eta,  0x1FC2, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_Greek_omega,  0x1FF2, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F00,  0x1F82, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F01,  0x1F83, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F08,  0x1F8A, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F09,  0x1F8B, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F20,  0x1F92, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F21,  0x1F93, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F28,  0x1F9A, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F29,  0x1F9B, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F60,  0x1FA2, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F61,  0x1FA3, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F68,  0x1FAA, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, 0x1F69,  0x1FAB, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_Greek_alpha,  0x1FB7, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_Greek_eta,  0x1FC7, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_Greek_omega,  0x1FF7, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F00,  0x1F86, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F01,  0x1F87, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F08,  0x1F8E, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F09,  0x1F8F, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F20,  0x1F96, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F21,  0x1F97, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F28,  0x1F9E, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F29,  0x1F9F, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F60,  0x1FA6, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F61,  0x1FA7, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F68,  0x1FAE, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, 0x1F69,  0x1FAF, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_Greek_alpha,  0x1FB4, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_Greek_eta,  0x1FC4, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_Greek_omega,  0x1FF4, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F00,  0x1F84, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F01,  0x1F85, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F08,  0x1F8C, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F09,  0x1F8D, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F20,  0x1F94, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F21,  0x1F95, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F28,  0x1F9C, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F29,  0x1F9D, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F60,  0x1FA4, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F61,  0x1FA5, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F68,  0x1FAC, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, 0x1F69,  0x1FAD, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_alpha,  0x1FB2, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_eta,  0x1FC2, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_Greek_omega,  0x1FF2, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F00,  0x1F82, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F01,  0x1F83, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F08,  0x1F8A, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F09,  0x1F8B, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F20,  0x1F92, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F21,  0x1F93, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F28,  0x1F9A, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F29,  0x1F9B, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F60,  0x1FA2, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F61,  0x1FA3, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F68,  0x1FAA, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, 0x1F69,  0x1FAB, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_alpha,  0x1FB4, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_eta,  0x1FC4, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_Greek_omega,  0x1FF4, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F00,  0x1F84, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F01,  0x1F85, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F08,  0x1F8C, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F09,  0x1F8D, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F20,  0x1F94, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F21,  0x1F95, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F28,  0x1F9C, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F29,  0x1F9D, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F60,  0x1FA4, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F61,  0x1FA5, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F68,  0x1FAC, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, 0x1F69,  0x1FAD, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_alpha,  0x1FB7, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_eta,  0x1FC7, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_Greek_omega,  0x1FF7, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F00,  0x1F86, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F01,  0x1F87, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F08,  0x1F8E, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F09,  0x1F8F, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F20,  0x1F96, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F21,  0x1F97, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F28,  0x1F9E, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F29,  0x1F9F, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F60,  0x1FA6, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F61,  0x1FA7, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F68,  0x1FAE, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, 0x1F69,  0x1FAF, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA,  0x1F88, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA,  0x1F98, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA,  0x1FA8, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha,  0x1F80, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta,  0x1F90, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega,  0x1FA0, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA,  0x1F89, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA,  0x1F99, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA,  0x1FA9, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha,  0x1F81, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta,  0x1F91, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega,  0x1FA1, 
++IBUS_KEY_dead_abovedot, IBUS_KEY_f, IBUS_KEY_s,  0x1E9B, 
++IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_0, IBUS_KEY_parenright,  0x2469, 
++IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_1, IBUS_KEY_parenright,  0x246A, 
++IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_2, IBUS_KEY_parenright,  0x246B, 
++IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_3, IBUS_KEY_parenright,  0x246C, 
++IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_4, IBUS_KEY_parenright,  0x246D, 
++IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_5, IBUS_KEY_parenright,  0x246E, 
++IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_6, IBUS_KEY_parenright,  0x246F, 
++IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_7, IBUS_KEY_parenright,  0x2470, 
++IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_8, IBUS_KEY_parenright,  0x2471, 
++IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_9, IBUS_KEY_parenright,  0x2472, 
++IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_Space, IBUS_KEY_parenright,  0x246B, 
++IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_0, IBUS_KEY_parenright,  0x2469, 
++IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_1, IBUS_KEY_parenright,  0x246A, 
++IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_2, IBUS_KEY_parenright,  0x246B, 
++IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_3, IBUS_KEY_parenright,  0x246C, 
++IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_4, IBUS_KEY_parenright,  0x246D, 
++IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_5, IBUS_KEY_parenright,  0x246E, 
++IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_6, IBUS_KEY_parenright,  0x246F, 
++IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_7, IBUS_KEY_parenright,  0x2470, 
++IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_8, IBUS_KEY_parenright,  0x2471, 
++IBUS_KEY_parenleft, IBUS_KEY_1, IBUS_KEY_KP_9, IBUS_KEY_parenright,  0x2472, 
++IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_0, IBUS_KEY_parenright,  0x2473, 
++IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_1, IBUS_KEY_parenright,  0x3251, 
++IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_2, IBUS_KEY_parenright,  0x3252, 
++IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_3, IBUS_KEY_parenright,  0x3253, 
++IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_4, IBUS_KEY_parenright,  0x3254, 
++IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_5, IBUS_KEY_parenright,  0x3255, 
++IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_6, IBUS_KEY_parenright,  0x3256, 
++IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_7, IBUS_KEY_parenright,  0x3257, 
++IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_8, IBUS_KEY_parenright,  0x3258, 
++IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_9, IBUS_KEY_parenright,  0x3259, 
++IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_Space, IBUS_KEY_parenright,  0x3252, 
++IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_0, IBUS_KEY_parenright,  0x2473, 
++IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_1, IBUS_KEY_parenright,  0x3251, 
++IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_2, IBUS_KEY_parenright,  0x3252, 
++IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_3, IBUS_KEY_parenright,  0x3253, 
++IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_4, IBUS_KEY_parenright,  0x3254, 
++IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_5, IBUS_KEY_parenright,  0x3255, 
++IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_6, IBUS_KEY_parenright,  0x3256, 
++IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_7, IBUS_KEY_parenright,  0x3257, 
++IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_8, IBUS_KEY_parenright,  0x3258, 
++IBUS_KEY_parenleft, IBUS_KEY_2, IBUS_KEY_KP_9, IBUS_KEY_parenright,  0x3259, 
++IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_0, IBUS_KEY_parenright,  0x325A, 
++IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_1, IBUS_KEY_parenright,  0x325B, 
++IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_2, IBUS_KEY_parenright,  0x325C, 
++IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_3, IBUS_KEY_parenright,  0x325D, 
++IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_4, IBUS_KEY_parenright,  0x325E, 
++IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_5, IBUS_KEY_parenright,  0x325F, 
++IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_6, IBUS_KEY_parenright,  0x32B1, 
++IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_7, IBUS_KEY_parenright,  0x32B2, 
++IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_8, IBUS_KEY_parenright,  0x32B3, 
++IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_9, IBUS_KEY_parenright,  0x32B4, 
++IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_Space, IBUS_KEY_parenright,  0x325C, 
++IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_0, IBUS_KEY_parenright,  0x325A, 
++IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_1, IBUS_KEY_parenright,  0x325B, 
++IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_2, IBUS_KEY_parenright,  0x325C, 
++IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_3, IBUS_KEY_parenright,  0x325D, 
++IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_4, IBUS_KEY_parenright,  0x325E, 
++IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_5, IBUS_KEY_parenright,  0x325F, 
++IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_6, IBUS_KEY_parenright,  0x32B1, 
++IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_7, IBUS_KEY_parenright,  0x32B2, 
++IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_8, IBUS_KEY_parenright,  0x32B3, 
++IBUS_KEY_parenleft, IBUS_KEY_3, IBUS_KEY_KP_9, IBUS_KEY_parenright,  0x32B4, 
++IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_0, IBUS_KEY_parenright,  0x32B5, 
++IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_1, IBUS_KEY_parenright,  0x32B6, 
++IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_2, IBUS_KEY_parenright,  0x32B7, 
++IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_3, IBUS_KEY_parenright,  0x32B8, 
++IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_4, IBUS_KEY_parenright,  0x32B9, 
++IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_5, IBUS_KEY_parenright,  0x32BA, 
++IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_6, IBUS_KEY_parenright,  0x32BB, 
++IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_7, IBUS_KEY_parenright,  0x32BC, 
++IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_8, IBUS_KEY_parenright,  0x32BD, 
++IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_9, IBUS_KEY_parenright,  0x32BE, 
++IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_Space, IBUS_KEY_parenright,  0x32B7, 
++IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_0, IBUS_KEY_parenright,  0x32B5, 
++IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_1, IBUS_KEY_parenright,  0x32B6, 
++IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_2, IBUS_KEY_parenright,  0x32B7, 
++IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_3, IBUS_KEY_parenright,  0x32B8, 
++IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_4, IBUS_KEY_parenright,  0x32B9, 
++IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_5, IBUS_KEY_parenright,  0x32BA, 
++IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_6, IBUS_KEY_parenright,  0x32BB, 
++IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_7, IBUS_KEY_parenright,  0x32BC, 
++IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_8, IBUS_KEY_parenright,  0x32BD, 
++IBUS_KEY_parenleft, IBUS_KEY_4, IBUS_KEY_KP_9, IBUS_KEY_parenright,  0x32BE, 
++IBUS_KEY_parenleft, IBUS_KEY_5, IBUS_KEY_0, IBUS_KEY_parenright,  0x32BF, 
++IBUS_KEY_parenleft, 0x1100, 0x1161, IBUS_KEY_parenright,  0x326E, 
++IBUS_KEY_parenleft, 0x1102, 0x1161, IBUS_KEY_parenright,  0x326F, 
++IBUS_KEY_parenleft, 0x1103, 0x1161, IBUS_KEY_parenright,  0x3270, 
++IBUS_KEY_parenleft, 0x1105, 0x1161, IBUS_KEY_parenright,  0x3271, 
++IBUS_KEY_parenleft, 0x1106, 0x1161, IBUS_KEY_parenright,  0x3272, 
++IBUS_KEY_parenleft, 0x1107, 0x1161, IBUS_KEY_parenright,  0x3273, 
++IBUS_KEY_parenleft, 0x1109, 0x1161, IBUS_KEY_parenright,  0x3274, 
++IBUS_KEY_parenleft, 0x110B, 0x1161, IBUS_KEY_parenright,  0x3275, 
++IBUS_KEY_parenleft, 0x110C, 0x1161, IBUS_KEY_parenright,  0x3276, 
++IBUS_KEY_parenleft, 0x110E, 0x1161, IBUS_KEY_parenright,  0x3277, 
++IBUS_KEY_parenleft, 0x110F, 0x1161, IBUS_KEY_parenright,  0x3278, 
++IBUS_KEY_parenleft, 0x1110, 0x1161, IBUS_KEY_parenright,  0x3279, 
++IBUS_KEY_parenleft, 0x1111, 0x1161, IBUS_KEY_parenright,  0x327A, 
++IBUS_KEY_parenleft, 0x1112, 0x1161, IBUS_KEY_parenright,  0x327B, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_0, IBUS_KEY_parenright,  0x2473, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_1, IBUS_KEY_parenright,  0x3251, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_2, IBUS_KEY_parenright,  0x3252, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_3, IBUS_KEY_parenright,  0x3253, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_4, IBUS_KEY_parenright,  0x3254, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_5, IBUS_KEY_parenright,  0x3255, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_6, IBUS_KEY_parenright,  0x3256, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_7, IBUS_KEY_parenright,  0x3257, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_8, IBUS_KEY_parenright,  0x3258, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_9, IBUS_KEY_parenright,  0x3259, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_Space, IBUS_KEY_parenright,  0x3252, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_0, IBUS_KEY_parenright,  0x2473, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_1, IBUS_KEY_parenright,  0x3251, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_2, IBUS_KEY_parenright,  0x3252, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_3, IBUS_KEY_parenright,  0x3253, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_4, IBUS_KEY_parenright,  0x3254, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_5, IBUS_KEY_parenright,  0x3255, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_6, IBUS_KEY_parenright,  0x3256, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_7, IBUS_KEY_parenright,  0x3257, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_8, IBUS_KEY_parenright,  0x3258, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_Space, IBUS_KEY_KP_9, IBUS_KEY_parenright,  0x3259, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_0, IBUS_KEY_parenright,  0x2469, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_1, IBUS_KEY_parenright,  0x246A, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_2, IBUS_KEY_parenright,  0x246B, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_3, IBUS_KEY_parenright,  0x246C, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_4, IBUS_KEY_parenright,  0x246D, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_5, IBUS_KEY_parenright,  0x246E, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_6, IBUS_KEY_parenright,  0x246F, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_7, IBUS_KEY_parenright,  0x2470, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_8, IBUS_KEY_parenright,  0x2471, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_9, IBUS_KEY_parenright,  0x2472, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_Space, IBUS_KEY_parenright,  0x246B, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_0, IBUS_KEY_parenright,  0x2469, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_1, IBUS_KEY_parenright,  0x246A, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_2, IBUS_KEY_parenright,  0x246B, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_3, IBUS_KEY_parenright,  0x246C, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_4, IBUS_KEY_parenright,  0x246D, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_5, IBUS_KEY_parenright,  0x246E, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_6, IBUS_KEY_parenright,  0x246F, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_7, IBUS_KEY_parenright,  0x2470, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_8, IBUS_KEY_parenright,  0x2471, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_1, IBUS_KEY_KP_9, IBUS_KEY_parenright,  0x2472, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_0, IBUS_KEY_parenright,  0x2473, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_1, IBUS_KEY_parenright,  0x3251, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_2, IBUS_KEY_parenright,  0x3252, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_3, IBUS_KEY_parenright,  0x3253, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_4, IBUS_KEY_parenright,  0x3254, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_5, IBUS_KEY_parenright,  0x3255, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_6, IBUS_KEY_parenright,  0x3256, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_7, IBUS_KEY_parenright,  0x3257, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_8, IBUS_KEY_parenright,  0x3258, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_9, IBUS_KEY_parenright,  0x3259, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_Space, IBUS_KEY_parenright,  0x3252, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_0, IBUS_KEY_parenright,  0x2473, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_1, IBUS_KEY_parenright,  0x3251, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_2, IBUS_KEY_parenright,  0x3252, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_3, IBUS_KEY_parenright,  0x3253, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_4, IBUS_KEY_parenright,  0x3254, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_5, IBUS_KEY_parenright,  0x3255, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_6, IBUS_KEY_parenright,  0x3256, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_7, IBUS_KEY_parenright,  0x3257, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_8, IBUS_KEY_parenright,  0x3258, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_2, IBUS_KEY_KP_9, IBUS_KEY_parenright,  0x3259, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_0, IBUS_KEY_parenright,  0x325A, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_1, IBUS_KEY_parenright,  0x325B, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_2, IBUS_KEY_parenright,  0x325C, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_3, IBUS_KEY_parenright,  0x325D, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_4, IBUS_KEY_parenright,  0x325E, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_5, IBUS_KEY_parenright,  0x325F, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_6, IBUS_KEY_parenright,  0x32B1, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_7, IBUS_KEY_parenright,  0x32B2, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_8, IBUS_KEY_parenright,  0x32B3, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_9, IBUS_KEY_parenright,  0x32B4, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_Space, IBUS_KEY_parenright,  0x325C, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_0, IBUS_KEY_parenright,  0x325A, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_1, IBUS_KEY_parenright,  0x325B, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_2, IBUS_KEY_parenright,  0x325C, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_3, IBUS_KEY_parenright,  0x325D, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_4, IBUS_KEY_parenright,  0x325E, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_5, IBUS_KEY_parenright,  0x325F, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_6, IBUS_KEY_parenright,  0x32B1, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_7, IBUS_KEY_parenright,  0x32B2, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_8, IBUS_KEY_parenright,  0x32B3, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_3, IBUS_KEY_KP_9, IBUS_KEY_parenright,  0x32B4, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_0, IBUS_KEY_parenright,  0x32B5, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_1, IBUS_KEY_parenright,  0x32B6, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_2, IBUS_KEY_parenright,  0x32B7, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_3, IBUS_KEY_parenright,  0x32B8, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_4, IBUS_KEY_parenright,  0x32B9, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_5, IBUS_KEY_parenright,  0x32BA, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_6, IBUS_KEY_parenright,  0x32BB, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_7, IBUS_KEY_parenright,  0x32BC, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_8, IBUS_KEY_parenright,  0x32BD, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_9, IBUS_KEY_parenright,  0x32BE, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_Space, IBUS_KEY_parenright,  0x32B7, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_0, IBUS_KEY_parenright,  0x32B5, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_1, IBUS_KEY_parenright,  0x32B6, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_2, IBUS_KEY_parenright,  0x32B7, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_3, IBUS_KEY_parenright,  0x32B8, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_4, IBUS_KEY_parenright,  0x32B9, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_5, IBUS_KEY_parenright,  0x32BA, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_6, IBUS_KEY_parenright,  0x32BB, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_7, IBUS_KEY_parenright,  0x32BC, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_8, IBUS_KEY_parenright,  0x32BD, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_4, IBUS_KEY_KP_9, IBUS_KEY_parenright,  0x32BE, 
++IBUS_KEY_parenleft, IBUS_KEY_KP_5, IBUS_KEY_0, IBUS_KEY_parenright,  0x32BF, 
++IBUS_KEY_C, IBUS_KEY_C, IBUS_KEY_C, IBUS_KEY_P,  0x262D, 
++IBUS_KEY_U, IBUS_KEY_space, IBUS_KEY_comma, IBUS_KEY_E,  0x1E1C, 
++IBUS_KEY_U, IBUS_KEY_space, IBUS_KEY_comma, IBUS_KEY_e,  0x1E1D, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA,  0x1F8D, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA,  0x1F9D, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA,  0x1FAD, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha,  0x1F85, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta,  0x1F95, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega,  0x1FA5, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA,  0x1F8C, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA,  0x1F9C, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA,  0x1FAC, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha,  0x1F84, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_eta,  0x1F94, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_parenright, IBUS_KEY_Greek_omega,  0x1FA4, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA,  0x1F8C, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA,  0x1F9C, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA,  0x1FAC, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha,  0x1F84, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta,  0x1F94, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega,  0x1FA4, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA,  0x1F8D, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA,  0x1F9D, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA,  0x1FAD, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha,  0x1F85, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta,  0x1F95, 
++IBUS_KEY_Greek_iota, IBUS_KEY_apostrophe, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega,  0x1FA5, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA,  0x1F8B, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA,  0x1F9B, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA,  0x1FAB, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha,  0x1F83, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta,  0x1F93, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega,  0x1FA3, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA,  0x1F8A, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA,  0x1F9A, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA,  0x1FAA, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha,  0x1F82, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_eta,  0x1F92, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_omega,  0x1FA2, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA,  0x1F8A, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA,  0x1F9A, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA,  0x1FAA, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha,  0x1F82, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta,  0x1F92, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega,  0x1FA2, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA,  0x1F8B, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA,  0x1F9B, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA,  0x1FAB, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha,  0x1F83, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta,  0x1F93, 
++IBUS_KEY_Greek_iota, IBUS_KEY_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega,  0x1FA3, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA,  0x1F8F, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA,  0x1F9F, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA,  0x1FAF, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha,  0x1F87, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta,  0x1F97, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega,  0x1FA7, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA,  0x1F8E, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA,  0x1F9E, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA,  0x1FAE, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha,  0x1F86, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_eta,  0x1F96, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_parenright, IBUS_KEY_Greek_omega,  0x1FA6, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA,  0x1F8E, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA,  0x1F9E, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA,  0x1FAE, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha,  0x1F86, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta,  0x1F96, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega,  0x1FA6, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA,  0x1F8F, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA,  0x1F9F, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA,  0x1FAF, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha,  0x1F87, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta,  0x1F97, 
++IBUS_KEY_Greek_iota, IBUS_KEY_asciitilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega,  0x1FA7, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA,  0x1F8D, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA,  0x1F9D, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA,  0x1FAD, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha,  0x1F85, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta,  0x1F95, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega,  0x1FA5, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA,  0x1F8C, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA,  0x1F9C, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA,  0x1FAC, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha,  0x1F84, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_eta,  0x1F94, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_omega,  0x1FA4, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA,  0x1F8C, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA,  0x1F9C, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA,  0x1FAC, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha,  0x1F84, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta,  0x1F94, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega,  0x1FA4, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA,  0x1F8D, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA,  0x1F9D, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA,  0x1FAD, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha,  0x1F85, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta,  0x1F95, 
++IBUS_KEY_Greek_iota, IBUS_KEY_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega,  0x1FA5, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA,  0x1F8B, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA,  0x1F9B, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA,  0x1FAB, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha,  0x1F83, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta,  0x1F93, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega,  0x1FA3, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA,  0x1F8A, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA,  0x1F9A, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA,  0x1FAA, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha,  0x1F82, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_eta,  0x1F92, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_parenright, IBUS_KEY_Greek_omega,  0x1FA2, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA,  0x1F8A, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA,  0x1F9A, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA,  0x1FAA, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha,  0x1F82, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta,  0x1F92, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega,  0x1FA2, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA,  0x1F8B, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA,  0x1F9B, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA,  0x1FAB, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha,  0x1F83, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta,  0x1F93, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_grave, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega,  0x1FA3, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA,  0x1F8D, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA,  0x1F9D, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA,  0x1FAD, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha,  0x1F85, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta,  0x1F95, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega,  0x1FA5, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA,  0x1F8C, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA,  0x1F9C, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA,  0x1FAC, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha,  0x1F84, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_eta,  0x1F94, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_parenright, IBUS_KEY_Greek_omega,  0x1FA4, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA,  0x1F8C, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA,  0x1F9C, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA,  0x1FAC, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha,  0x1F84, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta,  0x1F94, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega,  0x1FA4, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA,  0x1F8D, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA,  0x1F9D, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA,  0x1FAD, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha,  0x1F85, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta,  0x1F95, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_acute, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega,  0x1FA5, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ALPHA,  0x1F8F, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_ETA,  0x1F9F, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_OMEGA,  0x1FAF, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_alpha,  0x1F87, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_eta,  0x1F97, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenleft, IBUS_KEY_Greek_omega,  0x1FA7, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ALPHA,  0x1F8E, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenright, IBUS_KEY_Greek_ETA,  0x1F9E, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenright, IBUS_KEY_Greek_OMEGA,  0x1FAE, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenright, IBUS_KEY_Greek_alpha,  0x1F86, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenright, IBUS_KEY_Greek_eta,  0x1F96, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_parenright, IBUS_KEY_Greek_omega,  0x1FA6, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ALPHA,  0x1F8E, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_ETA,  0x1F9E, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_OMEGA,  0x1FAE, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_alpha,  0x1F86, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_eta,  0x1F96, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_psili, IBUS_KEY_Greek_omega,  0x1FA6, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ALPHA,  0x1F8F, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_ETA,  0x1F9F, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_OMEGA,  0x1FAF, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_alpha,  0x1F87, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_eta,  0x1F97, 
++IBUS_KEY_Greek_iota, IBUS_KEY_dead_tilde, IBUS_KEY_dead_dasia, IBUS_KEY_Greek_omega,  0x1FA7, 
++};
++
++static const guint16 gtk_compose_seqs_compact_32bit_first[] = {
++IBUS_KEY_dead_grave, 54, 123, 187, 187, 187, 
++IBUS_KEY_dead_acute, 187, 268, 316, 316, 316, 
++IBUS_KEY_dead_circumflex, 316, 388, 388, 388, 388, 
++IBUS_KEY_dead_tilde, 388, 406, 406, 406, 406, 
++IBUS_KEY_dead_macron, 406, 466, 466, 466, 466, 
++IBUS_KEY_dead_caron, 466, 502, 502, 502, 502, 
++IBUS_KEY_dead_doublegrave, 502, 538, 538, 538, 538, 
++IBUS_KEY_dead_invertedbreve, 538, 574, 574, 574, 574, 
++IBUS_KEY_Multi_key, 574, 574, 850, 920, 926, 
++IBUS_KEY_M,  0, 2,
++IBUS_KEY_m,  2, 2,
++0x0186,  4, 2,
++0x018E,  6, 2,
++0x0190,  8, 2,
++0x0196,  10, 2,
++0x01B1,  12, 2,
++0x01B2,  14, 2,
++0x01DD,  16, 2,
++0x0254,  18, 2,
++0x025B,  20, 2,
++0x0269,  22, 2,
++0x028A,  24, 2,
++0x028B,  26, 2,
++IBUS_KEY_ENG,  28, 2,
++IBUS_KEY_Cyrillic_a,  30, 2,
++IBUS_KEY_Cyrillic_o,  32, 2,
++IBUS_KEY_Cyrillic_er,  34, 2,
++IBUS_KEY_Cyrillic_u,  36, 2,
++IBUS_KEY_Cyrillic_A,  38, 2,
++IBUS_KEY_Cyrillic_O,  40, 2,
++IBUS_KEY_Cyrillic_ER,  42, 2,
++IBUS_KEY_Cyrillic_U,  44, 2,
++IBUS_KEY_dead_tilde, IBUS_KEY_A,  46, 3,
++IBUS_KEY_dead_tilde, IBUS_KEY_E,  49, 3,
++IBUS_KEY_dead_tilde, IBUS_KEY_I,  52, 3,
++IBUS_KEY_dead_tilde, IBUS_KEY_O,  55, 3,
++IBUS_KEY_dead_tilde, IBUS_KEY_U,  58, 3,
++IBUS_KEY_dead_tilde, IBUS_KEY_a,  61, 3,
++IBUS_KEY_dead_tilde, IBUS_KEY_e,  64, 3,
++IBUS_KEY_dead_tilde, IBUS_KEY_i,  67, 3,
++IBUS_KEY_dead_tilde, IBUS_KEY_o,  70, 3,
++IBUS_KEY_dead_tilde, IBUS_KEY_u,  73, 3,
++IBUS_KEY_dead_tilde, 0x0186,  76, 3,
++IBUS_KEY_dead_tilde, 0x018E,  79, 3,
++IBUS_KEY_dead_tilde, 0x0190,  82, 3,
++IBUS_KEY_dead_tilde, 0x01DD,  85, 3,
++IBUS_KEY_dead_tilde, 0x0254,  88, 3,
++IBUS_KEY_dead_tilde, 0x025B,  91, 3,
++IBUS_KEY_J,  94, 2,
++IBUS_KEY_j,  96, 2,
++0x0186,  98, 2,
++0x018E,  100, 2,
++0x0190,  102, 2,
++0x0196,  104, 2,
++0x01B1,  106, 2,
++0x01B2,  108, 2,
++0x01DD,  110, 2,
++0x0254,  112, 2,
++0x025B,  114, 2,
++0x0269,  116, 2,
++0x028A,  118, 2,
++0x028B,  120, 2,
++IBUS_KEY_ENG,  122, 2,
++IBUS_KEY_Cyrillic_a,  124, 2,
++IBUS_KEY_Cyrillic_ie,  126, 2,
++IBUS_KEY_Cyrillic_i,  128, 2,
++IBUS_KEY_Cyrillic_o,  130, 2,
++IBUS_KEY_Cyrillic_er,  132, 2,
++IBUS_KEY_Cyrillic_u,  134, 2,
++IBUS_KEY_Cyrillic_A,  136, 2,
++IBUS_KEY_Cyrillic_IE,  138, 2,
++IBUS_KEY_Cyrillic_I,  140, 2,
++IBUS_KEY_Cyrillic_O,  142, 2,
++IBUS_KEY_Cyrillic_ER,  144, 2,
++IBUS_KEY_Cyrillic_U,  146, 2,
++IBUS_KEY_dead_tilde, IBUS_KEY_A,  148, 3,
++IBUS_KEY_dead_tilde, IBUS_KEY_E,  151, 3,
++IBUS_KEY_dead_tilde, IBUS_KEY_I,  154, 3,
++IBUS_KEY_dead_tilde, IBUS_KEY_a,  157, 3,
++IBUS_KEY_dead_tilde, IBUS_KEY_e,  160, 3,
++IBUS_KEY_dead_tilde, IBUS_KEY_i,  163, 3,
++IBUS_KEY_dead_tilde, 0x0186,  166, 3,
++IBUS_KEY_dead_tilde, 0x018E,  169, 3,
++IBUS_KEY_dead_tilde, 0x0190,  172, 3,
++IBUS_KEY_dead_tilde, 0x01DD,  175, 3,
++IBUS_KEY_dead_tilde, 0x0254,  178, 3,
++IBUS_KEY_dead_tilde, 0x025B,  181, 3,
++0x0186,  184, 2,
++0x018E,  186, 2,
++0x0190,  188, 2,
++0x0196,  190, 2,
++0x01B1,  192, 2,
++0x01B2,  194, 2,
++0x01DD,  196, 2,
++0x0254,  198, 2,
++0x025B,  200, 2,
++0x0269,  202, 2,
++0x028A,  204, 2,
++0x028B,  206, 2,
++IBUS_KEY_Cyrillic_a,  208, 2,
++IBUS_KEY_Cyrillic_ie,  210, 2,
++IBUS_KEY_Cyrillic_i,  212, 2,
++IBUS_KEY_Cyrillic_o,  214, 2,
++IBUS_KEY_Cyrillic_er,  216, 2,
++IBUS_KEY_Cyrillic_u,  218, 2,
++IBUS_KEY_Cyrillic_A,  220, 2,
++IBUS_KEY_Cyrillic_IE,  222, 2,
++IBUS_KEY_Cyrillic_I,  224, 2,
++IBUS_KEY_Cyrillic_O,  226, 2,
++IBUS_KEY_Cyrillic_ER,  228, 2,
++IBUS_KEY_Cyrillic_U,  230, 2,
++0x0186,  232, 2,
++0x018E,  234, 2,
++0x0190,  236, 2,
++0x01DD,  238, 2,
++0x0254,  240, 2,
++0x025B,  242, 2,
++0x0186,  244, 2,
++0x018E,  246, 2,
++0x0190,  248, 2,
++0x0196,  250, 2,
++0x01B1,  252, 2,
++0x01B2,  254, 2,
++0x01DD,  256, 2,
++0x0254,  258, 2,
++0x025B,  260, 2,
++0x0269,  262, 2,
++0x028A,  264, 2,
++0x028B,  266, 2,
++IBUS_KEY_Cyrillic_a,  268, 2,
++IBUS_KEY_Cyrillic_ie,  270, 2,
++IBUS_KEY_Cyrillic_o,  272, 2,
++IBUS_KEY_Cyrillic_er,  274, 2,
++IBUS_KEY_Cyrillic_A,  276, 2,
++IBUS_KEY_Cyrillic_IE,  278, 2,
++IBUS_KEY_Cyrillic_O,  280, 2,
++IBUS_KEY_Cyrillic_ER,  282, 2,
++0x0186,  284, 2,
++0x018E,  286, 2,
++0x0190,  288, 2,
++0x0196,  290, 2,
++0x01B1,  292, 2,
++0x01B2,  294, 2,
++0x01DD,  296, 2,
++0x0254,  298, 2,
++0x025B,  300, 2,
++0x0269,  302, 2,
++0x028A,  304, 2,
++0x028B,  306, 2,
++IBUS_KEY_Cyrillic_a,  308, 2,
++IBUS_KEY_Cyrillic_ie,  310, 2,
++IBUS_KEY_Cyrillic_i,  312, 2,
++IBUS_KEY_Cyrillic_o,  314, 2,
++IBUS_KEY_Cyrillic_er,  316, 2,
++IBUS_KEY_Cyrillic_u,  318, 2,
++IBUS_KEY_Cyrillic_A,  320, 2,
++IBUS_KEY_Cyrillic_IE,  322, 2,
++IBUS_KEY_Cyrillic_I,  324, 2,
++IBUS_KEY_Cyrillic_O,  326, 2,
++IBUS_KEY_Cyrillic_ER,  328, 2,
++IBUS_KEY_Cyrillic_U,  330, 2,
++IBUS_KEY_Cyrillic_a,  332, 2,
++IBUS_KEY_Cyrillic_ie,  334, 2,
++IBUS_KEY_Cyrillic_i,  336, 2,
++IBUS_KEY_Cyrillic_o,  338, 2,
++IBUS_KEY_Cyrillic_er,  340, 2,
++IBUS_KEY_Cyrillic_u,  342, 2,
++IBUS_KEY_Cyrillic_A,  344, 2,
++IBUS_KEY_Cyrillic_IE,  346, 2,
++IBUS_KEY_Cyrillic_I,  348, 2,
++IBUS_KEY_Cyrillic_O,  350, 2,
++IBUS_KEY_Cyrillic_ER,  352, 2,
++IBUS_KEY_Cyrillic_U,  354, 2,
++IBUS_KEY_apostrophe, IBUS_KEY_J,  356, 2,
++IBUS_KEY_apostrophe, IBUS_KEY_j,  358, 2,
++IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_a,  360, 2,
++IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_ie,  362, 2,
++IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_i,  364, 2,
++IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_o,  366, 2,
++IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_er,  368, 2,
++IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_u,  370, 2,
++IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_A,  372, 2,
++IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_IE,  374, 2,
++IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_I,  376, 2,
++IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_O,  378, 2,
++IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_ER,  380, 2,
++IBUS_KEY_apostrophe, IBUS_KEY_Cyrillic_U,  382, 2,
++IBUS_KEY_F, IBUS_KEY_U,  384, 1,
++IBUS_KEY_J, IBUS_KEY_apostrophe,  385, 2,
++IBUS_KEY_J, IBUS_KEY_acute,  387, 2,
++IBUS_KEY_asciicircum, IBUS_KEY_Cyrillic_a,  389, 2,
++IBUS_KEY_asciicircum, IBUS_KEY_Cyrillic_ie,  391, 2,
++IBUS_KEY_asciicircum, IBUS_KEY_Cyrillic_i,  393, 2,
++IBUS_KEY_asciicircum, IBUS_KEY_Cyrillic_o,  395, 2,
++IBUS_KEY_asciicircum, IBUS_KEY_Cyrillic_er,  397, 2,
++IBUS_KEY_asciicircum, IBUS_KEY_Cyrillic_u,  399, 2,
++IBUS_KEY_asciicircum, IBUS_KEY_Cyrillic_A,  401, 2,
++IBUS_KEY_asciicircum, IBUS_KEY_Cyrillic_IE,  403, 2,
++IBUS_KEY_asciicircum, IBUS_KEY_Cyrillic_I,  405, 2,
++IBUS_KEY_asciicircum, IBUS_KEY_Cyrillic_O,  407, 2,
++IBUS_KEY_asciicircum, IBUS_KEY_Cyrillic_ER,  409, 2,
++IBUS_KEY_asciicircum, IBUS_KEY_Cyrillic_U,  411, 2,
++IBUS_KEY_underscore, IBUS_KEY_Cyrillic_a,  413, 2,
++IBUS_KEY_underscore, IBUS_KEY_Cyrillic_ie,  415, 2,
++IBUS_KEY_underscore, IBUS_KEY_Cyrillic_o,  417, 2,
++IBUS_KEY_underscore, IBUS_KEY_Cyrillic_er,  419, 2,
++IBUS_KEY_underscore, IBUS_KEY_Cyrillic_A,  421, 2,
++IBUS_KEY_underscore, IBUS_KEY_Cyrillic_IE,  423, 2,
++IBUS_KEY_underscore, IBUS_KEY_Cyrillic_O,  425, 2,
++IBUS_KEY_underscore, IBUS_KEY_Cyrillic_ER,  427, 2,
++IBUS_KEY_grave, IBUS_KEY_Cyrillic_a,  429, 2,
++IBUS_KEY_grave, IBUS_KEY_Cyrillic_o,  431, 2,
++IBUS_KEY_grave, IBUS_KEY_Cyrillic_er,  433, 2,
++IBUS_KEY_grave, IBUS_KEY_Cyrillic_u,  435, 2,
++IBUS_KEY_grave, IBUS_KEY_Cyrillic_A,  437, 2,
++IBUS_KEY_grave, IBUS_KEY_Cyrillic_O,  439, 2,
++IBUS_KEY_grave, IBUS_KEY_Cyrillic_ER,  441, 2,
++IBUS_KEY_grave, IBUS_KEY_Cyrillic_U,  443, 2,
++IBUS_KEY_j, IBUS_KEY_apostrophe,  445, 2,
++IBUS_KEY_j, IBUS_KEY_acute,  447, 2,
++IBUS_KEY_macron, IBUS_KEY_Cyrillic_a,  449, 2,
++IBUS_KEY_macron, IBUS_KEY_Cyrillic_ie,  451, 2,
++IBUS_KEY_macron, IBUS_KEY_Cyrillic_o,  453, 2,
++IBUS_KEY_macron, IBUS_KEY_Cyrillic_er,  455, 2,
++IBUS_KEY_macron, IBUS_KEY_Cyrillic_A,  457, 2,
++IBUS_KEY_macron, IBUS_KEY_Cyrillic_IE,  459, 2,
++IBUS_KEY_macron, IBUS_KEY_Cyrillic_O,  461, 2,
++IBUS_KEY_macron, IBUS_KEY_Cyrillic_ER,  463, 2,
++IBUS_KEY_acute, IBUS_KEY_J,  465, 2,
++IBUS_KEY_acute, IBUS_KEY_j,  467, 2,
++IBUS_KEY_acute, IBUS_KEY_Cyrillic_a,  469, 2,
++IBUS_KEY_acute, IBUS_KEY_Cyrillic_ie,  471, 2,
++IBUS_KEY_acute, IBUS_KEY_Cyrillic_i,  473, 2,
++IBUS_KEY_acute, IBUS_KEY_Cyrillic_o,  475, 2,
++IBUS_KEY_acute, IBUS_KEY_Cyrillic_er,  477, 2,
++IBUS_KEY_acute, IBUS_KEY_Cyrillic_u,  479, 2,
++IBUS_KEY_acute, IBUS_KEY_Cyrillic_A,  481, 2,
++IBUS_KEY_acute, IBUS_KEY_Cyrillic_IE,  483, 2,
++IBUS_KEY_acute, IBUS_KEY_Cyrillic_I,  485, 2,
++IBUS_KEY_acute, IBUS_KEY_Cyrillic_O,  487, 2,
++IBUS_KEY_acute, IBUS_KEY_Cyrillic_ER,  489, 2,
++IBUS_KEY_acute, IBUS_KEY_Cyrillic_U,  491, 2,
++IBUS_KEY_backslash, IBUS_KEY_o, IBUS_KEY_slash,  493, 1,
++IBUS_KEY_grave, IBUS_KEY_grave, IBUS_KEY_Cyrillic_a,  494, 2,
++IBUS_KEY_grave, IBUS_KEY_grave, IBUS_KEY_Cyrillic_ie,  496, 2,
++IBUS_KEY_grave, IBUS_KEY_grave, IBUS_KEY_Cyrillic_i,  498, 2,
++IBUS_KEY_grave, IBUS_KEY_grave, IBUS_KEY_Cyrillic_o,  500, 2,
++IBUS_KEY_grave, IBUS_KEY_grave, IBUS_KEY_Cyrillic_er,  502, 2,
++IBUS_KEY_grave, IBUS_KEY_grave, IBUS_KEY_Cyrillic_u,  504, 2,
++IBUS_KEY_grave, IBUS_KEY_grave, IBUS_KEY_Cyrillic_A,  506, 2,
++IBUS_KEY_grave, IBUS_KEY_grave, IBUS_KEY_Cyrillic_IE,  508, 2,
++IBUS_KEY_grave, IBUS_KEY_grave, IBUS_KEY_Cyrillic_I,  510, 2,
++IBUS_KEY_grave, IBUS_KEY_grave, IBUS_KEY_Cyrillic_O,  512, 2,
++IBUS_KEY_grave, IBUS_KEY_grave, IBUS_KEY_Cyrillic_ER,  514, 2,
++IBUS_KEY_grave, IBUS_KEY_grave, IBUS_KEY_Cyrillic_U,  516, 2,
++IBUS_KEY_p, IBUS_KEY_o, IBUS_KEY_o,  518, 1,
++IBUS_KEY_L, IBUS_KEY_L, IBUS_KEY_A, IBUS_KEY_P,  519, 1,
++};
++
++static const guint32 gtk_compose_seqs_compact_32bit_second[] = {
++0x004D, 0x0300, 
++0x006D, 0x0300, 
++0x0186, 0x0300, 
++0x018E, 0x0300, 
++0x0190, 0x0300, 
++0x0196, 0x0300, 
++0x01B1, 0x0300, 
++0x01B2, 0x0300, 
++0x01DD, 0x0300, 
++0x0254, 0x0300, 
++0x025B, 0x0300, 
++0x0269, 0x0300, 
++0x028A, 0x0300, 
++0x028B, 0x0300, 
++0x014A, 0x0300, 
++0x0430, 0x0300, 
++0x043E, 0x0300, 
++0x0440, 0x0300, 
++0x0443, 0x0300, 
++0x0410, 0x0300, 
++0x041E, 0x0300, 
++0x0420, 0x0300, 
++0x0423, 0x0300, 
++0x0041, 0x0303, 0x0300, 
++0x0045, 0x0303, 0x0300, 
++0x0049, 0x0303, 0x0300, 
++0x004F, 0x0303, 0x0300, 
++0x0055, 0x0303, 0x0300, 
++0x0061, 0x0303, 0x0300, 
++0x0065, 0x0303, 0x0300, 
++0x0069, 0x0303, 0x0300, 
++0x006F, 0x0303, 0x0300, 
++0x0075, 0x0303, 0x0300, 
++0x0186, 0x0303, 0x0300, 
++0x018E, 0x0303, 0x0300, 
++0x0190, 0x0303, 0x0300, 
++0x01DD, 0x0303, 0x0300, 
++0x0254, 0x0303, 0x0300, 
++0x025B, 0x0303, 0x0300, 
++0x004A, 0x0301, 
++0x006A, 0x0301, 
++0x0186, 0x0301, 
++0x018E, 0x0301, 
++0x0190, 0x0301, 
++0x0196, 0x0301, 
++0x01B1, 0x0301, 
++0x01B2, 0x0301, 
++0x01DD, 0x0301, 
++0x0254, 0x0301, 
++0x025B, 0x0301, 
++0x0269, 0x0301, 
++0x028A, 0x0301, 
++0x028B, 0x0301, 
++0x014A, 0x0301, 
++0x0430, 0x0301, 
++0x0435, 0x0301, 
++0x0438, 0x0301, 
++0x043E, 0x0301, 
++0x0440, 0x0301, 
++0x0443, 0x0301, 
++0x0410, 0x0301, 
++0x0415, 0x0301, 
++0x0418, 0x0301, 
++0x041E, 0x0301, 
++0x0420, 0x0301, 
++0x0423, 0x0301, 
++0x0041, 0x0303, 0x0301, 
++0x0045, 0x0303, 0x0301, 
++0x0049, 0x0303, 0x0301, 
++0x0061, 0x0303, 0x0301, 
++0x0065, 0x0303, 0x0301, 
++0x0069, 0x0303, 0x0301, 
++0x0186, 0x0303, 0x0301, 
++0x018E, 0x0303, 0x0301, 
++0x0190, 0x0303, 0x0301, 
++0x01DD, 0x0303, 0x0301, 
++0x0254, 0x0303, 0x0301, 
++0x025B, 0x0303, 0x0301, 
++0x0186, 0x0302, 
++0x018E, 0x0302, 
++0x0190, 0x0302, 
++0x0196, 0x0302, 
++0x01B1, 0x0302, 
++0x01B2, 0x0302, 
++0x01DD, 0x0302, 
++0x0254, 0x0302, 
++0x025B, 0x0302, 
++0x0269, 0x0302, 
++0x028A, 0x0302, 
++0x028B, 0x0302, 
++0x0430, 0x0302, 
++0x0435, 0x0302, 
++0x0438, 0x0302, 
++0x043E, 0x0302, 
++0x0440, 0x0302, 
++0x0443, 0x0302, 
++0x0410, 0x0302, 
++0x0415, 0x0302, 
++0x0418, 0x0302, 
++0x041E, 0x0302, 
++0x0420, 0x0302, 
++0x0423, 0x0302, 
++0x0186, 0x0303, 
++0x018E, 0x0303, 
++0x0190, 0x0303, 
++0x01DD, 0x0303, 
++0x0254, 0x0303, 
++0x025B, 0x0303, 
++0x0186, 0x0304, 
++0x018E, 0x0304, 
++0x0190, 0x0304, 
++0x0196, 0x0304, 
++0x01B1, 0x0304, 
++0x01B2, 0x0304, 
++0x01DD, 0x0304, 
++0x0254, 0x0304, 
++0x025B, 0x0304, 
++0x0269, 0x0304, 
++0x028A, 0x0304, 
++0x028B, 0x0304, 
++0x0430, 0x0304, 
++0x0435, 0x0304, 
++0x043E, 0x0304, 
++0x0440, 0x0304, 
++0x0410, 0x0304, 
++0x0415, 0x0304, 
++0x041E, 0x0304, 
++0x0420, 0x0304, 
++0x0186, 0x030C, 
++0x018E, 0x030C, 
++0x0190, 0x030C, 
++0x0196, 0x030C, 
++0x01B1, 0x030C, 
++0x01B2, 0x030C, 
++0x01DD, 0x030C, 
++0x0254, 0x030C, 
++0x025B, 0x030C, 
++0x0269, 0x030C, 
++0x028A, 0x030C, 
++0x028B, 0x030C, 
++0x0430, 0x030F, 
++0x0435, 0x030F, 
++0x0438, 0x030F, 
++0x043E, 0x030F, 
++0x0440, 0x030F, 
++0x0443, 0x030F, 
++0x0410, 0x030F, 
++0x0415, 0x030F, 
++0x0418, 0x030F, 
++0x041E, 0x030F, 
++0x0420, 0x030F, 
++0x0423, 0x030F, 
++0x0430, 0x0311, 
++0x0435, 0x0311, 
++0x0438, 0x0311, 
++0x043E, 0x0311, 
++0x0440, 0x0311, 
++0x0443, 0x0311, 
++0x0410, 0x0311, 
++0x0415, 0x0311, 
++0x0418, 0x0311, 
++0x041E, 0x0311, 
++0x0420, 0x0311, 
++0x0423, 0x0311, 
++0x004A, 0x0301, 
++0x006A, 0x0301, 
++0x0430, 0x0301, 
++0x0435, 0x0301, 
++0x0438, 0x0301, 
++0x043E, 0x0301, 
++0x0440, 0x0301, 
++0x0443, 0x0301, 
++0x0410, 0x0301, 
++0x0415, 0x0301, 
++0x0418, 0x0301, 
++0x041E, 0x0301, 
++0x0420, 0x0301, 
++0x0423, 0x0301, 
++0x1F595, 
++0x004A, 0x0301, 
++0x004A, 0x0301, 
++0x0430, 0x0302, 
++0x0435, 0x0302, 
++0x0438, 0x0302, 
++0x043E, 0x0302, 
++0x0440, 0x0302, 
++0x0443, 0x0302, 
++0x0410, 0x0302, 
++0x0415, 0x0302, 
++0x0418, 0x0302, 
++0x041E, 0x0302, 
++0x0420, 0x0302, 
++0x0423, 0x0302, 
++0x0430, 0x0304, 
++0x0435, 0x0304, 
++0x043E, 0x0304, 
++0x0440, 0x0304, 
++0x0410, 0x0304, 
++0x0415, 0x0304, 
++0x041E, 0x0304, 
++0x0420, 0x0304, 
++0x0430, 0x0300, 
++0x043E, 0x0300, 
++0x0440, 0x0300, 
++0x0443, 0x0300, 
++0x0410, 0x0300, 
++0x041E, 0x0300, 
++0x0420, 0x0300, 
++0x0423, 0x0300, 
++0x006A, 0x0301, 
++0x006A, 0x0301, 
++0x0430, 0x0304, 
++0x0435, 0x0304, 
++0x043E, 0x0304, 
++0x0440, 0x0304, 
++0x0410, 0x0304, 
++0x0415, 0x0304, 
++0x041E, 0x0304, 
++0x0420, 0x0304, 
++0x004A, 0x0301, 
++0x006A, 0x0301, 
++0x0430, 0x0301, 
++0x0435, 0x0301, 
++0x0438, 0x0301, 
++0x043E, 0x0301, 
++0x0440, 0x0301, 
++0x0443, 0x0301, 
++0x0410, 0x0301, 
++0x0415, 0x0301, 
++0x0418, 0x0301, 
++0x041E, 0x0301, 
++0x0420, 0x0301, 
++0x0423, 0x0301, 
++0x1F64C, 
++0x0430, 0x030F, 
++0x0435, 0x030F, 
++0x0438, 0x030F, 
++0x043E, 0x030F, 
++0x0440, 0x030F, 
++0x0443, 0x030F, 
++0x0410, 0x030F, 
++0x0415, 0x030F, 
++0x0418, 0x030F, 
++0x041E, 0x030F, 
++0x0420, 0x030F, 
++0x0423, 0x030F, 
++0x1F4A9, 
++0x1F596, 
+ };
+ 
+ #endif /* __GTK_IM_CONTEXT_SIMPLE_SEQS_H__ */
+diff --git a/src/ibuscomposetable.h b/src/ibuscomposetable.h
+index 8346df6d..4bf89211 100644
+--- a/src/ibuscomposetable.h
++++ b/src/ibuscomposetable.h
+@@ -2,7 +2,7 @@
+ /* vim:set et sts=4: */
+ /* ibus - The Input Bus
+  * Copyright (C) 2013-2014 Peng Huang <shawn.p.huang@gmail.com>
+- * Copyright (C) 2013-2016 Takao Fujiwara <takao.fujiwara1@gmail.com>
++ * Copyright (C) 2013-2019 Takao Fujiwara <takao.fujiwara1@gmail.com>
+  *
+  * This library is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU Lesser General Public
+@@ -30,6 +30,8 @@ G_BEGIN_DECLS
+ 
+ typedef struct _IBusComposeTable IBusComposeTable;
+ typedef struct _IBusComposeTableCompact IBusComposeTableCompact;
++typedef struct _IBusComposeTableCompactEx IBusComposeTableCompactEx;
++typedef struct _IBusComposeTableCompactPrivate IBusComposeTableCompactPrivate;
+ 
+ struct _IBusComposeTable
+ {
+@@ -47,6 +49,15 @@ struct _IBusComposeTableCompact
+     gint n_index_stride;
+ };
+ 
++struct _IBusComposeTableCompactEx
++{
++    const guint16 *data;
++    gint max_seq_len;
++    gint n_index_size;
++    gint n_index_stride;
++    IBusComposeTableCompactPrivate *priv;
++};
++
+ IBusComposeTable *ibus_compose_table_new_with_file (const gchar *compose_file);
+ GSList           *ibus_compose_table_list_add_array
+                                                    (GSList
+diff --git a/src/ibusenginesimple.c b/src/ibusenginesimple.c
+index 7615f121..fa4ddf5f 100644
+--- a/src/ibusenginesimple.c
++++ b/src/ibusenginesimple.c
+@@ -2,7 +2,7 @@
+ /* vim:set et sts=4: */
+ /* ibus - The Input Bus
+  * Copyright (C) 2014 Peng Huang <shawn.p.huang@gmail.com>
+- * Copyright (C) 2015-2018 Takao Fujiwara <takao.fujiwara1@gmail.com>
++ * Copyright (C) 2015-2019 Takao Fujiwara <takao.fujiwara1@gmail.com>
+  * Copyright (C) 2014-2017 Red Hat, Inc.
+  *
+  * This library is free software; you can redistribute it and/or
+@@ -89,16 +89,36 @@ struct _IBusEngineSimplePrivate {
+     gboolean            lookup_table_visible;
+ };
+ 
++struct _IBusComposeTableCompactPrivate
++{
++    const guint32 *data2;
++};
++
+ /* From the values below, the value 30 means the number of different first keysyms
+  * that exist in the Compose file (from Xorg). When running compose-parse.py without
+  * parameters, you get the count that you can put here. Needed when updating the
+  * gtkimcontextsimpleseqs.h header file (contains the compose sequences).
++ * Assign the value of "Number of different first items" of compose-parse.py
++ * to n_seqs in IBusComposeTableCompact
+  */
+-const IBusComposeTableCompact ibus_compose_table_compact = {
++const IBusComposeTableCompactPrivate ibus_compose_table_compact_32bit_priv = {
++    gtk_compose_seqs_compact_32bit_second
++};
++
++const IBusComposeTableCompactEx ibus_compose_table_compact = {
+     gtk_compose_seqs_compact,
+     5,
+     30,
+-    6
++    6,
++    NULL
++};
++
++const IBusComposeTableCompactEx ibus_compose_table_compact_32bit = {
++    gtk_compose_seqs_compact_32bit_first,
++    5,
++    9,
++    6,
++    &ibus_compose_table_compact_32bit_priv 
+ };
+ 
+ static GSList *global_tables;
+@@ -320,12 +340,10 @@ ibus_engine_simple_commit_str (IBusEngineSimple *simple,
+         priv->in_hex_sequence = FALSE;
+         priv->tentative_match = 0;
+         priv->tentative_match_len = 0;
+-        ibus_engine_simple_update_preedit_text (simple);
+     }
+     if (priv->tentative_emoji || priv->in_emoji_sequence) {
+         priv->in_emoji_sequence = FALSE;
+         g_clear_pointer (&priv->tentative_emoji, g_free);
+-        ibus_engine_simple_update_preedit_text (simple);
+     }
+ 
+     ibus_engine_commit_text ((IBusEngine *)simple,
+@@ -680,11 +698,11 @@ check_table (IBusEngineSimple       *simple,
+ }
+ 
+ gboolean
+-ibus_check_compact_table (const IBusComposeTableCompact *table,
+-                          guint16                       *compose_buffer,
+-                          gint                           n_compose,
+-                          gboolean                      *compose_finish,
+-                          gunichar                      *output_char)
++ibus_check_compact_table (const IBusComposeTableCompactEx *table,
++                          guint16                         *compose_buffer,
++                          gint                             n_compose,
++                          gboolean                        *compose_finish,
++                          gunichar                       **output_chars)
+ {
+     gint row_stride;
+     guint16 *seq_index;
+@@ -693,8 +711,8 @@ ibus_check_compact_table (const IBusComposeTableCompact *table,
+ 
+     if (compose_finish)
+         *compose_finish = FALSE;
+-    if (output_char)
+-        *output_char = 0;
++    if (output_chars)
++        *output_chars = NULL;
+ 
+     CHECK_COMPOSE_BUFFER_LENGTH (n_compose);
+ 
+@@ -730,41 +748,81 @@ ibus_check_compact_table (const IBusComposeTableCompact *table,
+     // g_debug ("compact: %04x ", *seq_index);
+     seq = NULL;
+ 
+-    for (i = n_compose - 1; i < table->max_seq_len; i++) {
+-        row_stride = i + 1;
++    if (table->priv) {
++        for (i = n_compose - 1; i < table->max_seq_len; i++) {
++            row_stride = i + 2;
+ 
+-        if (seq_index[i + 1] - seq_index[i] > 0) {
+-            seq = bsearch (compose_buffer + 1,
++            if (seq_index[i + 1] - seq_index[i] > 0) {
++                seq = bsearch (compose_buffer + 1,
+                            table->data + seq_index[i],
+                            (seq_index[i + 1] - seq_index[i]) / row_stride,
+                            sizeof (guint16) * row_stride,
+                            compare_seq);
+-            // g_debug ("seq = %p", seq);
++                if (seq) {
++                    if (i == n_compose - 1)
++                        break;
++                    else
++                        return TRUE;
++                }
++            }
++        }
++        if (!seq) {
++            return FALSE;
++        } else {
++            int index = seq[row_stride - 2];
++            int length = seq[row_stride - 1];
++            int j;
++            if (compose_finish)
++                *compose_finish = TRUE;
++            if (output_chars) {
++                *output_chars = g_new (gunichar, length + 1);
++                for (j = 0; j < length; j++)
++                    (*output_chars)[j] = table->priv->data2[index + j];
++                (*output_chars)[length] = 0;
++            }
+ 
+-            if (seq) {
+-                if (i == n_compose - 1)
+-                    break;
+-                else
+-                    return TRUE;
++            // g_debug ("U+%04X\n", value);
++            return TRUE;
++        }
++    } else {
++        for (i = n_compose - 1; i < table->max_seq_len; i++) {
++            row_stride = i + 1;
++
++            if (seq_index[i + 1] - seq_index[i] > 0) {
++                seq = bsearch (compose_buffer + 1,
++                               table->data + seq_index[i],
++                               (seq_index[i + 1] - seq_index[i]) / row_stride,
++                               sizeof (guint16) * row_stride,
++                               compare_seq);
++
++                if (seq) {
++                    if (i == n_compose - 1)
++                        break;
++                    else
++                        return TRUE;
++                }
+             }
+         }
+-    }
++        if (!seq) {
++            return FALSE;
++        } else {
++            if (compose_finish)
++                *compose_finish = TRUE;
++            if (output_chars) {
++                *output_chars = g_new (gunichar, 2);
++                (*output_chars)[0] = seq[row_stride - 1];
++                (*output_chars)[1] = 0;
++            }
+ 
+-    if (!seq) {
+-        // g_debug ("no\n");
+-        return FALSE;
++            // g_debug ("U+%04X\n", value);
++            return TRUE;
++        }
+     }
+-    else {
+-        if (compose_finish)
+-            *compose_finish = TRUE;
+-        if (output_char)
+-            *output_char = seq[row_stride - 1];
+ 
+-        // g_debug ("U+%04X\n", value);
+-        return TRUE;
+-    }
++    g_assert_not_reached ();
+ }
+ 
++
+ /* Checks if a keysym is a dead key. Dead key keysym values are defined in
+  * ../gdk/gdkkeysyms.h and the first is GDK_KEY_dead_grave. As X.Org is updated,
+  * more dead keys are added and we need to update the upper limit.
+@@ -949,8 +1007,8 @@ no_sequence_matches (IBusEngineSimple *simple,
+                 (IBusEngine *)simple, keyval, keycode, modifiers);
+     } else if (priv->tentative_emoji && *priv->tentative_emoji) {
+         ibus_engine_simple_commit_str (simple, priv->tentative_emoji);
+-        g_clear_pointer (&priv->tentative_emoji, g_free);
+         priv->compose_buffer[0] = 0;
++        ibus_engine_simple_update_preedit_text (simple);
+     } else {
+         priv->compose_buffer[0] = 0;
+         if (n_compose > 1) {
+@@ -1083,6 +1141,9 @@ ibus_engine_simple_check_all_compose_table (IBusEngineSimple *simple,
+     IBusEngineSimplePrivate *priv = simple->priv;
+     gboolean compose_finish;
+     gunichar output_char;
++    gunichar *output_chars = NULL;
++    gchar *output_str = NULL;
++    GError *error = NULL;
+     GSList *list = global_tables;
+ 
+     while (list) {
+@@ -1098,15 +1159,37 @@ ibus_engine_simple_check_all_compose_table (IBusEngineSimple *simple,
+                                   priv->compose_buffer,
+                                   n_compose,
+                                   &compose_finish,
+-                                  &output_char)) {
++                                  &output_chars)) {
+         if (compose_finish) {
+-            ibus_engine_simple_commit_char (simple, output_char);
++            ibus_engine_simple_commit_char (simple, *output_chars);
++            g_free (output_chars);
+             priv->compose_buffer[0] = 0;
+         }
+         ibus_engine_simple_update_preedit_text (simple);
+         return TRUE;
+     }
+-
++    if (ibus_check_compact_table (&ibus_compose_table_compact_32bit,
++                                  priv->compose_buffer,
++                                  n_compose,
++                                  &compose_finish,
++                                  &output_chars)) {
++        if (compose_finish) {
++            output_str = g_ucs4_to_utf8 (output_chars, -1, NULL, NULL, &error);
++            if (output_str) {
++                ibus_engine_simple_commit_str (simple, output_str);
++                g_free (output_str);
++                g_free (output_chars);
++            } else {
++                g_warning ("Failed to output multiple characters: %s",
++                           error->message);
++                g_error_free (error);
++            }
++            priv->compose_buffer[0] = 0;
++        }
++        
++        ibus_engine_simple_update_preedit_text (simple);
++        return TRUE;
++    }
+     if (ibus_check_algorithmically (priv->compose_buffer,
+                                     n_compose,
+                                     &output_char)) {
+@@ -1177,7 +1260,8 @@ ibus_engine_simple_process_key_event (IBusEngine *engine,
+             (keyval == IBUS_KEY_Control_L || keyval == IBUS_KEY_Control_R)) {
+             if (priv->tentative_emoji && *priv->tentative_emoji) {
+                 ibus_engine_simple_commit_str (simple, priv->tentative_emoji);
+-                g_clear_pointer (&priv->tentative_emoji, g_free);
++                priv->compose_buffer[0] = 0;
++                ibus_engine_simple_update_preedit_text (simple);
+             } else if (n_compose == 0) {
+                 priv->modifiers_dropped = TRUE;
+             } else {
+@@ -1335,7 +1419,8 @@ ibus_engine_simple_process_key_event (IBusEngine *engine,
+     if (priv->in_emoji_sequence && have_hex_mods && is_emoji_start) {
+         if (priv->tentative_emoji && *priv->tentative_emoji) {
+             ibus_engine_simple_commit_str (simple, priv->tentative_emoji);
+-            g_clear_pointer (&priv->tentative_emoji, g_free);
++            priv->compose_buffer[0] = 0;
++            ibus_engine_simple_update_preedit_text (simple);
+         }
+         else {
+             if (n_compose > 0) {
+@@ -1531,6 +1616,7 @@ ibus_engine_simple_process_key_event (IBusEngine *engine,
+                     ibus_engine_simple_commit_str (simple,
+                             priv->tentative_emoji);
+                     priv->compose_buffer[0] = 0;
++                    ibus_engine_simple_update_preedit_text (simple);
+                 } else {
+                     g_clear_pointer (&priv->tentative_emoji, g_free);
+                     priv->in_emoji_sequence = FALSE;
+diff --git a/src/ibusenginesimpleprivate.h b/src/ibusenginesimpleprivate.h
+index cac404b1..c86c5324 100644
+--- a/src/ibusenginesimpleprivate.h
++++ b/src/ibusenginesimpleprivate.h
+@@ -1,7 +1,7 @@
+ /* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
+ /* vim:set et sts=4: */
+ /* ibus - The Input Bus
+- * Copyright (C) 2016 Takao Fujiwara <takao.fujiwara1@gmail.com>
++ * Copyright (C) 2016-2019 Takao Fujiwara <takao.fujiwara1@gmail.com>
+  * Copyright (C) 2016 Red Hat, Inc.
+  *
+  * This library is free software; you can redistribute it and/or
+@@ -26,17 +26,17 @@
+ 
+ G_BEGIN_DECLS
+ 
+-extern const IBusComposeTableCompact ibus_compose_table_compact;
++extern const IBusComposeTableCompactEx ibus_compose_table_compact;
+ 
+ gboolean ibus_check_algorithmically (const guint16              *compose_buffer,
+                                      gint                        n_compose,
+                                      gunichar                   *output);
+-gboolean ibus_check_compact_table   (const IBusComposeTableCompact
++gboolean ibus_check_compact_table   (const IBusComposeTableCompactEx
+                                                                 *table,
+                                      guint16                    *compose_buffer,
+                                      gint                        n_compose,
+                                      gboolean                   *compose_finish,
+-                                     gunichar                   *output_char);
++                                     gunichar                  **output_chars);
+ 
+ G_END_DECLS
+ 
+-- 
+2.21.0
+
+From 5b6ad433f79c2e4781688d4985a15836d81f0a72 Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Fri, 24 May 2019 14:34:05 +0900
+Subject: [PATCH 15/27] src: Enable multiple compose output and long key
+ sequences in user comopse
+
+Curently the max key sequences of user compose keys depends on the
+max key sequences of system compose keys, IBUS_MAX_COMPOSE_LEN.
+This change will have the max key sequences by user compose table
+and also will separate the user compose table with 16bit compose table
+and 32bit one to follow another change of system compose table to be able
+to output multiple compose outputs and 32bit compose ones likes emoji
+charaters.
+
+BUG=https://github.com/ibus/ibus/issues/1990
+---
+ src/ibuscomposetable.c        | 639 ++++++++++++++++++++++------------
+ src/ibuscomposetable.h        |  20 +-
+ src/ibusenginesimple.c        |  87 +++--
+ src/ibusenginesimple.h        |   4 +-
+ src/ibusenginesimpleprivate.h |   9 +
+ 5 files changed, 512 insertions(+), 247 deletions(-)
+
+diff --git a/src/ibuscomposetable.c b/src/ibuscomposetable.c
+index 1c0ece41..4ac54e25 100644
+--- a/src/ibuscomposetable.c
++++ b/src/ibuscomposetable.c
+@@ -35,22 +35,25 @@
+ #include "ibusenginesimpleprivate.h"
+ 
+ #define IBUS_COMPOSE_TABLE_MAGIC "IBusComposeTable"
+-#define IBUS_COMPOSE_TABLE_VERSION (2)
++#define IBUS_COMPOSE_TABLE_VERSION (3)
+ 
+ typedef struct {
+   gunichar     *sequence;
+-  gunichar      value[2];
++  gunichar     *values;
+   gchar        *comment;
+ } IBusComposeData;
+ 
++
+ static void
+ ibus_compose_data_free (IBusComposeData *compose_data)
+ {
+     g_free (compose_data->sequence);
++    g_free (compose_data->values);
+     g_free (compose_data->comment);
+     g_slice_free (IBusComposeData, compose_data);
+ }
+ 
++
+ static void
+ ibus_compose_list_element_free (IBusComposeData *compose_data,
+                                 gpointer         data)
+@@ -58,6 +61,18 @@ ibus_compose_list_element_free (IBusComposeData *compose_data,
+     ibus_compose_data_free (compose_data);
+ }
+ 
++
++static guint
++unichar_length (gunichar *uni_array)
++{
++    guint i = 0;
++    g_return_val_if_fail (uni_array, 0);
++    while (uni_array[i])
++        ++i;
++    return i;
++}
++
++
+ static gboolean
+ is_codepoint (const gchar *str)
+ {
+@@ -75,63 +90,85 @@ is_codepoint (const gchar *str)
+     return TRUE;
+ }
+ 
++
+ static gboolean
+ parse_compose_value (IBusComposeData  *compose_data,
+                      const gchar      *val,
+                      const gchar      *line)
+ {
+-    gchar **words = g_strsplit (val, "\"", 3);
+-    gunichar uch;
++    gchar *head, *end, *p;
++    gchar *ustr = NULL;
++    gunichar *uchars = NULL, *up;
++    GError *error = NULL;
++    int n_uchars = 0;
+ 
+-    if (g_strv_length (words) < 3) {
++    if (!(head = strchr (val, '\"'))) {
+         g_warning ("Need to double-quote the value: %s: %s", val, line);
+         goto fail;
+     }
+-
+-    uch = g_utf8_get_char (words[1]);
+-
+-    if (uch == 0) {
+-        g_warning ("Invalid value: %s: %s", val, line);
++    ++head;
++    p = head;
++    while ((*p != '\0') && (end = strchr (p, '\"'))) {
++        if (*(end - 1) == '\\' && *(end - 2) == '\\')
++            break;
++        if (*(end - 1) != '\\')
++            break;
++        p = end + 1;
++    }
++    if (end == NULL || *p == '\0') {
++        g_warning ("Need to double-quote the value: %s: %s", val, line);
+         goto fail;
+     }
+-    else if (uch == '\\') {
+-        uch = words[1][1];
+-
+-        /* The escaped string "\"" is separated with '\\' and '"'. */
+-        if (uch == '\0' && words[2][0] == '"') {
+-            uch = '"';
+-        /* The escaped octal */
+-        } else if (uch >= '0' && uch <= '8') {
+-            uch = g_ascii_strtoll(words[1] + 1, NULL, 8);
+-        /* If we need to handle other escape sequences. */
+-        } else if (uch != '\\') {
+-            g_warning ("Invalid backslash: %s: %s", val, line);
++    ustr = g_strndup (head, end - head);
++    p = ustr + 1;
++    /* The escaped octal */
++    if (*ustr == '\\' && *p >= '0' && *p <= '8') {
++        compose_data->values = g_new (gunichar, 2);
++        compose_data->values[0] = g_ascii_strtoll(p, NULL, 8);
++        compose_data->values[1] = 0;
++    } else {
++        if (!(uchars = g_utf8_to_ucs4 (ustr, -1, NULL, NULL, &error)) ||
++            !uchars[0]) {
++            g_warning ("Invalid Unicode: %s: %s in %s:",
++                       error->message, ustr, line);
++            g_error_free (error);
+             goto fail;
+         }
+-    }
+ 
+-    if (g_utf8_get_char (g_utf8_next_char (words[1])) > 0) {
+-        g_warning ("GTK+ supports to output one char only: %s: %s", val, line);
+-        goto fail;
++        for (up = uchars; *up; up++) {
++            if (*up == '\\') {
++                ++up;
++                if (*up != '"' && *up != '\\') {
++                    g_warning ("Invalid backslash: %s: %s", val, line);
++                    goto fail;
++                }
++            }
++            if (!compose_data->values) {
++                compose_data->values = g_new (gunichar, 2);
++            } else {
++                compose_data->values = g_renew (gunichar,
++                                                compose_data->values,
++                                                n_uchars + 1);
++            }
++            compose_data->values[n_uchars++] = *up;
++        }
++        compose_data->values[n_uchars] = 0;
+     }
+ 
+-    compose_data->value[1] = uch;
+-
+-    if (uch == '"')
+-        compose_data->comment = g_strdup (g_strstrip (words[2] + 1));
+-    else
+-        compose_data->comment = g_strdup (g_strstrip (words[2]));
+-
+-    g_strfreev (words);
++    g_free (ustr);
++    g_free (uchars);
++    compose_data->comment = g_strdup (g_strstrip (end + 1));
+ 
+     return TRUE;
+ 
+ fail:
+-    g_strfreev (words);
++    g_free (ustr);
++    g_free (uchars);
+     return FALSE;
+ }
+ 
+-static gboolean
++
++static int
+ parse_compose_sequence (IBusComposeData *compose_data,
+                         const gchar     *seq,
+                         const gchar     *line)
+@@ -161,20 +198,20 @@ parse_compose_sequence (IBusComposeData *compose_data,
+ 
+         match = g_strndup (start, end - start);
+ 
+-        if (compose_data->sequence == NULL)
+-            compose_data->sequence = g_malloc (sizeof (gunichar) * 2);
+-        else
+-            compose_data->sequence = g_realloc (compose_data->sequence,
+-                                                sizeof (gunichar) * (n + 2));
++        if (compose_data->sequence == NULL) {
++            compose_data->sequence = g_new (gunichar, 2);
++        } else {
++            compose_data->sequence = g_renew (gunichar,
++                                              compose_data->sequence,
++                                              n + 2);
++        }
+ 
+         if (is_codepoint (match)) {
+             codepoint = (gunichar) g_ascii_strtoll (match + 1, NULL, 16);
+             compose_data->sequence[n] = codepoint;
+-            compose_data->sequence[n + 1] = 0;
+         } else {
+             codepoint = (gunichar) ibus_keyval_from_name (match);
+             compose_data->sequence[n] = codepoint;
+-            compose_data->sequence[n + 1] = 0;
+         }
+ 
+         if (codepoint == IBUS_KEY_VoidSymbol)
+@@ -182,27 +219,35 @@ parse_compose_sequence (IBusComposeData *compose_data,
+         g_free (match);
+         n++;
+     }
++    if (compose_data->sequence)
++        compose_data->sequence[n] = 0;
+ 
+     g_strfreev (words);
+     if (0 == n || n >= IBUS_MAX_COMPOSE_LEN) {
+         g_warning ("The max number of sequences is %d: %s",
+                    IBUS_MAX_COMPOSE_LEN, line);
+-        return FALSE;
++        return -1;
+     }
+ 
+-    return TRUE;
++    return n;
+ 
+ fail:
+     g_strfreev (words);
+-    return FALSE;
++    return -1;
+ }
+ 
++
+ static void
+ parse_compose_line (GList       **compose_list,
+-                    const gchar  *line)
++                    const gchar  *line,
++                    int          *compose_len)
+ {
+     gchar **components = NULL;
+     IBusComposeData *compose_data = NULL;
++    int l;
++
++    g_assert (compose_len);
++    *compose_len = 0;
+ 
+     if (line[0] == '\0' || line[0] == '#')
+         return;
+@@ -219,11 +264,12 @@ parse_compose_line (GList       **compose_list,
+ 
+     compose_data = g_slice_new0 (IBusComposeData);
+ 
+-    if (!parse_compose_sequence (compose_data,
+-                                 g_strstrip (components[0]),
+-                                 line)) {
++    if ((l = parse_compose_sequence (compose_data,
++                                     g_strstrip (components[0]),
++                                     line)) < 1) {
+         goto fail;
+     }
++    *compose_len = l;
+ 
+     if (!parse_compose_value (compose_data, g_strstrip (components[1]), line))
+         goto fail;
+@@ -240,16 +286,21 @@ fail:
+         ibus_compose_data_free (compose_data);
+ }
+ 
++
+ static GList *
+-ibus_compose_list_parse_file (const gchar *compose_file)
++ibus_compose_list_parse_file (const gchar *compose_file,
++                              int         *max_compose_len)
+ {
+     gchar *contents = NULL;
+     gchar **lines = NULL;
+     gsize length = 0;
+     GError *error = NULL;
+     GList *compose_list = NULL;
++    int compose_len = 0;
+     int i;
+ 
++    g_assert (max_compose_len);
++
+     if (!g_file_get_contents (compose_file, &contents, &length, &error)) {
+         g_error ("%s", error->message);
+         g_error_free (error);
+@@ -258,33 +309,43 @@ ibus_compose_list_parse_file (const gchar *compose_file)
+ 
+     lines = g_strsplit (contents, "\n", -1);
+     g_free (contents);
+-    for (i = 0; lines[i] != NULL; i++)
+-        parse_compose_line (&compose_list, lines[i]);
++    for (i = 0; lines[i] != NULL; i++) {
++        parse_compose_line (&compose_list, lines[i], &compose_len);
++        if (*max_compose_len < compose_len)
++            *max_compose_len = compose_len;
++    }
+     g_strfreev (lines);
+ 
+     return compose_list;
+ }
+ 
++
+ static GList *
+-ibus_compose_list_check_duplicated (GList *compose_list)
++ibus_compose_list_check_duplicated (GList *compose_list,
++                                    int    max_compose_len)
+ {
+     GList *list;
++    static guint16 *keysyms;
+     GList *removed_list = NULL;
+     IBusComposeData *compose_data;
++    gboolean is_32bit;
++
++    keysyms = g_new (guint16, max_compose_len + 1);
+ 
+     for (list = compose_list; list != NULL; list = list->next) {
+-        static guint16 keysyms[IBUS_MAX_COMPOSE_LEN + 1];
+         int i;
+         int n_compose = 0;
+         gboolean compose_finish;
+-        gunichar output_char;
++        gunichar *output_chars = NULL;
++        gunichar output_char = 0;
++        guint n_outputs;
+ 
+         compose_data = list->data;
+ 
+-        for (i = 0; i < IBUS_MAX_COMPOSE_LEN + 1; i++)
++        for (i = 0; i < max_compose_len + 1; i++)
+             keysyms[i] = 0;
+ 
+-        for (i = 0; i < IBUS_MAX_COMPOSE_LEN + 1; i++) {
++        for (i = 0; i < max_compose_len + 1; i++) {
+             gunichar codepoint = compose_data->sequence[i];
+             keysyms[i] = (guint16) codepoint;
+ 
+@@ -294,18 +355,41 @@ ibus_compose_list_check_duplicated (GList *compose_list)
+             n_compose++;
+         }
+ 
+-        if (ibus_check_compact_table (&ibus_compose_table_compact,
++        n_outputs = unichar_length (compose_data->values);
++        is_32bit = (n_outputs > 1) ? TRUE :
++                (compose_data->values[0] >= 0xFFFF) ? TRUE : FALSE;
++        if (!is_32bit &&
++            ibus_check_compact_table (&ibus_compose_table_compact,
+                                       keysyms,
+                                       n_compose,
+                                       &compose_finish,
+-                                      &output_char) && compose_finish) {
+-            if (compose_data->value[1] == output_char)
++                                      &output_chars) && compose_finish) {
++            if (compose_data->values[0] == *output_chars)
+                 removed_list = g_list_append (removed_list, compose_data);
++            g_free (output_chars);
++        } else if (is_32bit &&
++                   ibus_check_compact_table (&ibus_compose_table_compact_32bit,
++                                             keysyms,
++                                             n_compose,
++                                             &compose_finish,
++                                             &output_chars) && compose_finish) {
++            
++            if (n_outputs == unichar_length (output_chars)) {
++                int j = 0;
++                while (compose_data->values[j] && j < n_outputs) {
++                    if (compose_data->values[j] != output_chars[j])
++                        break;
++                    ++j;
++                }
++                if (j == n_outputs)
++                    removed_list = g_list_append (removed_list, compose_data);
++            }
++            g_free (output_chars);
+ 
+         } else if (ibus_check_algorithmically (keysyms,
+                                                n_compose,
+                                                &output_char)) {
+-            if (compose_data->value[1] == output_char)
++            if (compose_data->values[0] == output_char)
+                 removed_list = g_list_append (removed_list, compose_data);
+         }
+     }
+@@ -317,85 +401,11 @@ ibus_compose_list_check_duplicated (GList *compose_list)
+     }
+ 
+     g_list_free (removed_list);
++    g_free (keysyms);
+ 
+     return compose_list;
+ }
+ 
+-static GList *
+-ibus_compose_list_check_uint16 (GList *compose_list)
+-{
+-    GList *list;
+-    GList *removed_list = NULL;
+-    IBusComposeData *compose_data;
+-
+-    for (list = compose_list; list != NULL; list = list->next) {
+-        int i;
+-
+-        compose_data = list->data;
+-        for (i = 0; i < IBUS_MAX_COMPOSE_LEN; i++) {
+-            gunichar codepoint = compose_data->sequence[i];
+-
+-            if (codepoint == 0)
+-                break;
+-
+-            if (codepoint > 0xffff) {
+-                removed_list = g_list_append (removed_list, compose_data);
+-                break;
+-            }
+-        }
+-    }
+-
+-    for (list = removed_list; list != NULL; list = list->next) {
+-        compose_data = list->data;
+-        compose_list = g_list_remove (compose_list, compose_data);
+-        ibus_compose_data_free (compose_data);
+-    }
+-
+-    g_list_free (removed_list);
+-
+-    return compose_list;
+-}
+-
+-static GList *
+-ibus_compose_list_format_for_gtk (GList *compose_list,
+-                                  int   *p_max_compose_len,
+-                                  int   *p_n_index_stride)
+-{
+-    GList *list;
+-    IBusComposeData *compose_data;
+-    int max_compose_len = 0;
+-    int i;
+-    gunichar codepoint;
+-
+-    for (list = compose_list; list != NULL; list = list->next) {
+-        compose_data = list->data;
+-
+-        for (i = 0; i < IBUS_MAX_COMPOSE_LEN + 1; i++) {
+-            codepoint = compose_data->sequence[i];
+-            if (codepoint == 0) {
+-                if (max_compose_len < i)
+-                    max_compose_len = i;
+-                break;
+-            }
+-        }
+-    }
+-
+-    if (p_max_compose_len)
+-        *p_max_compose_len = max_compose_len;
+-    if (p_n_index_stride)
+-        *p_n_index_stride = max_compose_len + 2;
+-
+-    for (list = compose_list; list != NULL; list = list->next) {
+-        compose_data = list->data;
+-        codepoint = compose_data->value[1];
+-        if (codepoint > 0xffff) {
+-            compose_data->value[0] = codepoint / 0x10000;
+-            compose_data->value[1] = codepoint - codepoint / 0x10000 * 0x10000;
+-        }
+-    }
+-
+-    return compose_list;
+-}
+ 
+ static gint
+ ibus_compose_data_compare (gpointer a,
+@@ -416,6 +426,7 @@ ibus_compose_data_compare (gpointer a,
+     return 0;
+ }
+ 
++
+ static void
+ ibus_compose_list_print (GList *compose_list,
+                          int    max_compose_len,
+@@ -425,9 +436,6 @@ ibus_compose_list_print (GList *compose_list,
+     int i, j;
+     IBusComposeData *compose_data;
+     int total_size = 0;
+-    gunichar upper;
+-    gunichar lower;
+-    const gchar *comment;
+     const gchar *keyval;
+ 
+     for (list = compose_list; list != NULL; list = list->next) {
+@@ -452,14 +460,10 @@ ibus_compose_list_print (GList *compose_list,
+             else
+                 g_printf ("%s, ", keyval ? keyval : "(null)");
+         }
+-        upper = compose_data->value[0];
+-        lower = compose_data->value[1];
+-        comment = compose_data->comment;
+-
+-        if (list == g_list_last (compose_list))
+-            g_printf ("    %#06X, %#06X  /* %s */\n", upper, lower, comment);
+-        else
+-            g_printf ("    %#06X, %#06X, /* %s */\n", upper, lower, comment);
++        g_printf ("    ");
++        for (i = 0; compose_data->values[i]; ++i)
++            g_printf ("%#06X, ", compose_data->values[i]);
++        g_printf (" /* %s */,\n", compose_data->comment);
+ 
+         total_size += n_index_stride;
+     }
+@@ -468,6 +472,7 @@ ibus_compose_list_print (GList *compose_list,
+                 total_size, max_compose_len, n_index_stride);
+ }
+ 
++
+ /* Implemented from g_str_hash() */
+ static guint32
+ ibus_compose_table_data_hash (gconstpointer v,
+@@ -487,6 +492,7 @@ ibus_compose_table_data_hash (gconstpointer v,
+     return h;
+ }
+ 
++
+ static gchar *
+ ibus_compose_hash_get_cache_path (guint32 hash)
+ {
+@@ -511,67 +517,151 @@ ibus_compose_hash_get_cache_path (guint32 hash)
+     return path;
+ }
+ 
++
+ static GVariant *
+-ibus_compose_table_serialize (IBusComposeTable *compose_table)
++ibus_compose_table_serialize (IBusComposeTableEx *compose_table)
+ {
+     const gchar *header = IBUS_COMPOSE_TABLE_MAGIC;
+     const guint16 version = IBUS_COMPOSE_TABLE_VERSION;
+     guint16 max_seq_len;
+     guint16 index_stride;
+     guint16 n_seqs;
+-    GVariant *variant_data;
++    guint16 n_seqs_32bit = 0;
++    guint16 second_size = 0;
++    GVariant *variant_data = NULL;
++    GVariant *variant_data_32bit_first = NULL;
++    GVariant *variant_data_32bit_second = NULL;
+     GVariant *variant_table;
+ 
+     g_return_val_if_fail (compose_table != NULL, NULL);
+-    g_return_val_if_fail (compose_table->data != NULL, NULL);
+ 
+     max_seq_len = compose_table->max_seq_len;
+     index_stride = max_seq_len + 2;
+     n_seqs = compose_table->n_seqs;
+ 
+-    g_return_val_if_fail (max_seq_len > 0, NULL);
+-    g_return_val_if_fail (n_seqs > 0, NULL);
++    g_return_val_if_fail (max_seq_len, NULL);
+ 
+-    variant_data = g_variant_new_fixed_array (G_VARIANT_TYPE_UINT16,
+-                                              compose_table->data,
+-                                              (gsize)index_stride * n_seqs,
+-                                              sizeof (guint16));
+-    if (variant_data == NULL) {
+-        g_warning ("Could not change compose data to GVariant.");
+-        return NULL;
++    if (n_seqs) {
++        g_return_val_if_fail (compose_table->data, NULL);
++
++        variant_data = g_variant_new_fixed_array (G_VARIANT_TYPE_UINT16,
++                                                  compose_table->data,
++                                                  (gsize)index_stride * n_seqs,
++                                                  sizeof (guint16));
++        if (!variant_data) {
++            g_warning ("Could not change compose data to GVariant.");
++            return NULL;
++        }
++    } else {
++        variant_data = g_variant_new_fixed_array (
++                G_VARIANT_TYPE_UINT16,
++                NULL,
++                0,
++                sizeof (guint16));
++        g_assert (variant_data);
++    }
++    if (compose_table->priv) {
++        n_seqs_32bit = compose_table->priv->first_n_seqs;
++        second_size = compose_table->priv->second_size;
++    }
++    if (!n_seqs && !n_seqs_32bit) {
++        g_warning ("ComposeTable has not key sequences.");
++        goto out_serialize;
++    } else if (n_seqs_32bit && !second_size) {
++        g_warning ("Compose key sequences are loaded but the values could " \
++                   "not be loaded.");
++        goto out_serialize;
++    } else if (!n_seqs_32bit && second_size) {
++        g_warning ("Compose values are loaded but the key sequences could " \
++                   "not be loaded.");
++        goto out_serialize;
++    } else if (n_seqs_32bit && second_size) {
++        if (!compose_table->priv->data_first) {
++            g_warning ("data_first is NULL");
++            goto out_serialize;
++        }
++        if (!compose_table->priv->data_second) {
++            g_warning ("data_second is NULL");
++            goto out_serialize;
++        }
++        variant_data_32bit_first = g_variant_new_fixed_array (
++                G_VARIANT_TYPE_UINT16,
++                compose_table->priv->data_first,
++                (gsize)index_stride * n_seqs_32bit,
++                sizeof (guint16));
++        variant_data_32bit_second = g_variant_new_fixed_array (
++                G_VARIANT_TYPE_UINT32,
++                compose_table->priv->data_second,
++                compose_table->priv->second_size,
++                sizeof (guint32));
++        if (!variant_data_32bit_first || !variant_data_32bit_second) {
++            g_warning ("Could not change 32bit compose data to GVariant.");
++            goto out_serialize;
++        }
++    } else {
++        variant_data_32bit_first = g_variant_new_fixed_array (
++                G_VARIANT_TYPE_UINT16,
++                NULL,
++                0,
++                sizeof (guint16));
++        variant_data_32bit_second = g_variant_new_fixed_array (
++                G_VARIANT_TYPE_UINT32,
++                NULL,
++                0,
++                sizeof (guint32));
++        g_assert (variant_data_32bit_first && variant_data_32bit_second);
+     }
+-    variant_table = g_variant_new ("(sqqqv)",
++    variant_table = g_variant_new ("(sqqqqqvvv)",
+                                    header,
+                                    version,
+                                    max_seq_len,
+                                    n_seqs,
+-                                   variant_data);
++                                   n_seqs_32bit,
++                                   second_size,
++                                   variant_data,
++                                   variant_data_32bit_first,
++                                   variant_data_32bit_second);
+     return g_variant_ref_sink (variant_table);
++
++out_serialize:
++    g_clear_pointer (&variant_data, g_variant_unref);
++    g_clear_pointer (&variant_data_32bit_first, g_variant_unref);
++    g_clear_pointer (&variant_data_32bit_second, g_variant_unref);
++    return NULL;
+ }
+ 
++
+ static gint
+ ibus_compose_table_find (gconstpointer data1,
+                          gconstpointer data2)
+ {
+-    const IBusComposeTable *compose_table = (const IBusComposeTable *) data1;
++    const IBusComposeTableEx *compose_table =
++            (const IBusComposeTableEx *) data1;
+     guint32 hash = (guint32) GPOINTER_TO_INT (data2);
+     return compose_table->id != hash;
+ }
+ 
+-static IBusComposeTable *
++
++static IBusComposeTableEx *
+ ibus_compose_table_deserialize (const gchar *contents,
+                                 gsize        length)
+ {
+-    IBusComposeTable *retval = NULL;
++    IBusComposeTableEx *retval = NULL;
+     GVariantType *type;
+     GVariant *variant_data = NULL;
++    GVariant *variant_data_32bit_first = NULL;
++    GVariant *variant_data_32bit_second = NULL;
+     GVariant *variant_table = NULL;
+     const gchar *header = NULL;
+     guint16 version = 0;
+     guint16 max_seq_len = 0;
+     guint16 n_seqs = 0;
++    guint16 n_seqs_32bit = 0;
++    guint16 second_size = 0;
+     guint16 index_stride;
+     gconstpointer data = NULL;
++    gconstpointer data_32bit_first = NULL;
++    gconstpointer data_32bit_second = NULL;
+     gsize data_length = 0;
+ 
+     g_return_val_if_fail (contents != NULL, NULL);
+@@ -587,7 +677,7 @@ ibus_compose_table_deserialize (const gchar *contents,
+                                              NULL);
+     g_variant_type_free (type);
+ 
+-    if (variant_table == NULL) {
++    if (!variant_table) {
+         g_warning ("cache is broken.");
+         goto out_load_cache;
+     }
+@@ -611,7 +701,7 @@ ibus_compose_table_deserialize (const gchar *contents,
+     g_variant_unref (variant_table);
+     variant_table = NULL;
+ 
+-    type = g_variant_type_new ("(sqqqv)");
++    type = g_variant_type_new ("(sqqqqqvvv)");
+     variant_table = g_variant_new_from_data (type,
+                                              contents,
+                                              length,
+@@ -620,58 +710,117 @@ ibus_compose_table_deserialize (const gchar *contents,
+                                              NULL);
+     g_variant_type_free (type);
+ 
+-    if (variant_table == NULL) {
++    if (!variant_table) {
+         g_warning ("cache is broken.");
+         goto out_load_cache;
+     }
+ 
+     g_variant_ref_sink (variant_table);
+-    g_variant_get (variant_table, "(&sqqqv)",
++    g_variant_get (variant_table, "(&sqqqqqvvv)",
+                    NULL,
+                    NULL,
+                    &max_seq_len,
+                    &n_seqs,
+-                   &variant_data);
+-
+-    if (max_seq_len == 0 || n_seqs == 0) {
+-        g_warning ("cache size is not correct %d %d", max_seq_len, n_seqs);
++                   &n_seqs_32bit,
++                   &second_size,
++                   &variant_data,
++                   &variant_data_32bit_first,
++                   &variant_data_32bit_second);
++
++    if (max_seq_len == 0 || (n_seqs == 0 && n_seqs_32bit == 0)) {
++        g_warning ("cache size is not correct %d %d %d",
++                   max_seq_len, n_seqs, n_seqs_32bit);
+         goto out_load_cache;
+     }
+ 
+-    data = g_variant_get_fixed_array (variant_data,
+-                                      &data_length,
+-                                      sizeof (guint16));
++    if (n_seqs && variant_data) {
++        data = g_variant_get_fixed_array (variant_data,
++                                          &data_length,
++                                          sizeof (guint16));
++    }
+     index_stride = max_seq_len + 2;
+ 
+-    if (data == NULL) {
+-        g_warning ("cache data is null.");
+-        goto out_load_cache;
+-    }
+-    if (data_length != (gsize) index_stride * n_seqs) {
++    if (data_length != (gsize)index_stride * n_seqs) {
+         g_warning ("cache size is not correct %d %d %lu",
+                    max_seq_len, n_seqs, data_length);
+         goto out_load_cache;
+     }
+ 
+-    retval = g_new0 (IBusComposeTable, 1);
+-    retval->data = g_new (guint16, data_length);
+-    memcpy (retval->data, data, data_length * sizeof (guint16));
++    retval = g_new0 (IBusComposeTableEx, 1);
++    if (data_length) {
++        retval->data = g_new (guint16, data_length);
++        memcpy (retval->data, data, data_length * sizeof (guint16));
++    }
+     retval->max_seq_len = max_seq_len;
+     retval->n_seqs = n_seqs;
+ 
++    if (n_seqs_32bit && !second_size) {
++        g_warning ("32bit key sequences are loaded but the values " \
++                   "could not be loaded.");
++        goto out_load_cache;
++    }
++    if (!n_seqs_32bit && second_size) {
++        g_warning ("32bit key sequences could not loaded but the values " \
++                   "are loaded.");
++        goto out_load_cache;
++    }
++
++    data_length = 0;
++    if (n_seqs_32bit && variant_data_32bit_first) {
++        data_32bit_first = g_variant_get_fixed_array (variant_data_32bit_first,
++                                                      &data_length,
++                                                      sizeof (guint16));
++        if (data_length != (gsize) index_stride * n_seqs_32bit) {
++            g_warning ("32bit cache size is not correct %d %d %lu",
++                       max_seq_len, n_seqs_32bit, data_length);
++            goto out_load_cache;
++        }
++    }
++    if (!data && !data_32bit_first) {
++        g_warning ("cache data is null.");
++        goto out_load_cache;
++    }
++    if (data_length) {
++        retval->priv = g_new0 (IBusComposeTablePrivate, 1);
++        retval->priv->data_first = g_new (guint16, data_length);
++        memcpy (retval->priv->data_first,
++                data_32bit_first, data_length * sizeof (guint16));
++        retval->priv->first_n_seqs = n_seqs_32bit;
++    }
++
++    data_length = 0;
++    if (second_size && variant_data_32bit_second) {
++        data_32bit_second = g_variant_get_fixed_array (
++                variant_data_32bit_second,
++                &data_length,
++                sizeof (guint32));
++        if (data_length != (gsize) second_size) {
++            g_warning ("32bit cache size is not correct %d %d",
++                       max_seq_len, second_size);
++            goto out_load_cache;
++        }
++    }
++    if (data_length) {
++        retval->priv->data_second = g_new (guint32, data_length);
++        memcpy (retval->priv->data_second,
++                data_32bit_second, data_length * sizeof (guint32));
++        retval->priv->second_size = second_size;
++    }
++
+ 
+ out_load_cache:
+-    if (variant_data)
+-        g_variant_unref (variant_data);
+-    if (variant_table)
+-        g_variant_unref (variant_table);
++    g_clear_pointer (&variant_data, g_variant_unref);
++    g_clear_pointer (&variant_data_32bit_first, g_variant_unref);
++    g_clear_pointer (&variant_data_32bit_second, g_variant_unref);
++    g_clear_pointer (&variant_table, g_variant_unref);
+     return retval;
+ }
+ 
+-static IBusComposeTable *
++
++static IBusComposeTableEx *
+ ibus_compose_table_load_cache (const gchar *compose_file)
+ {
+-    IBusComposeTable *retval = NULL;
++    IBusComposeTableEx *retval = NULL;
+     guint32 hash;
+     gchar *path = NULL;
+     gchar *contents = NULL;
+@@ -712,8 +861,9 @@ ibus_compose_table_load_cache (const gchar *compose_file)
+     return retval;
+ }
+ 
++
+ static void
+-ibus_compose_table_save_cache (IBusComposeTable *compose_table)
++ibus_compose_table_save_cache (IBusComposeTableEx *compose_table)
+ {
+     gchar *path = NULL;
+     GVariant *variant_table = NULL;
+@@ -742,67 +892,119 @@ out_save_cache:
+     g_free (path);
+ }
+ 
+-static IBusComposeTable *
++
++static IBusComposeTableEx *
+ ibus_compose_table_new_with_list (GList   *compose_list,
+                                   int      max_compose_len,
+                                   int      n_index_stride,
+                                   guint32  hash)
+ {
+-    guint length;
+-    guint n = 0;
++    gsize s_size_total, s_size_16bit, v_size_32bit, v_index_32bit;
++    guint n = 0, m = 0;
+     int i, j;
+     guint16 *ibus_compose_seqs = NULL;
++    guint16 *ibus_compose_seqs_32bit_first = NULL;
++    guint32 *ibus_compose_seqs_32bit_second = NULL;
+     GList *list;
+-    IBusComposeData *compose_data;
+-    IBusComposeTable *retval = NULL;
++    IBusComposeData *compose_data = NULL;
++    IBusComposeTableEx *retval = NULL;
+ 
+     g_return_val_if_fail (compose_list != NULL, NULL);
+ 
+-    length = g_list_length (compose_list);
++    s_size_total = g_list_length (compose_list);
++    s_size_16bit = s_size_total;
++    v_size_32bit = 0;
++
++    for (list = compose_list; list != NULL; list = list->next) {
++        compose_data = list->data;
++        if (unichar_length (compose_data->values) > 1 ||
++            compose_data->values[0] >= 0xFFFF) {
++            --s_size_16bit;
++            v_size_32bit += unichar_length (compose_data->values);
++        }
++    }
+ 
+-    ibus_compose_seqs = g_new0 (guint16, length * n_index_stride);
++    if (s_size_16bit)
++        ibus_compose_seqs = g_new (guint16, s_size_16bit * n_index_stride);
++    if (s_size_total > s_size_16bit) {
++        ibus_compose_seqs_32bit_first =
++                g_new (guint16,
++                       (s_size_total - s_size_16bit) * n_index_stride);
++        ibus_compose_seqs_32bit_second = g_new (guint32, v_size_32bit);
++    }
+ 
++    v_index_32bit = 0;
+     for (list = compose_list; list != NULL; list = list->next) {
++        gboolean is_32bit = FALSE;
+         compose_data = list->data;
++
++        is_32bit = unichar_length (compose_data->values) > 1 ? TRUE :
++                compose_data->values[0] >= 0xFFFF ? TRUE : FALSE;
+         for (i = 0; i < max_compose_len; i++) {
+             if (compose_data->sequence[i] == 0) {
+-                for (j = i; j < max_compose_len; j++)
+-                    ibus_compose_seqs[n++] = 0;
++                for (j = i; j < max_compose_len; j++) {
++                    if (is_32bit)
++                        ibus_compose_seqs_32bit_first[m++] = 0;
++                    else
++                        ibus_compose_seqs[n++] = 0;
++                }
+                 break;
+             }
+-            ibus_compose_seqs[n++] = (guint16) compose_data->sequence[i];
++            if (is_32bit) {
++                ibus_compose_seqs_32bit_first[m++] =
++                        (guint16) compose_data->sequence[i];
++            } else {
++                ibus_compose_seqs[n++] = (guint16) compose_data->sequence[i];
++            }
++        }
++        if (is_32bit) {
++            for (j = 0; compose_data->values[j]; j++) {
++                ibus_compose_seqs_32bit_second[v_index_32bit + j] =
++                        compose_data->values[j];
++            }
++            ibus_compose_seqs_32bit_first[m++] = j;
++            ibus_compose_seqs_32bit_first[m++] = v_index_32bit;
++            v_index_32bit += j;
++        } else {
++            ibus_compose_seqs[n++] = (guint16) compose_data->values[0];
++            ibus_compose_seqs[n++] = 0;
+         }
+-        ibus_compose_seqs[n++] = (guint16) compose_data->value[0];
+-        ibus_compose_seqs[n++] = (guint16) compose_data->value[1];
+     }
+ 
+-    retval = g_new0 (IBusComposeTable, 1);
++    retval = g_new0 (IBusComposeTableEx, 1);
+     retval->data = ibus_compose_seqs;
+     retval->max_seq_len = max_compose_len;
+-    retval->n_seqs = length;
++    retval->n_seqs = s_size_16bit;
+     retval->id = hash;
++    if (s_size_total > s_size_16bit) {
++        retval->priv = g_new0 (IBusComposeTablePrivate, 1);
++        retval->priv->data_first = ibus_compose_seqs_32bit_first;
++        retval->priv->data_second = ibus_compose_seqs_32bit_second;
++        retval->priv->first_n_seqs = s_size_total - s_size_16bit;
++        retval->priv->second_size = v_size_32bit;
++    }
+ 
+     return retval;
+ }
+ 
+-IBusComposeTable *
++
++IBusComposeTableEx *
+ ibus_compose_table_new_with_file (const gchar *compose_file)
+ {
+     GList *compose_list = NULL;
+-    IBusComposeTable *compose_table;
++    IBusComposeTableEx *compose_table;
+     int max_compose_len = 0;
+     int n_index_stride = 0;
+ 
+     g_assert (compose_file != NULL);
+ 
+-    compose_list = ibus_compose_list_parse_file (compose_file);
++    compose_list = ibus_compose_list_parse_file (compose_file,
++                                                 &max_compose_len);
+     if (compose_list == NULL)
+         return NULL;
+-    compose_list = ibus_compose_list_check_duplicated (compose_list);
+-    compose_list = ibus_compose_list_check_uint16 (compose_list);
+-    compose_list = ibus_compose_list_format_for_gtk (compose_list,
+-                                                     &max_compose_len,
+-                                                     &n_index_stride);
++    n_index_stride = max_compose_len + 2;
++    compose_list = ibus_compose_list_check_duplicated (compose_list,
++                                                       max_compose_len);
+     compose_list = g_list_sort_with_data (
+             compose_list,
+             (GCompareDataFunc) ibus_compose_data_compare,
+@@ -814,9 +1016,8 @@ ibus_compose_table_new_with_file (const gchar *compose_file)
+         return NULL;
+     }
+ 
+-    if (g_getenv ("IBUS_COMPOSE_TABLE_PRINT") != NULL) {
++    if (g_getenv ("IBUS_COMPOSE_TABLE_PRINT") != NULL)
+         ibus_compose_list_print (compose_list, max_compose_len, n_index_stride);
+-    }
+ 
+     compose_table = ibus_compose_table_new_with_list (
+             compose_list,
+@@ -830,6 +1031,7 @@ ibus_compose_table_new_with_file (const gchar *compose_file)
+     return compose_table;
+ }
+ 
++
+ /* if ibus_compose_seqs[N - 1] is an outputed compose character,
+  * ibus_compose_seqs[N * 2 - 1] is also an outputed compose character.
+  * and ibus_compose_seqs[0] to ibus_compose_seqs[0 + N - 3] are the
+@@ -845,7 +1047,7 @@ ibus_compose_table_list_add_array (GSList        *compose_tables,
+                                    gint           n_seqs)
+ {
+     guint32 hash;
+-    IBusComposeTable *compose_table;
++    IBusComposeTableEx *compose_table;
+     int n_index_stride = max_seq_len + 2;
+     int length = n_index_stride * n_seqs;
+     int i;
+@@ -866,7 +1068,7 @@ ibus_compose_table_list_add_array (GSList        *compose_tables,
+     for (i = 0; i < length; i++)
+         ibus_compose_seqs[i] = data[i];
+ 
+-    compose_table = g_new (IBusComposeTable, 1);
++    compose_table = g_new (IBusComposeTableEx, 1);
+     compose_table->data = ibus_compose_seqs;
+     compose_table->max_seq_len = max_seq_len;
+     compose_table->n_seqs = n_seqs;
+@@ -875,12 +1077,13 @@ ibus_compose_table_list_add_array (GSList        *compose_tables,
+     return g_slist_prepend (compose_tables, compose_table);
+ }
+ 
++
+ GSList *
+ ibus_compose_table_list_add_file (GSList      *compose_tables,
+                                   const gchar *compose_file)
+ {
+     guint32 hash;
+-    IBusComposeTable *compose_table;
++    IBusComposeTableEx *compose_table;
+ 
+     g_return_val_if_fail (compose_file != NULL, compose_tables);
+ 
+diff --git a/src/ibuscomposetable.h b/src/ibuscomposetable.h
+index 4bf89211..777c5f42 100644
+--- a/src/ibuscomposetable.h
++++ b/src/ibuscomposetable.h
+@@ -29,6 +29,8 @@
+ G_BEGIN_DECLS
+ 
+ typedef struct _IBusComposeTable IBusComposeTable;
++typedef struct _IBusComposeTableEx IBusComposeTableEx;
++typedef struct _IBusComposeTablePrivate IBusComposeTablePrivate;
+ typedef struct _IBusComposeTableCompact IBusComposeTableCompact;
+ typedef struct _IBusComposeTableCompactEx IBusComposeTableCompactEx;
+ typedef struct _IBusComposeTableCompactPrivate IBusComposeTableCompactPrivate;
+@@ -41,6 +43,15 @@ struct _IBusComposeTable
+     guint32 id;
+ };
+ 
++struct _IBusComposeTableEx
++{
++    IBusComposeTablePrivate *priv;
++    guint16 *data;
++    gint max_seq_len;
++    gint n_seqs;
++    guint32 id;
++};
++
+ struct _IBusComposeTableCompact
+ {
+     const guint16 *data;
+@@ -51,22 +62,23 @@ struct _IBusComposeTableCompact
+ 
+ struct _IBusComposeTableCompactEx
+ {
++    IBusComposeTableCompactPrivate *priv;
+     const guint16 *data;
+     gint max_seq_len;
+     gint n_index_size;
+     gint n_index_stride;
+-    IBusComposeTableCompactPrivate *priv;
+ };
+ 
+-IBusComposeTable *ibus_compose_table_new_with_file (const gchar *compose_file);
+-GSList           *ibus_compose_table_list_add_array
++IBusComposeTableEx *
++                  ibus_compose_table_new_with_file (const gchar *compose_file);
++GSList *          ibus_compose_table_list_add_array
+                                                    (GSList
+                                                                 *compose_tables,
+                                                     const guint16
+                                                                 *data,
+                                                     gint         max_seq_len,
+                                                     gint         n_seqs);
+-GSList           *ibus_compose_table_list_add_file (GSList
++GSList *          ibus_compose_table_list_add_file (GSList
+                                                                 *compose_tables,
+                                                     const gchar *compose_file);
+ 
+diff --git a/src/ibusenginesimple.c b/src/ibusenginesimple.c
+index fa4ddf5f..2242203c 100644
+--- a/src/ibusenginesimple.c
++++ b/src/ibusenginesimple.c
+@@ -101,24 +101,24 @@ struct _IBusComposeTableCompactPrivate
+  * Assign the value of "Number of different first items" of compose-parse.py
+  * to n_seqs in IBusComposeTableCompact
+  */
+-const IBusComposeTableCompactPrivate ibus_compose_table_compact_32bit_priv = {
++IBusComposeTableCompactPrivate ibus_compose_table_compact_32bit_priv = {
+     gtk_compose_seqs_compact_32bit_second
+ };
+ 
+ const IBusComposeTableCompactEx ibus_compose_table_compact = {
++    NULL,
+     gtk_compose_seqs_compact,
+     5,
+     30,
+-    6,
+-    NULL
++    6
+ };
+ 
+ const IBusComposeTableCompactEx ibus_compose_table_compact_32bit = {
++    &ibus_compose_table_compact_32bit_priv,
+     gtk_compose_seqs_compact_32bit_first,
+     5,
+     9,
+-    6,
+-    &ibus_compose_table_compact_32bit_priv 
++    6
+ };
+ 
+ static GSList *global_tables;
+@@ -630,13 +630,15 @@ compare_seq (const void *key, const void *value)
+ 
+ 
+ static gboolean
+-check_table (IBusEngineSimple       *simple,
+-             const IBusComposeTable *table,
+-             gint                    n_compose)
++check_table (IBusEngineSimple         *simple,
++             const IBusComposeTableEx *table,
++             gint                      n_compose,
++             gboolean                  is_32bit)
+ {
+-    // g_debug("check_table");
+     IBusEngineSimplePrivate *priv = simple->priv;
+     gint row_stride = table->max_seq_len + 2;
++    guint16 *data_first;
++    int n_seqs;
+     guint16 *seq;
+ 
+     g_assert (IBUS_IS_ENGINE_SIMPLE (simple));
+@@ -645,8 +647,17 @@ check_table (IBusEngineSimple       *simple,
+     if (n_compose > table->max_seq_len)
+         return FALSE;
+ 
++    if (is_32bit) {
++        if (!table->priv)
++            return FALSE;
++        data_first = table->priv->data_first;
++        n_seqs = table->priv->first_n_seqs;
++    } else {
++        data_first = table->data;
++        n_seqs = table->n_seqs;
++    }
+     seq = bsearch (priv->compose_buffer,
+-                   table->data, table->n_seqs,
++                   data_first, n_seqs,
+                    sizeof (guint16) * row_stride,
+                    compare_seq);
+ 
+@@ -660,7 +671,7 @@ check_table (IBusEngineSimple       *simple,
+     /* Back up to the first sequence that matches to make sure
+      * we find the exact match if their is one.
+      */
+-    while (seq > table->data) {
++    while (seq > data_first) {
+         prev_seq = seq - row_stride;
+         if (compare_seq (priv->compose_buffer, prev_seq) != 0) {
+             break;
+@@ -671,14 +682,25 @@ check_table (IBusEngineSimple       *simple,
+     /* complete sequence */
+     if (n_compose == table->max_seq_len || seq[n_compose] == 0) {
+         guint16 *next_seq;
+-        gunichar value =
+-            0x10000 * seq[table->max_seq_len] + seq[table->max_seq_len + 1];
++        gunichar value = 0;
++        int num = 0;
++        int index = 0;
++        gchar *output_str = NULL;
++        GError *error = NULL;
++
++        if (is_32bit) {
++            num = seq[table->max_seq_len];
++            index = seq[table->max_seq_len + 1];
++            value =  table->priv->data_second[index];
++        } else {
++            value = seq[table->max_seq_len];
++        }
+ 
+         /* We found a tentative match. See if there are any longer
+          * sequences containing this subsequence
+          */
+         next_seq = seq + row_stride;
+-        if (next_seq < table->data + row_stride * table->n_seqs) {
++        if (next_seq < data_first + row_stride * n_seqs) {
+             if (compare_seq (priv->compose_buffer, next_seq) == 0) {
+                 priv->tentative_match = value;
+                 priv->tentative_match_len = n_compose;
+@@ -689,9 +711,21 @@ check_table (IBusEngineSimple       *simple,
+             }
+         }
+ 
+-        ibus_engine_simple_commit_char (simple, value);
++        if (is_32bit) {
++            output_str = g_ucs4_to_utf8 (table->priv->data_second + index,
++                                         num, NULL, NULL, &error);
++            if (output_str) {
++                ibus_engine_simple_commit_str(simple, output_str);
++                g_free (output_str);
++            } else {
++                g_warning ("Failed to output multiple characters: %s",
++                           error->message);
++                g_error_free (error);
++            }
++        } else {
++            ibus_engine_simple_commit_char (simple, value);
++        }
+         priv->compose_buffer[0] = 0;
+-        // g_debug ("U+%04X\n", value);
+     }
+     ibus_engine_simple_update_preedit_text (simple);
+     return TRUE;
+@@ -754,10 +788,10 @@ ibus_check_compact_table (const IBusComposeTableCompactEx *table,
+ 
+             if (seq_index[i + 1] - seq_index[i] > 0) {
+                 seq = bsearch (compose_buffer + 1,
+-                           table->data + seq_index[i],
+-                           (seq_index[i + 1] - seq_index[i]) / row_stride,
+-                           sizeof (guint16) * row_stride,
+-                           compare_seq);
++                               table->data + seq_index[i],
++                               (seq_index[i + 1] - seq_index[i]) / row_stride,
++                               sizeof (guint16) * row_stride,
++                               compare_seq);
+                 if (seq) {
+                     if (i == n_compose - 1)
+                         break;
+@@ -1148,8 +1182,15 @@ ibus_engine_simple_check_all_compose_table (IBusEngineSimple *simple,
+ 
+     while (list) {
+         if (check_table (simple,
+-            (IBusComposeTable *)list->data,
+-            n_compose)) {
++            (IBusComposeTableEx *)list->data,
++            n_compose,
++            FALSE)) {
++            return TRUE;
++        }
++        if (check_table (simple,
++            (IBusComposeTableEx *)list->data,
++            n_compose,
++            TRUE)) {
+             return TRUE;
+         }
+         list = list->next;
+@@ -1178,12 +1219,12 @@ ibus_engine_simple_check_all_compose_table (IBusEngineSimple *simple,
+             if (output_str) {
+                 ibus_engine_simple_commit_str (simple, output_str);
+                 g_free (output_str);
+-                g_free (output_chars);
+             } else {
+                 g_warning ("Failed to output multiple characters: %s",
+                            error->message);
+                 g_error_free (error);
+             }
++            g_free (output_chars);
+             priv->compose_buffer[0] = 0;
+         }
+         
+diff --git a/src/ibusenginesimple.h b/src/ibusenginesimple.h
+index a5ef34fb..bd385e5b 100644
+--- a/src/ibusenginesimple.h
++++ b/src/ibusenginesimple.h
+@@ -2,7 +2,7 @@
+ /* vim:set et sts=4: */
+ /* ibus - The Input Bus
+  * Copyright (C) 2008-2015 Peng Huang <shawn.p.huang@gmail.com>
+- * Copyright (C) 2015-2017 Takao Fujiwara <takao.fujiwara1@gmail.com>
++ * Copyright (C) 2015-2019 Takao Fujiwara <takao.fujiwara1@gmail.com>
+  * Copyright (C) 2008-2017 Red Hat, Inc.
+  *
+  * This library is free software; you can redistribute it and/or
+@@ -44,7 +44,7 @@
+ 
+ G_BEGIN_DECLS
+ 
+-#define IBUS_MAX_COMPOSE_LEN 7
++#define IBUS_MAX_COMPOSE_LEN 0xFF
+ 
+ /*
+  * Type macros.
+diff --git a/src/ibusenginesimpleprivate.h b/src/ibusenginesimpleprivate.h
+index c86c5324..508d9344 100644
+--- a/src/ibusenginesimpleprivate.h
++++ b/src/ibusenginesimpleprivate.h
+@@ -27,6 +27,15 @@
+ G_BEGIN_DECLS
+ 
+ extern const IBusComposeTableCompactEx ibus_compose_table_compact;
++extern const IBusComposeTableCompactEx ibus_compose_table_compact_32bit;
++
++struct _IBusComposeTablePrivate
++{
++    guint16 *data_first;
++    guint32 *data_second;
++    gsize first_n_seqs;
++    gsize second_size;
++};
+ 
+ gboolean ibus_check_algorithmically (const guint16              *compose_buffer,
+                                      gint                        n_compose,
+-- 
+2.21.0
+
+From 82a728de97308f6ce36c814e30a292f96e76cc13 Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Wed, 29 May 2019 17:37:35 +0900
+Subject: [PATCH 16/27] src: Change a fixed compose buffer to a variable one
+
+Now the long key sequence of the compose key is supported in both
+system compose and user compose but the internal compose buffer is
+still a fixed size. The compose buffer size will be a variable size
+and the initial size will be 20 with this change.
+---
+ src/ibusenginesimple.c | 48 ++++++++++++++++++++++--------------------
+ 1 file changed, 25 insertions(+), 23 deletions(-)
+
+diff --git a/src/ibusenginesimple.c b/src/ibusenginesimple.c
+index 2242203c..0604693d 100644
+--- a/src/ibusenginesimple.c
++++ b/src/ibusenginesimple.c
+@@ -44,29 +44,31 @@
+ #include <stdlib.h>
+ 
+ #define X11_DATADIR X11_DATA_PREFIX "/share/X11/locale"
+-#define EMOJI_SOURCE_LEN 100
+ #define IBUS_ENGINE_SIMPLE_GET_PRIVATE(o)  \
+    (G_TYPE_INSTANCE_GET_PRIVATE ((o), IBUS_TYPE_ENGINE_SIMPLE, IBusEngineSimplePrivate))
+ 
+ #define SET_COMPOSE_BUFFER_ELEMENT_NEXT(buffer, index, value) {         \
+-    if ((index) < EMOJI_SOURCE_LEN) {                                   \
++    if ((index) >= COMPOSE_BUFFER_SIZE &&                               \
++        COMPOSE_BUFFER_SIZE < IBUS_MAX_COMPOSE_LEN) {                   \
++        COMPOSE_BUFFER_SIZE = ((index) + 10) < IBUS_MAX_COMPOSE_LEN     \
++                              ? ((index) + 10) : IBUS_MAX_COMPOSE_LEN;  \
++        (buffer) = g_renew (guint16, (buffer), COMPOSE_BUFFER_SIZE + 1);\
++    }                                                                   \
++    if ((index) < COMPOSE_BUFFER_SIZE) {                                \
+         (buffer)[(index)] = (value);                                    \
+         (index) += 1;                                                   \
+     }                                                                   \
+ }
+ 
+ #define SET_COMPOSE_BUFFER_ELEMENT_END(buffer, index, value) {          \
+-    if ((index) >= EMOJI_SOURCE_LEN) {                                  \
+-        (index) = EMOJI_SOURCE_LEN;                                     \
+-        (buffer)[EMOJI_SOURCE_LEN - 1] = (value);                       \
+-    } else {                                                            \
+-        (buffer)[(index)] = (value);                                    \
+-    }                                                                   \
++    if ((index) > COMPOSE_BUFFER_SIZE)                                  \
++        (index) = COMPOSE_BUFFER_SIZE;                                  \
++    (buffer)[(index)] = (value);                                        \
+ }
+ 
+ #define CHECK_COMPOSE_BUFFER_LENGTH(index) {                            \
+-    if ((index) > EMOJI_SOURCE_LEN)                                     \
+-        (index) = EMOJI_SOURCE_LEN;                                     \
++    if ((index) > COMPOSE_BUFFER_SIZE)                                  \
++        (index) = COMPOSE_BUFFER_SIZE;                                  \
+ }
+ 
+ typedef struct {
+@@ -75,7 +77,7 @@ typedef struct {
+ } IBusEngineDict;
+ 
+ struct _IBusEngineSimplePrivate {
+-    guint16             compose_buffer[EMOJI_SOURCE_LEN];
++    guint16            *compose_buffer;
+     gunichar            tentative_match;
+     gchar              *tentative_emoji;
+     gint                tentative_match_len;
+@@ -121,6 +123,7 @@ const IBusComposeTableCompactEx ibus_compose_table_compact_32bit = {
+     6
+ };
+ 
++guint COMPOSE_BUFFER_SIZE = 20;
+ static GSList *global_tables;
+ 
+ /* functions prototype */
+@@ -175,6 +178,7 @@ static void
+ ibus_engine_simple_init (IBusEngineSimple *simple)
+ {
+     simple->priv = IBUS_ENGINE_SIMPLE_GET_PRIVATE (simple);
++    simple->priv->compose_buffer = g_new (guint16, COMPOSE_BUFFER_SIZE + 1);
+     simple->priv->hex_mode_enabled =
+         g_getenv("IBUS_ENABLE_CTRL_SHIFT_U") != NULL ||
+         g_getenv("IBUS_ENABLE_CONTROL_SHIFT_U") != NULL;
+@@ -193,7 +197,8 @@ ibus_engine_simple_destroy (IBusEngineSimple *simple)
+         priv->emoji_dict = NULL;
+     }
+ 
+-    g_clear_pointer (&priv->lookup_table, g_object_unref);
++    g_clear_object (&priv->lookup_table);
++    g_clear_pointer (&priv->compose_buffer, g_free);
+     g_clear_pointer (&priv->tentative_emoji, g_free);
+ 
+     IBUS_OBJECT_CLASS(ibus_engine_simple_parent_class)->destroy (
+@@ -356,7 +361,7 @@ ibus_engine_simple_update_preedit_text (IBusEngineSimple *simple)
+ {
+     IBusEngineSimplePrivate *priv = simple->priv;
+ 
+-    gunichar outbuf[EMOJI_SOURCE_LEN + 1];
++    gunichar outbuf[COMPOSE_BUFFER_SIZE + 1];
+     int len = 0;
+ 
+     if (priv->in_hex_sequence || priv->in_emoji_sequence) {
+@@ -376,10 +381,7 @@ ibus_engine_simple_update_preedit_text (IBusEngineSimple *simple)
+             ++hexchars;
+         }
+ 
+-        if (priv->in_hex_sequence)
+-            g_assert (len <= IBUS_MAX_COMPOSE_LEN + 1);
+-        else
+-            g_assert (len <= EMOJI_SOURCE_LEN + 1);
++        g_assert (len <= COMPOSE_BUFFER_SIZE);
+     } else if (priv->tentative_match) {
+         outbuf[len++] = priv->tentative_match;
+     } else if (priv->tentative_emoji && *priv->tentative_emoji) {
+@@ -406,7 +408,7 @@ ibus_engine_simple_update_preedit_text (IBusEngineSimple *simple)
+             ++len;
+             ++hexchars;
+         }
+-        g_assert (len <= IBUS_MAX_COMPOSE_LEN + 1);
++        g_assert (len <= IBUS_MAX_COMPOSE_LEN);
+     }
+ 
+     outbuf[len] = L'\0';
+@@ -1265,11 +1267,11 @@ ibus_engine_simple_process_key_event (IBusEngine *engine,
+     guint printable_keyval;
+     gint i;
+ 
+-    while (n_compose < EMOJI_SOURCE_LEN && priv->compose_buffer[n_compose] != 0)
++    while (n_compose <= COMPOSE_BUFFER_SIZE && priv->compose_buffer[n_compose] != 0)
+         n_compose++;
+-    if (n_compose >= EMOJI_SOURCE_LEN) {
++    if (n_compose > COMPOSE_BUFFER_SIZE) {
+         g_warning ("copmose table buffer is full.");
+-        n_compose = EMOJI_SOURCE_LEN - 1;
++        n_compose = COMPOSE_BUFFER_SIZE;
+     }
+ 
+     if (modifiers & IBUS_RELEASE_MASK) {
+@@ -1348,8 +1350,8 @@ ibus_engine_simple_process_key_event (IBusEngine *engine,
+     /* gtkimcontextsimple causes a buffer overflow in priv->compose_buffer.
+      * Add the check code here.
+      */
+-    if ((n_compose >= IBUS_MAX_COMPOSE_LEN && priv->in_hex_sequence) ||
+-        (n_compose >= EMOJI_SOURCE_LEN && priv->in_emoji_sequence)) {
++    if (n_compose > COMPOSE_BUFFER_SIZE &&
++        (priv->in_hex_sequence || priv->in_emoji_sequence)) {
+         if (is_backspace) {
+             priv->compose_buffer[--n_compose] = 0;
+         }
+-- 
+2.21.0
+
+From 80254484071eb57e1152579b60ec8a95522ebc22 Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Mon, 24 Jun 2019 17:28:55 +0900
+Subject: [PATCH 17/27] src: s/iso_639-3/iso_639_3/ in ibus_get_language_name()
+
+iso-codes 3.66 has iso_639_3.xml only but 3.67 has both iso_639_3.xml
+and iso_639-3.xml. RHEL 7 uses iso-codes 3.46.
+
+BUG=https://github.com/ibus/ibus/issues/2101
+---
+ ibus/lang.py   |  6 +++---
+ src/ibusutil.c | 10 +++++-----
+ 2 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/ibus/lang.py b/ibus/lang.py
+index 64324bd8..238a9172 100644
+--- a/ibus/lang.py
++++ b/ibus/lang.py
+@@ -3,7 +3,7 @@
+ # ibus - The Input Bus
+ #
+ # Copyright (c) 2007-2010 Peng Huang <shawn.p.huang@gmail.com>
+-# Copyright (c) 2007-2010 Red Hat, Inc.
++# Copyright (c) 2007-2019 Red Hat, Inc.
+ #
+ # This library is free software; you can redistribute it and/or
+ # modify it under the terms of the GNU Lesser General Public
+@@ -36,7 +36,7 @@ def get_language_name(_locale):
+     lang = lang.lower()
+     if lang in __languages_dict:
+         lang = __languages_dict[lang]
+-        lang = gettext.dgettext("iso_639-3", lang)
++        lang = gettext.dgettext("iso_639_3", lang)
+     else:
+         lang = _(u"Other")
+         lang = gettext.dgettext("ibus", lang)
+@@ -62,7 +62,7 @@ def __char_data(data):
+ def __load_lang():
+     import os
+     import _config
+-    iso_639_3_xml = os.path.join(_config.ISOCODES_PREFIX, "share/xml/iso-codes/iso_639-3.xml")
++    iso_639_3_xml = os.path.join(_config.ISOCODES_PREFIX, "share/xml/iso-codes/iso_639_3.xml")
+     p = xml.parsers.expat.ParserCreate()
+     p.StartElementHandler = __start_element
+     p.EndElementHandler = __end_element
+diff --git a/src/ibusutil.c b/src/ibusutil.c
+index 9d003e2e..88c054a2 100644
+--- a/src/ibusutil.c
++++ b/src/ibusutil.c
+@@ -2,7 +2,7 @@
+ /* vim:set et sts=4: */
+ /* bus - The Input Bus
+  * Copyright (C) 2008-2015 Peng Huang <shawn.p.huang@gmail.com>
+- * Copyright (C) 2010-2018 Takao Fujiwara <takao.fujiwara1@gmail.com>
++ * Copyright (C) 2010-2019 Takao Fujiwara <takao.fujiwara1@gmail.com>
+  * Copyright (C) 2008-2016 Red Hat, Inc.
+  *
+  * This library is free software; you can redistribute it and/or
+@@ -99,14 +99,14 @@ _load_lang()
+     struct stat buf;
+ 
+ #ifdef ENABLE_NLS
+-    bindtextdomain ("iso_639-3", LOCALEDIR);
+-    bind_textdomain_codeset ("iso_639-3", "UTF-8");
++    bindtextdomain ("iso_639_3", LOCALEDIR);
++    bind_textdomain_codeset ("iso_639_3", "UTF-8");
+ #endif
+ 
+     __languages_dict = g_hash_table_new_full (g_str_hash,
+             g_str_equal, g_free, g_free);
+     filename = g_build_filename (ISOCODES_PREFIX,
+-                                 "share/xml/iso-codes/iso_639-3.xml",
++                                 "share/xml/iso-codes/iso_639_3.xml",
+                                  NULL);
+     if (g_stat (filename, &buf) != 0) {
+         g_warning ("Can not get stat of file %s", filename);
+@@ -197,7 +197,7 @@ ibus_get_language_name (const gchar *_locale)
+     if (g_strcmp0 (raw, "Other") == 0)
+         return g_strdup (dgettext (GETTEXT_PACKAGE, N_("Other")));
+     else
+-        translation = dgettext ("iso_639-3", raw);
++        translation = dgettext ("iso_639_3", raw);
+ #else
+     translation = raw;
+ #endif
+-- 
+2.21.0
+
+From 69e443c07f944b3137aada31dcdbcb49728ff805 Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Fri, 28 Jun 2019 20:43:36 +0900
+Subject: [PATCH 18/27] bus: Disable panel extension for gnome-initial-setup
+ user
+
+gnome-initial-setup user is executed before the post setup is finished
+after the installation is finished.
+---
+ bus/main.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/bus/main.c b/bus/main.c
+index 6f1f39ca..3223d541 100644
+--- a/bus/main.c
++++ b/bus/main.c
+@@ -49,6 +49,7 @@ static gchar *desktop = "gnome";
+ 
+ static gchar *panel_extension_disable_users[] = {
+     "gdm",
++    "gnome-initial-setup",
+     "liveuser"
+ };
+ 
+-- 
+2.21.0
+
+From c360cbd830943a4bfb0ece9cc07b99a426dc2121 Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Mon, 9 Apr 2018 11:57:09 +0900
+Subject: [PATCH] src/tests: Add ibus-compose.env
+
+---
+ src/tests/ibus-compose.env | 3 +++
+ 1 file changed, 3 insertions(+)
+ create mode 100644 src/tests/ibus-compose.env
+
+diff --git a/src/tests/ibus-compose.env b/src/tests/ibus-compose.env
+new file mode 100644
+index 00000000..734ab8fa
+--- /dev/null
++++ b/src/tests/ibus-compose.env
+@@ -0,0 +1,3 @@
++LANG=el_GR.UTF-8
++LANG=fi_FI.UTF-8
++LANG=pt_BR.UTF-8
+-- 
+2.21.0
+
+From ac492f31b435b9464d591094d470bc94027168e8 Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Fri, 28 Jun 2019 21:15:07 +0900
+Subject: [PATCH 19/27] src/tests: Fix ibus-compose for IBusComposeTableEx
+
+Recently IBusComposeTablEx has been integrated and the return value of
+ibus_compose_table_new_with_file() is also changed and ibus-compose
+needs to be updated.
+
+Clear IBusComposeTablePrivate in ibus_compose_table_list_add_array()
+for the ibus-compose testing.
+
+Clear compose_buffer in IBusEngineSimple.
+
+Use g_get_language_names_with_category instead() of g_get_locale_variants().
+
+Add ibus-compose.emoji for the tests of long compose sequences and
+multiple compose output characters.
+
+IBUS_COMPOSE_CACHE_DIR variable is added for the temporary caches.
+---
+ src/ibuscomposetable.c       |  15 ++--
+ src/ibuscomposetable.h       |   4 +
+ src/ibusenginesimple.c       |  14 ++-
+ src/tests/Makefile.am        |   2 +-
+ src/tests/ibus-compose.c     | 163 +++++++++++++++++++++++++++--------
+ src/tests/ibus-compose.emoji |  11 +++
+ src/tests/ibus-compose.env   |   1 +
+ src/tests/runtest            |   4 +-
+ 8 files changed, 174 insertions(+), 47 deletions(-)
+ create mode 100644 src/tests/ibus-compose.emoji
+
+diff --git a/src/ibuscomposetable.c b/src/ibuscomposetable.c
+index 4ac54e25..5fd37f10 100644
+--- a/src/ibuscomposetable.c
++++ b/src/ibuscomposetable.c
+@@ -497,13 +497,18 @@ static gchar *
+ ibus_compose_hash_get_cache_path (guint32 hash)
+ {
+     gchar *basename = NULL;
++    const gchar *cache_dir;
+     gchar *dir = NULL;
+     gchar *path = NULL;
+ 
+     basename = g_strdup_printf ("%08x.cache", hash);
+ 
+-    dir = g_build_filename (g_get_user_cache_dir (),
+-                            "ibus", "compose", NULL);
++    if ((cache_dir = g_getenv ("IBUS_COMPOSE_CACHE_DIR"))) {
++        dir = g_strdup (cache_dir);
++    } else {
++        dir = g_build_filename (g_get_user_cache_dir (),
++                                "ibus", "compose", NULL);
++    }
+     path = g_build_filename (dir, basename, NULL);
+     if (g_mkdir_with_parents (dir, 0755) != 0) {
+         g_warning ("Failed to mkdir %s", dir);
+@@ -817,7 +822,7 @@ out_load_cache:
+ }
+ 
+ 
+-static IBusComposeTableEx *
++IBusComposeTableEx *
+ ibus_compose_table_load_cache (const gchar *compose_file)
+ {
+     IBusComposeTableEx *retval = NULL;
+@@ -862,7 +867,7 @@ ibus_compose_table_load_cache (const gchar *compose_file)
+ }
+ 
+ 
+-static void
++void
+ ibus_compose_table_save_cache (IBusComposeTableEx *compose_table)
+ {
+     gchar *path = NULL;
+@@ -1068,7 +1073,7 @@ ibus_compose_table_list_add_array (GSList        *compose_tables,
+     for (i = 0; i < length; i++)
+         ibus_compose_seqs[i] = data[i];
+ 
+-    compose_table = g_new (IBusComposeTableEx, 1);
++    compose_table = g_new0 (IBusComposeTableEx, 1);
+     compose_table->data = ibus_compose_seqs;
+     compose_table->max_seq_len = max_seq_len;
+     compose_table->n_seqs = n_seqs;
+diff --git a/src/ibuscomposetable.h b/src/ibuscomposetable.h
+index 777c5f42..b60e53fe 100644
+--- a/src/ibuscomposetable.h
++++ b/src/ibuscomposetable.h
+@@ -71,6 +71,10 @@ struct _IBusComposeTableCompactEx
+ 
+ IBusComposeTableEx *
+                   ibus_compose_table_new_with_file (const gchar *compose_file);
++IBusComposeTableEx *
++                  ibus_compose_table_load_cache    (const gchar *compose_file);
++void              ibus_compose_table_save_cache    (IBusComposeTableEx
++                                                                *compose_table);
+ GSList *          ibus_compose_table_list_add_array
+                                                    (GSList
+                                                                 *compose_tables,
+diff --git a/src/ibusenginesimple.c b/src/ibusenginesimple.c
+index 0604693d..b623e149 100644
+--- a/src/ibusenginesimple.c
++++ b/src/ibusenginesimple.c
+@@ -178,7 +178,7 @@ static void
+ ibus_engine_simple_init (IBusEngineSimple *simple)
+ {
+     simple->priv = IBUS_ENGINE_SIMPLE_GET_PRIVATE (simple);
+-    simple->priv->compose_buffer = g_new (guint16, COMPOSE_BUFFER_SIZE + 1);
++    simple->priv->compose_buffer = g_new0(guint16, COMPOSE_BUFFER_SIZE + 1);
+     simple->priv->hex_mode_enabled =
+         g_getenv("IBUS_ENABLE_CTRL_SHIFT_U") != NULL ||
+         g_getenv("IBUS_ENABLE_CONTROL_SHIFT_U") != NULL;
+@@ -1747,9 +1747,14 @@ ibus_engine_simple_add_table_by_locale (IBusEngineSimple *simple,
+     gboolean retval = TRUE;
+     gchar *path = NULL;
+     const gchar *home;
++#if GLIB_CHECK_VERSION (2, 58, 0)
++    const gchar * const *langs;
++    const gchar * const *lang = NULL;
++#else
+     const gchar *_locale;
+     gchar **langs = NULL;
+     gchar **lang = NULL;
++#endif
+     gchar * const sys_langs[] = { "el_gr", "fi_fi", "pt_br", NULL };
+     gchar * const *sys_lang = NULL;
+ 
+@@ -1787,6 +1792,9 @@ ibus_engine_simple_add_table_by_locale (IBusEngineSimple *simple,
+         g_free (path);
+         path = NULL;
+ 
++#if GLIB_CHECK_VERSION (2, 58, 0)
++        langs = g_get_language_names_with_category ("LC_CTYPE");
++#else
+         _locale = g_getenv ("LC_CTYPE");
+         if (_locale == NULL)
+             _locale = g_getenv ("LANG");
+@@ -1795,6 +1803,7 @@ ibus_engine_simple_add_table_by_locale (IBusEngineSimple *simple,
+ 
+         /* FIXME: https://bugzilla.gnome.org/show_bug.cgi?id=751826 */
+         langs = g_get_locale_variants (_locale);
++#endif
+ 
+         for (lang = langs; *lang; lang++) {
+             if (g_str_has_prefix (*lang, "en_US"))
+@@ -1821,7 +1830,9 @@ ibus_engine_simple_add_table_by_locale (IBusEngineSimple *simple,
+             path = NULL;
+         }
+ 
++#if !GLIB_CHECK_VERSION (2, 58, 0)
+         g_strfreev (langs);
++#endif
+ 
+         if (path != NULL)
+             ibus_engine_simple_add_compose_file (simple, path);
+@@ -1853,3 +1864,4 @@ ibus_engine_simple_add_compose_file (IBusEngineSimple *simple,
+                                                       compose_file);
+     return TRUE;
+ }
++
+diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am
+index e2ff5ea7..a58504a3 100644
+--- a/src/tests/Makefile.am
++++ b/src/tests/Makefile.am
+@@ -78,7 +78,7 @@ TESTS_ENVIRONMENT = \
+ 
+ LOG_COMPILER = $(srcdir)/runtest
+ 
+-EXTRA_DIST = runtest ibus-compose.env
++EXTRA_DIST = runtest ibus-compose.emoji ibus-compose.env
+ 
+ ibus_bus_SOURCES = ibus-bus.c
+ ibus_bus_LDADD = $(prog_ldadd)
+diff --git a/src/tests/ibus-compose.c b/src/tests/ibus-compose.c
+index aabb36ac..e1911b32 100644
+--- a/src/tests/ibus-compose.c
++++ b/src/tests/ibus-compose.c
+@@ -1,37 +1,36 @@
+ #include <gtk/gtk.h>
+ #include "ibus.h"
+ #include "ibuscomposetable.h"
++#include "ibusenginesimpleprivate.h"
+ 
+ #define GREEN "\033[0;32m"
+ #define RED   "\033[0;31m"
+ #define NC    "\033[0m"
+ 
+ IBusBus *m_bus;
+-IBusComposeTable *m_compose_table;
++gchar *m_compose_file;
++IBusComposeTableEx *m_compose_table;
+ IBusEngine *m_engine;
++gchar *m_srcdir;
+ int m_retval;
+ 
+ static gboolean window_focus_in_event_cb (GtkWidget     *entry,
+                                           GdkEventFocus *event,
+                                           gpointer       data);
+ 
+-static IBusEngine *
+-create_engine_cb (IBusFactory *factory, const gchar *name, gpointer data)
++
++static gchar *
++get_compose_path ()
+ {
+-    static int i = 1;
+-    gchar *engine_path =
+-            g_strdup_printf ("/org/freedesktop/IBus/engine/simpletest/%d",
+-                             i++);
+-    gchar *compose_path = NULL;
+     const gchar * const *langs;
+     const gchar * const *l;
++    gchar *compose_path = NULL;
+ 
+-    m_engine = ibus_engine_new_with_type (IBUS_TYPE_ENGINE_SIMPLE,
+-                                          name,
+-                                          engine_path,
+-                                          ibus_bus_get_connection (m_bus));
+-    g_free (engine_path);
++#if GLIB_CHECK_VERSION (2, 58, 0)
++    langs = g_get_language_names_with_category ("LC_CTYPE");
++#else
+     langs = g_get_language_names ();
++#endif
+     for (l = langs; *l; l++) {
+         if (g_str_has_prefix (*l, "en_US"))
+             break;
+@@ -46,18 +45,39 @@ create_engine_cb (IBusFactory *factory, const gchar *name, gpointer data)
+         g_free (compose_path);
+         compose_path = NULL;
+     }
++
++    return compose_path;
++}
++
++
++static IBusEngine *
++create_engine_cb (IBusFactory *factory,
++                  const gchar *name,
++                  gpointer     data)
++{
++    static int i = 1;
++    gchar *engine_path =
++            g_strdup_printf ("/org/freedesktop/IBus/engine/simpletest/%d",
++                             i++);
++    gchar *compose_path;
++
++    m_engine = ibus_engine_new_with_type (IBUS_TYPE_ENGINE_SIMPLE,
++                                          name,
++                                          engine_path,
++                                          ibus_bus_get_connection (m_bus));
++    g_free (engine_path);
++    if (m_compose_file)
++        compose_path = g_build_filename (m_srcdir, m_compose_file, NULL);
++    else
++        compose_path = get_compose_path ();
+     if (compose_path != NULL) {
+-        m_compose_table = ibus_compose_table_new_with_file (compose_path);
++        ibus_engine_simple_add_compose_file (IBUS_ENGINE_SIMPLE (m_engine),
++                                             compose_path);
++        m_compose_table = ibus_compose_table_load_cache (compose_path);
+         if (m_compose_table == NULL)
+             g_warning ("Your locale uses en_US compose table.");
+-        else
+-            ibus_engine_simple_add_table (IBUS_ENGINE_SIMPLE (m_engine),
+-                                          m_compose_table->data,
+-                                          m_compose_table->max_seq_len,
+-                                          m_compose_table->n_seqs);
+-    } else {
+-        g_warning ("Your locale uses en_US compose file.");
+     }
++    g_free (compose_path);
+     return m_engine;
+ }
+ 
+@@ -118,6 +138,7 @@ set_engine_cb (GObject *object, GAsyncResult *res, gpointer data)
+     GError *error = NULL;
+     int i, j;
+     int index_stride;
++    IBusComposeTablePrivate *priv;
+ 
+     if (!ibus_bus_set_global_engine_async_finish (bus, res, &error)) {
+         g_warning ("set engine failed: %s", error->message);
+@@ -149,6 +170,27 @@ set_engine_cb (GObject *object, GAsyncResult *res, gpointer data)
+                                    keyval, keycode, modifiers, &retval);
+         }
+     }
++    priv = m_compose_table->priv;
++    if (priv) {
++        for (i = 0;
++             i < (priv->first_n_seqs * index_stride);
++             i += index_stride) {
++            for (j = i; j < i + (index_stride - 1); j++) {
++                guint keyval = priv->data_first[j];
++                guint keycode = 0;
++                guint modifiers = 0;
++                gboolean retval;
++
++                if (keyval == 0)
++                    break;
++                g_signal_emit_by_name (m_engine, "process-key-event",
++                                       keyval, keycode, modifiers, &retval);
++                modifiers |= IBUS_RELEASE_MASK;
++                g_signal_emit_by_name (m_engine, "process-key-event",
++                                       keyval, keycode, modifiers, &retval);
++            }
++        }
++    }
+ 
+     g_signal_handlers_disconnect_by_func (entry, 
+                                           G_CALLBACK (window_focus_in_event_cb),
+@@ -183,41 +225,87 @@ window_inserted_text_cb (GtkEntryBuffer *buffer,
+     static int n_loop = 0;
+ #endif
+     static guint stride = 0;
++    static gboolean enable_32bit = FALSE;
+     guint i;
+     int seq;
+     gunichar code = g_utf8_get_char (chars);
+     const gchar *test;
+     GtkEntry *entry = GTK_ENTRY (data);
++    IBusComposeTablePrivate *priv;
+ 
+     g_assert (m_compose_table != NULL);
+ 
++    priv = m_compose_table->priv;
++
+ #if !GTK_CHECK_VERSION (3, 22, 16)
+     if (n_loop % 2 == 1) {
+         n_loop = 0;
+         return;
+     }
+ #endif
+-    i = stride + (m_compose_table->max_seq_len + 2) - 1;
+-    seq = (i + 1) / (m_compose_table->max_seq_len + 2);
+-    if (m_compose_table->data[i] == code) {
+-        test = GREEN "PASS" NC;
++    i = stride + (m_compose_table->max_seq_len + 2) - 2;
++    seq = (i + 2) / (m_compose_table->max_seq_len + 2);
++    if (!enable_32bit) {
++        if (m_compose_table->data[i] == code) {
++            test = GREEN "PASS" NC;
++        } else {
++            test = RED "FAIL" NC;
++            m_retval = -1;
++        }
++        g_print ("%05d/%05d %s expected: %04X typed: %04X\n",
++                 seq,
++                 m_compose_table->n_seqs,
++                 test,
++                 m_compose_table->data[i],
++                 code);
+     } else {
+-        test = RED "FAIL" NC;
+-        m_retval = -1;
++        const gchar *p = chars;
++        guint num = priv->data_first[i];
++        guint index = priv->data_first[i + 1];
++        guint j = 0;
++        gboolean valid_output = TRUE;
++        if (seq == 2)
++            g_print ("test\n");
++        for (j = 0; j < num; j++) {
++            if (priv->data_second[index + j] != code) {
++                valid_output = FALSE;
++                break;
++            }
++            p = g_utf8_next_char (p);
++            code = g_utf8_get_char (p);
++        }
++        if (valid_output) {
++            test = GREEN "PASS" NC;
++        } else {
++            test = RED "FAIL" NC;
++            m_retval = -1;
++        }
++        g_print ("%05d/%05ld %s expected: %04X[%d] typed: %04X\n",
++                 seq,
++                 priv->first_n_seqs,
++                 test,
++                 valid_output ? priv->data_second[index]
++                         : priv->data_second[index + j],
++                 valid_output ? index + num : index + j,
++                 valid_output ? g_utf8_get_char (chars) : code);
+     }
+-    g_print ("%05d/%05d %s expected: %04X typed: %04X\n",
+-             seq,
+-             m_compose_table->n_seqs,
+-             test,
+-             m_compose_table->data[i],
+-             code);
+-
+-    if (seq == m_compose_table->n_seqs) {
++
++    stride += m_compose_table->max_seq_len + 2;
++
++    if (!enable_32bit && seq == m_compose_table->n_seqs) {
++        if (priv) {
++            enable_32bit = TRUE;
++            stride = 0;
++        } else {
++            gtk_main_quit ();
++            return;
++        }
++    }
++    if (enable_32bit && seq == priv->first_n_seqs) {
+         gtk_main_quit ();
+         return;
+     }
+ 
+-    stride += m_compose_table->max_seq_len + 2;
+ #if !GTK_CHECK_VERSION (3, 22, 16)
+     n_loop++;
+ #endif
+@@ -248,6 +336,9 @@ main (int argc, char *argv[])
+     ibus_init ();
+     gtk_init (&argc, &argv);
+ 
++    m_srcdir = argc > 1 ? g_strdup (argv[1]) : g_strdup (".");
++    m_compose_file = g_strdup (g_getenv ("COMPOSE_FILE"));
++
+     if (!register_ibus_engine ())
+         return -1;
+ 
+diff --git a/src/tests/ibus-compose.emoji b/src/tests/ibus-compose.emoji
+new file mode 100644
+index 00000000..7fbf82cf
+--- /dev/null
++++ b/src/tests/ibus-compose.emoji
+@@ -0,0 +1,11 @@
++<Multi_key> <Multi_key> <l> <e> <o>             : "♌"  U264C   # LEO
++<Multi_key> <Multi_key> <v> <i> <r> <g> <o>     : "♍"  U264D   # VIRGO
++<Multi_key> <Multi_key> <I> <n> <t>             : "∫"
++<Multi_key> <Multi_key> <I> <I> <n> <t>         : "∬"
++<Multi_key> <Multi_key> <I> <I> <n> <o>         : "🗼"
++<Multi_key> <Multi_key> <I> <I> <n> <p>         : "(゜∀゜)"
++<Multi_key> <Multi_key> <I> <I> <n> <q>         : "*・゜゜・*:.。..。.:*・゜(n‘Д‘)η゜・*:.。. .。.:*・ ゜゜・* !!!!!"
++<Multi_key> <Multi_key> <I> <I> <I> <n> <t>     : "∭"
++<Multi_key> <Multi_key> <o> <I> <n> <t>         : "∮"
++<Multi_key> <Multi_key> <o> <I> <I> <n> <t>     : "∯"
++<Multi_key> <Multi_key> <o> <I> <I> <I> <n> <t> : "∰"
+diff --git a/src/tests/ibus-compose.env b/src/tests/ibus-compose.env
+index 734ab8fa..a9e289e4 100644
+--- a/src/tests/ibus-compose.env
++++ b/src/tests/ibus-compose.env
+@@ -1,3 +1,4 @@
+ LANG=el_GR.UTF-8
+ LANG=fi_FI.UTF-8
+ LANG=pt_BR.UTF-8
++LANG=en_US.UTF-8 COMPOSE_FILE=ibus-compose.emoji
+diff --git a/src/tests/runtest b/src/tests/runtest
+index 4e980c71..35ccc5a0 100755
+--- a/src/tests/runtest
++++ b/src/tests/runtest
+@@ -184,7 +184,9 @@ run_test_case()
+         export GTK_IM_MODULE=ibus
+     fi
+ 
+-    "../$tst" ${1+"$@"}
++    export IBUS_COMPOSE_CACHE_DIR=$PWD
++
++    "../$tst" ../$top_srcdir/src/tests ${1+"$@"}
+ 
+     retval=`expr $retval \| $?`
+ 
+-- 
+2.21.0
+
+From 76dec798d5cf6cdaa96c3373f9c0e1cd13eb31f5 Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Fri, 28 Jun 2019 21:28:32 +0900
+Subject: [PATCH 20/27] src/tests: Use GTest for ibus-compose
+
+---
+ src/tests/ibus-compose.c | 45 ++++++++++++++++++++++++++++------------
+ 1 file changed, 32 insertions(+), 13 deletions(-)
+
+diff --git a/src/tests/ibus-compose.c b/src/tests/ibus-compose.c
+index e1911b32..09c687c2 100644
+--- a/src/tests/ibus-compose.c
++++ b/src/tests/ibus-compose.c
+@@ -12,7 +12,6 @@ gchar *m_compose_file;
+ IBusComposeTableEx *m_compose_table;
+ IBusEngine *m_engine;
+ gchar *m_srcdir;
+-int m_retval;
+ 
+ static gboolean window_focus_in_event_cb (GtkWidget     *entry,
+                                           GdkEventFocus *event,
+@@ -124,8 +123,7 @@ register_ibus_engine ()
+ static gboolean
+ finit (gpointer data)
+ {
+-    m_retval = -1;
+-    g_warning ("time out");
++    g_test_incomplete ("time out");
+     gtk_main_quit ();
+     return FALSE;
+ }
+@@ -141,7 +139,9 @@ set_engine_cb (GObject *object, GAsyncResult *res, gpointer data)
+     IBusComposeTablePrivate *priv;
+ 
+     if (!ibus_bus_set_global_engine_async_finish (bus, res, &error)) {
+-        g_warning ("set engine failed: %s", error->message);
++        gchar *msg = g_strdup_printf ("set engine failed: %s", error->message);
++        g_test_incomplete (msg);
++        g_free (msg);
+         g_error_free (error);
+         return;
+     }
+@@ -250,7 +250,7 @@ window_inserted_text_cb (GtkEntryBuffer *buffer,
+             test = GREEN "PASS" NC;
+         } else {
+             test = RED "FAIL" NC;
+-            m_retval = -1;
++            g_test_fail ();
+         }
+         g_print ("%05d/%05d %s expected: %04X typed: %04X\n",
+                  seq,
+@@ -278,7 +278,7 @@ window_inserted_text_cb (GtkEntryBuffer *buffer,
+             test = GREEN "PASS" NC;
+         } else {
+             test = RED "FAIL" NC;
+-            m_retval = -1;
++            g_test_fail ();
+         }
+         g_print ("%05d/%05ld %s expected: %04X[%d] typed: %04X\n",
+                  seq,
+@@ -330,20 +330,39 @@ create_window ()
+     gtk_widget_show_all (window);
+ }
+ 
++static void
++test_compose (void)
++{
++    if (!register_ibus_engine ()) {
++        g_test_fail ();
++        return;
++    }
++
++    create_window ();
++    gtk_main ();
++
++}
++
+ int
+ main (int argc, char *argv[])
+ {
++    const gchar *test_name;
++    gchar *test_path;
++
+     ibus_init ();
++    g_test_init (&argc, &argv, NULL);
+     gtk_init (&argc, &argv);
+ 
+     m_srcdir = argc > 1 ? g_strdup (argv[1]) : g_strdup (".");
+     m_compose_file = g_strdup (g_getenv ("COMPOSE_FILE"));
++#if GLIB_CHECK_VERSION (2, 58, 0)
++    test_name = g_get_language_names_with_category ("LC_CTYPE")[0];
++#else
++    test_name = g_getenv ("LANG");
++#endif
++    test_path = g_build_filename ("/ibus-compose", test_name, NULL);
++    g_test_add_func (test_path, test_compose);
++    g_free (test_path);
+ 
+-    if (!register_ibus_engine ())
+-        return -1;
+-
+-    create_window ();
+-    gtk_main ();
+-
+-    return m_retval;
++    return g_test_run ();
+ }
+-- 
+2.21.0
+
+From 6bdc692e0dc72a9afae5407983859e88c16b4971 Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Wed, 10 Jul 2019 18:18:04 +0900
+Subject: [PATCH 21/27] src: Support common_name in ISO 639
+
+Nowadays "Bangla" is preferred to "Bengali" for BN language code
+and iso_639*.xml describes it in "common_name" tag.
+
+BUG=https://github.com/ibus/ibus/issues/2104
+---
+ src/ibusutil.c | 21 ++++++++++++++++-----
+ 1 file changed, 16 insertions(+), 5 deletions(-)
+
+diff --git a/src/ibusutil.c b/src/ibusutil.c
+index 88c054a2..701984c7 100644
+--- a/src/ibusutil.c
++++ b/src/ibusutil.c
+@@ -53,6 +53,7 @@ _iso_codes_parse_xml_node (XMLNode          *node)
+         XMLNode *sub_node = (XMLNode *)p->data;
+         gchar **attributes = NULL;
+         int i, j;
++        gboolean has_common_name = FALSE;
+         struct {
+             const gchar *key;
+             gchar *value;
+@@ -68,14 +69,24 @@ _iso_codes_parse_xml_node (XMLNode          *node)
+ 
+         attributes = sub_node->attributes;
+         for (i = 0; attributes[i]; i += 2) {
+-            if (g_strcmp0 (attributes[i], "name") == 0) {
++            if (!g_strcmp0 (attributes[i], "common_name")) {
+                 for (j = 0; j < G_N_ELEMENTS (entries); j++) {
+                     if (entries[j].value == NULL)
+                         continue;
+-                    g_hash_table_insert (__languages_dict,
+-                                         (gpointer) g_strdup (entries[j].value),
+-                                         (gpointer) g_strdup (attributes[i + 1]));
+-                    entries[j].value = NULL;
++                    g_hash_table_replace (__languages_dict,
++                                          g_strdup (entries[j].value),
++                                          g_strdup (attributes[i + 1]));
++                }
++                has_common_name = TRUE;
++            } else if (!g_strcmp0 (attributes[i], "name")) {
++                if (has_common_name)
++                    continue;
++                for (j = 0; j < G_N_ELEMENTS (entries); j++) {
++                    if (entries[j].value == NULL)
++                        continue;
++                    g_hash_table_replace (__languages_dict,
++                                          g_strdup (entries[j].value),
++                                          g_strdup (attributes[i + 1]));
+                 }
+             } else {
+                 for (j = 0; j < G_N_ELEMENTS (entries); j++) {
+-- 
+2.21.0
+
+From af00f4156b5c79c526eab18c49da80affd41ebee Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Fri, 12 Jul 2019 21:12:38 +0900
+Subject: [PATCH 22/27] src/tests: Install IBus tests into
+ gnome-desktop-testing
+
+---
+ configure.ac                      | 13 +++++++++++
+ src/tests/Makefile.am             | 39 ++++++++++++++++++++++++++++++-
+ src/tests/ibus-compose-locales.in | 23 ++++++++++++++++++
+ src/tests/ibus-compose.c          | 10 ++++++--
+ src/tests/meta.test.in            |  4 ++++
+ src/tests/runtest                 |  4 ++--
+ 6 files changed, 88 insertions(+), 5 deletions(-)
+ create mode 100755 src/tests/ibus-compose-locales.in
+ create mode 100644 src/tests/meta.test.in
+
+diff --git a/configure.ac b/configure.ac
+index b5a87b56..f1df3ac1 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -595,6 +595,18 @@ PKG_CHECK_MODULES(XTEST,
+ )
+ AM_CONDITIONAL([ENABLE_XTEST], [test x"$enable_xtest" = x"yes"])
+ 
++# --enable-install-tests
++AC_ARG_ENABLE(install-tests,
++    AS_HELP_STRING([--enable-install-tests],
++                   [Enable to install tests]),
++    [enable_install_tests=$enableval],
++    [enable_install_tests=no]
++)
++AM_CONDITIONAL([ENABLE_INSTALL_TESTS], [test x"$enable_install_tests" = x"yes"])
++if test x"$enable_install_tests" = x"no"; then
++    enable_install_tests="no (disabled, use --enable-install-tests to enable)"
++fi
++
+ 
+ # --disable-emoji-dict option.
+ AC_ARG_ENABLE(emoji-dict,
+@@ -773,5 +785,6 @@ Build options:
+   Enable Unicode dict           $enable_unicode_dict
+   UCD directory                 $UCD_DIR
+   Run test cases                $enable_tests
++  Install tests                 $enable_install_tests
+ ])
+ 
+diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am
+index a58504a3..ff31111b 100644
+--- a/src/tests/Makefile.am
++++ b/src/tests/Makefile.am
+@@ -78,7 +78,44 @@ TESTS_ENVIRONMENT = \
+ 
+ LOG_COMPILER = $(srcdir)/runtest
+ 
+-EXTRA_DIST = runtest ibus-compose.emoji ibus-compose.env
++if ENABLE_INSTALL_TESTS
++test_metas_in = meta.test.in
++test_execs = $(TESTS:ibus-compose=ibus-compose-locales)
++test_metas = $(addsuffix .test, $(test_execs))
++test_sources_DATA = \
++    $(test_metas) \
++    ibus-compose.emoji \
++    ibus-compose.env \
++    $(NULL)
++test_sourcesdir = $(datadir)/installed-tests/ibus
++
++test_execs_PROGRAMS = $(TESTS)
++if ENABLE_GTK3
++test_execs_SCRIPTS = ibus-compose-locales
++endif
++test_execsdir = $(libexecdir)/installed-tests/ibus
++endif
++
++$(test_metas): $(test_metas_in) $(test_programs)
++	f=`echo $@ | sed -e 's/\.test//'`; \
++	TEST_EXEC=$(test_execsdir)/$$f; \
++	sed -e "s|@TEST_EXEC[@]|$$TEST_EXEC|g" $(test_metas_in) > $@.tmp; \
++	mv $@.tmp $@; \
++	$(NULL)
++
++ibus-compose-locales: ibus-compose-locales.in
++	SRCDIR=$(test_sourcesdir); \
++	sed -e "s|@SRCDIR[@]|$$SRCDIR|g" $< > $@.tmp; \
++	mv $@.tmp $@; \
++	$(NULL)
++
++EXTRA_DIST = \
++    $(test_metas_in) \
++    runtest \
++    ibus-compose.emoji \
++    ibus-compose.env \
++    ibus-compose-locales.in \
++    $(NULL)
+ 
+ ibus_bus_SOURCES = ibus-bus.c
+ ibus_bus_LDADD = $(prog_ldadd)
+diff --git a/src/tests/ibus-compose-locales.in b/src/tests/ibus-compose-locales.in
+new file mode 100755
+index 00000000..8d2384d1
+--- /dev/null
++++ b/src/tests/ibus-compose-locales.in
+@@ -0,0 +1,23 @@
++#!/bin/sh
++
++SRCDIR=@SRCDIR@
++BUILDDIR=`dirname $0`
++
++
++export IBUS_COMPOSE_CACHE_DIR=$PWD
++
++for var in `cat $SRCDIR/ibus-compose.env`
++do
++    IS_COMMENT=`echo "$var" | grep "^#"`
++    if [ "x$IS_COMMENT" != x ] ; then
++        continue
++    fi
++    env $var $BUILDDIR/ibus-compose $SRCDIR $@
++
++    CACHE_FILES=`ls *.cache`
++    if [ x"$CACHE_FILES" != x ] ; then
++        echo "Clean $CACHE_FILES"
++        rm $CACHE_FILES
++    fi
++done
++
+diff --git a/src/tests/ibus-compose.c b/src/tests/ibus-compose.c
+index 09c687c2..c8d3c126 100644
+--- a/src/tests/ibus-compose.c
++++ b/src/tests/ibus-compose.c
+@@ -264,8 +264,6 @@ window_inserted_text_cb (GtkEntryBuffer *buffer,
+         guint index = priv->data_first[i + 1];
+         guint j = 0;
+         gboolean valid_output = TRUE;
+-        if (seq == 2)
+-            g_print ("test\n");
+         for (j = 0; j < num; j++) {
+             if (priv->data_second[index + j] != code) {
+                 valid_output = FALSE;
+@@ -351,6 +349,14 @@ main (int argc, char *argv[])
+ 
+     ibus_init ();
+     g_test_init (&argc, &argv, NULL);
++    /* FIXME:
++     * IBusIMContext opens GtkIMContextSimple as the slave and
++     * GtkIMContextSimple opens the compose table on el_GR.UTF-8, and the
++     * multiple outputs in el_GR's compose causes a warning in gtkcomposetable 
++     * and the warning always causes a fatal in GTest:
++     " "GTK+ supports to output one char only: "
++     */
++    g_log_set_always_fatal (G_LOG_LEVEL_CRITICAL);
+     gtk_init (&argc, &argv);
+ 
+     m_srcdir = argc > 1 ? g_strdup (argv[1]) : g_strdup (".");
+diff --git a/src/tests/meta.test.in b/src/tests/meta.test.in
+new file mode 100644
+index 00000000..ae2b2991
+--- /dev/null
++++ b/src/tests/meta.test.in
+@@ -0,0 +1,4 @@
++[Test]
++Type=session
++Exec=@TEST_EXEC@ --tap
++Output=TAP
+diff --git a/src/tests/runtest b/src/tests/runtest
+index 35ccc5a0..1fcc9283 100755
+--- a/src/tests/runtest
++++ b/src/tests/runtest
+@@ -200,7 +200,7 @@ if test -f $envfile ; then
+     ENVS="`cat $envfile`"
+ fi;
+ if test x"$ENVS" = x ; then
+-    run_test_case
++    run_test_case $@
+ else
+     LANG_backup=$LANG
+     i=1
+@@ -212,7 +212,7 @@ else
+         export $e
+         echo "Run `func_basename $tst` on $e"
+         echo "======================="
+-        run_test_case
++        run_test_case $@
+         echo ""
+         i=`expr $i + 1`
+     done
+-- 
+2.21.0
+
+From 2a4f9518d42b618d8111fa5f9f885757524758a0 Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Fri, 12 Jul 2019 21:12:40 +0900
+Subject: [PATCH 23/27] src/tests: Rename test-console.sh to
+ ibus-desktop-testing-runner
+
+---
+ src/tests/Makefile.am                                    | 9 +++++++++
+ .../tests/ibus-desktop-testing-runner.in                 | 0
+ 2 files changed, 9 insertions(+)
+ create mode 100755 .../tests/ibus-desktop-testing-runner.in
+
+diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am
+index ff31111b..b9aad29a 100644
+--- a/src/tests/Makefile.am
++++ b/src/tests/Makefile.am
+@@ -79,6 +79,7 @@ TESTS_ENVIRONMENT = \
+ LOG_COMPILER = $(srcdir)/runtest
+ 
+ if ENABLE_INSTALL_TESTS
++bin_SCRIPTS = ibus-desktop-testing-runner
+ test_metas_in = meta.test.in
+ test_execs = $(TESTS:ibus-compose=ibus-compose-locales)
+ test_metas = $(addsuffix .test, $(test_execs))
+@@ -109,12 +110,20 @@ ibus-compose-locales: ibus-compose-locales.in
+ 	mv $@.tmp $@; \
+ 	$(NULL)
+ 
++    ibus-desktop-testing-runner.in \
++ibus-desktop-testing-runner: ibus-desktop-testing-runner.in
++	SRCDIR=$(test_sourcesdir); \
++	sed -e "s|@SRCDIR[@]|$$SRCDIR|g" $< > $@.tmp; \
++	mv $@.tmp $@; \
++	$(NULL)
++
+ EXTRA_DIST = \
+     $(test_metas_in) \
+     runtest \
+     ibus-compose.emoji \
+     ibus-compose.env \
+     ibus-compose-locales.in \
++    ibus-desktop-testing-runner.in \
+     $(NULL)
+ 
+ ibus_bus_SOURCES = ibus-bus.c
+diff --git a/src/tests/ibus-desktop-testing-runner.in b/src/tests/ibus-desktop-testing-runner.in
+new file mode 100755
+index 00000000..07c8a96d
+--- /dev/null
++++ b/src/tests/ibus-desktop-testing-runner.in
+@@ -0,0 +1,255 @@
++#!/bin/sh
++# -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*-
++# vim:set noet ts=4:
++#
++# ibus-anthy - The Anthy engine for IBus
++#
++# Copyright (c) 2018-2019 Takao Fujiwara <takao.fujiwara1@gmail.com>
++# Copyright (c) 2018 Red Hat, Inc.
++#
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 2 of the License, or
++# (at your option) any later version.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++# 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, write to the Free Software Foundation, Inc.,
++# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
++
++# This test runs /usr/bin/ibus-daemon after install ibus
++#
++# # init 3
++# Login as root
++# # /root/ibus/tests/test-console.sh --tests ibus-compose \
++#   --builddir /root/ibus/src/tests --srcdir /root/ibus/src/tests
++
++PROGNAME=`basename $0`
++VERSION=0.1
++DISPLAY=:99.0
++BUILDDIR="."
++SRCDIR="."
++TEST_LOG=test-suite.log
++HAVE_GRAPHICS=1
++DESKTOP_COMMAND="gnome-session"
++PID_XORG=0
++PID_GNOME_SESSION=0
++TESTS=""
++GREEN='\033[0;32m'
++RED='\033[0;31m'
++NC='\033[0m'
++
++usage()
++{
++    echo -e \
++"This test runs /usr/bin/ibus-daemon after install ibus\n"                     \
++"$PROGNAME [OPTIONS…]\n"                                                       \
++"\n"                                                                           \
++"OPTIONS:\n"                                                                   \
++"-h, --help                       This help\n"                                 \
++"-v, --version                    Show version\n"                              \
++"-b, --builddir=BUILDDIR          Set the BUILDDIR\n"                          \
++"-s, --srcdir=SOURCEDIR           Set the SOURCEDIR\n"                         \
++"-c, --no-graphics                Use Xvfb instead of Xorg\n"                  \
++"-d, --desktop=DESKTOP            Run DESTKTOP. The default is gnome-session\n" \
++"-t, --tests=\"TESTS...\"           Run TESTS programs which is separated by space\n" \
++""
++}
++
++parse_args()
++{
++    # This is GNU getopt. "sudo port getopt" in BSD?
++    ARGS=`getopt -o hvb:s:cd:t: --long help,version,builddir:,srcdir:,no-graphics,desktop:,tests:\
++        -- "$@"`;
++    eval set -- "$ARGS"
++    while [ 1 ] ; do
++        case "$1" in
++        -h | --help )        usage; exit 0;;
++        -v | --version )     echo -e "$VERSION"; exit 0;;
++        -b | --builddir )    BUILDDIR="$2"; shift 2;;
++        -s | --srcdir )      SRCDIR="$2"; shift 2;;
++        -c | --no-graphics ) HAVE_GRAPHICS=0; shift;;
++        -d | --desktop )     DESKTOP_COMMAND="$2"; shift 2;;
++        -t | --tests )       TESTS="$2"; shift 2;;
++        -- )                 shift; break;;
++        * )                  usage; exit 1;;
++        esac
++    done
++}
++
++init_desktop()
++{
++    if test x$FORCE_TEST != x ; then
++        RUN_ARGS="$RUN_ARGS --force"
++    fi
++
++    if test ! -f $HOME/.config/gnome-initial-setup-done ; then
++        if test ! -f /var/lib/AccountsService/users/$USER ; then
++            mkdir -p /var/lib/AccountsService/users
++            cat >> /var/lib/AccountsService/users/$USER << _EOF
++[User]
++Language=ja_JP.UTF-8
++XSession=gnome
++SystemAccount=false
++_EOF
++        fi
++        mkdir -p $HOME/.config
++        touch $HOME/.config/gnome-initial-setup-done
++    fi
++
++    # Prevent from launching a XDG dialog
++    XDG_LOCALE_FILE="$HOME/.config/user-dirs.locale"
++    if test -f $XDG_LOCALE_FILE ; then
++        XDG_LANG_ORIG=`cat $XDG_LOCALE_FILE`
++        XDG_LANG_NEW=`echo $LANG | sed -e 's/\(.*\)\..*/\1/'`
++        if [ "$XDG_LANG_ORIG" != "$XDG_LANG_NEW" ] ; then
++            echo "Overriding XDG locale $XDG_LANG_ORIG with $XDG_LANG_NEW"
++            echo "$XDG_LANG_NEW" > $XDG_LOCALE_FILE
++        fi
++    fi
++}
++
++run_dbus_daemon()
++{
++    a=`ps -ef | grep dbus-daemon | grep "\-\-system" | grep -v session | grep -v grep`
++    if test x"$a" = x ; then
++        eval `dbus-launch --sh-syntax`
++    fi
++    SUSER=`echo "$USER" | cut -c 1-7`
++    a=`ps -ef | grep dbus-daemon | grep "$SUSER" | grep -v gdm | grep session | grep -v grep`
++    if test x"$a" = x ; then
++        systemctl --user start dbus
++        export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$UID/bus
++    fi
++    systemctl --user status dbus | col -b
++    ps -ef | grep dbus-daemon | grep "$SUSER" | grep -v gdm | egrep 'session|system' | grep -v grep
++    systemctl --user show-environment | col -b
++}
++
++run_desktop()
++{
++    if test $HAVE_GRAPHICS -eq 1 ; then
++        /usr/libexec/Xorg.wrap -noreset +extension GLX +extension RANDR +extension RENDER -logfile ./xorg.log -config ./xorg.conf -configdir . $DISPLAY &
++    else
++        /usr/bin/Xvfb $DISPLAY -noreset +extension GLX +extension RANDR +extension RENDER -screen 0 1280x1024x24 &
++    fi
++    PID_XORG=$!
++    sleep 1
++    export DISPLAY=$DISPLAY
++    $DESKTOP_COMMAND &
++    PID_GNOME_SESSION=$!
++    sleep 30
++    if test "$DESKTOP_COMMAND" != "gnome-session" ; then
++        ibus-daemon --daemonize --verbose
++        sleep 1
++    fi
++}
++
++count_case_result()
++{
++    retval=$1
++    pass=$2
++    fail=$3
++
++    if test $retval -eq  0 ; then
++        pass=`expr $pass + 1`
++    else
++        fail=`expr $fail + 1`
++    fi
++    echo $pass $fail
++}
++
++echo_case_result()
++{
++    retval=$1
++    tst=$2
++    log=$3
++    subtst=${4:-''}
++
++    if test $retval -eq  0 ; then
++        echo -e "${GREEN}PASS${NC}: $tst $subtst"
++    else
++        echo -e "${RED}FAIL${NC}: $tst $subtst"
++        echo "FAIL: $tst $subtst" >> $TEST_LOG
++        echo "======================" >> $TEST_LOG
++        echo "" >> $TEST_LOG
++        cat "$log" >> $TEST_LOG
++        echo "" >> $TEST_LOG
++    fi
++}
++
++run_test_suite()
++{
++    cd `dirname $0`
++    pass=0
++    fail=0
++
++    export GTK_IM_MODULE=ibus
++    export IBUS_COMPOSE_CACHE_DIR=$PWD
++    if test -f $TEST_LOG ; then
++        rm $TEST_LOG
++    fi
++    for tst in $TESTS; do
++        ENVS=
++        if test -f $SRCDIR/${tst}.env ; then
++            ENVS="`cat $SRCDIR/${tst}.env`"
++        fi
++        if test x"$ENVS" = x ; then
++            $BUILDDIR/$tst $SRCDIR >&${tst}.log
++            retval=$?
++            read pass fail << EOF
++            `count_case_result $retval $pass $fail`
++EOF
++            echo_case_result $retval $tst ${tst}.log
++        else
++            LANG_backup=$LANG
++            i=1
++            for e in $ENVS; do
++                first=`echo "$e" | cut -c1-1`
++                if test x"$first" = x"#" ; then
++                    continue
++                fi
++                export $e
++                $BUILDDIR/$tst $SRCDIR >&${tst}.${i}.log
++                retval=$?
++                read pass fail << EOF
++                `count_case_result $retval $pass $fail`
++EOF
++                echo_case_result $retval $tst ${tst}.${i}.log $e
++                i=`expr $i + 1`
++            done
++            export LANG=$LANG_backup
++        fi
++    done
++    echo ""
++    echo -e "# ${GREEN}PASS${NC}: $pass"
++    echo -e "# ${RED}FAIL${NC}: $fail"
++    if test -f ${TEST_LOG} ; then
++        echo ""
++        echo -e "${RED}See ${TEST_LOG}$NC"
++    fi
++}
++
++finit()
++{
++    if test "$DESKTOP_COMMAND" != "gnome-session" ; then
++        ibus exit
++    fi
++    kill $PID_GNOME_SESSION $PID_XORG
++}
++
++main()
++{
++    parse_args $@
++    init_desktop
++    run_dbus_daemon
++    run_desktop
++    run_test_suite
++    finit
++}
++
++main $@
+-- 
+2.21.0
+
+From fa081ac8ea37d2feb7c7f395ad66e7381b4cb65b Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Fri, 12 Jul 2019 21:20:32 +0900
+Subject: [PATCH 24/27] src/tests: Use gnome-desktop-testing-runner
+
+---
+ src/tests/Makefile.am                    |   4 +-
+ src/tests/ibus-desktop-testing-runner.in | 154 ++++++++++++++++++-----
+ 2 files changed, 123 insertions(+), 35 deletions(-)
+
+diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am
+index b9aad29a..913e42fb 100644
+--- a/src/tests/Makefile.am
++++ b/src/tests/Makefile.am
+@@ -105,8 +105,8 @@ $(test_metas): $(test_metas_in) $(test_programs)
+ 	$(NULL)
+ 
+ ibus-compose-locales: ibus-compose-locales.in
+-	SRCDIR=$(test_sourcesdir); \
+-	sed -e "s|@SRCDIR[@]|$$SRCDIR|g" $< > $@.tmp; \
++	INSTALLEDDIR=$(datadir)/installed-tests; \
++	sed -e "s|@INSTALLEDDIR[@]|$$INSTALLEDDIR|g" $< > $@.tmp; \
+ 	mv $@.tmp $@; \
+ 	$(NULL)
+ 
+diff --git a/src/tests/ibus-desktop-testing-runner.in b/src/tests/ibus-desktop-testing-runner.in
+index 9e689634..a90c1378 100755
+--- a/src/tests/ibus-desktop-testing-runner.in
++++ b/src/tests/ibus-desktop-testing-runner.in
+@@ -2,7 +2,7 @@
+ # -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*-
+ # vim:set noet ts=4:
+ #
+-# ibus-anthy - The Anthy engine for IBus
++# ibus - The Input Bus
+ #
+ # Copyright (c) 2018-2019 Takao Fujiwara <takao.fujiwara1@gmail.com>
+ # Copyright (c) 2018 Red Hat, Inc.
+@@ -33,16 +33,32 @@ VERSION=0.1
+ DISPLAY=:99.0
+ BUILDDIR="."
+ SRCDIR="."
+-TEST_LOG=test-suite.log
++TEST_LOG="test-suite.log"
++RESULT_LOG=""
+ HAVE_GRAPHICS=1
+ DESKTOP_COMMAND="gnome-session"
+ PID_XORG=0
+ PID_GNOME_SESSION=0
++TESTING_RUNNER="default"
+ TESTS=""
+ GREEN='\033[0;32m'
+ RED='\033[0;31m'
+ NC='\033[0m'
+ 
++print_log()
++{
++    if [ x"$RESULT_LOG" != x ] ; then
++        # avoid 'echo -e' before call 'sed'.
++        if [ x"$1" = x'-e' ] ; then
++            shift
++        fi
++        NO_ESCAPE=`echo $@ | sed -e 's/\\\033\\[0;3.m//g' -e 's/\\\033\\[0m//g'`
++        echo $NO_ESCAPE >> $RESULT_LOG
++    else
++        echo $@
++    fi
++}
++
+ usage()
+ {
+     echo -e \
+@@ -57,13 +73,19 @@ usage()
+ "-c, --no-graphics                Use Xvfb instead of Xorg\n"                  \
+ "-d, --desktop=DESKTOP            Run DESTKTOP. The default is gnome-session\n" \
+ "-t, --tests=\"TESTS...\"           Run TESTS programs which is separated by space\n" \
++"-r, --runner=RUNNER              Run TESTS programs with a test RUNNER.\n"    \
++"                                 RUNNDER = gnome or default.\n"               \
++"                                 default is an embedded runner.\n"            \
++"-o, --output=OUTPUT_FILE         OUtput the log to OUTPUT_FILE\n"             \
++"-O, --result=RESULT_FILE         OUtput the result to RESULT_FILE\n"          \
+ ""
+ }
+ 
+ parse_args()
+ {
+     # This is GNU getopt. "sudo port getopt" in BSD?
+-    ARGS=`getopt -o hvb:s:cd:t: --long help,version,builddir:,srcdir:,no-graphics,desktop:,tests:\
++    ARGS=`getopt -o hvb:s:cd:t:r:o:O: --long \
++          help,version,builddir:,srcdir:,no-graphics,desktop:,tests:,runner:,output:,result:\
+         -- "$@"`;
+     eval set -- "$ARGS"
+     while [ 1 ] ; do
+@@ -75,6 +97,9 @@ parse_args()
+         -c | --no-graphics ) HAVE_GRAPHICS=0; shift;;
+         -d | --desktop )     DESKTOP_COMMAND="$2"; shift 2;;
+         -t | --tests )       TESTS="$2"; shift 2;;
++        -r | --runner )      TESTING_RUNNER="$2"; shift 2;;
++        -o | --output )      TEST_LOG="$2"; shift 2;;
++        -O | --result )      RESULT_LOG="$2"; shift 2;;
+         -- )                 shift; break;;
+         * )                  usage; exit 1;;
+         esac
+@@ -83,18 +108,31 @@ parse_args()
+ 
+ init_desktop()
+ {
++    if [ "$RESULT_LOG" != "" ] ; then
++        rm $RESULT_LOG
++    fi
++    if [ "$TEST_LOG" = "" ] ; then
++        print_log -e "${RED}FAIL${NC}: ${RED}ERROR${NC}: a log file is required to get return value with 'read' command"
++        abrt
++    else
++        rm $TEST_LOG
++    fi
+     if test x$FORCE_TEST != x ; then
+         RUN_ARGS="$RUN_ARGS --force"
+     fi
+ 
+     if test ! -f $HOME/.config/gnome-initial-setup-done ; then
++        IS_SYSTEM_ACCOUNT=false
++        if [ "$USER" = "root" ] ; then
++            IS_SYSTEM_ACCOUNT=true
++        fi
+         if test ! -f /var/lib/AccountsService/users/$USER ; then
+             mkdir -p /var/lib/AccountsService/users
+             cat >> /var/lib/AccountsService/users/$USER << _EOF
+ [User]
+ Language=ja_JP.UTF-8
+ XSession=gnome
+-SystemAccount=false
++SystemAccount=$IS_SYSTEM_ACCOUNT
+ _EOF
+         fi
+         mkdir -p $HOME/.config
+@@ -167,71 +205,120 @@ echo_case_result()
+ {
+     retval=$1
+     tst=$2
+-    log=$3
+-    subtst=${4:-''}
++    subtst=${3:-''}
+ 
+     if test $retval -eq  0 ; then
+-        echo -e "${GREEN}PASS${NC}: $tst $subtst"
++        print_log -e "${GREEN}PASS${NC}: $tst $subtst"
+     else
+-        echo -e "${RED}FAIL${NC}: $tst $subtst"
+-        echo "FAIL: $tst $subtst" >> $TEST_LOG
+-        echo "======================" >> $TEST_LOG
+-        echo "" >> $TEST_LOG
+-        cat "$log" >> $TEST_LOG
+-        echo "" >> $TEST_LOG
++        print_log -e "${RED}FAIL${NC}: $tst $subtst"
++        print_log "======================"
++        print_log ""
+     fi
+ }
+ 
+-run_test_suite()
++run_direct_test_cases()
+ {
+-    cd `dirname $0`
+     pass=0
+     fail=0
+-
+-    export GTK_IM_MODULE=ibus
+-    export IBUS_COMPOSE_CACHE_DIR=$PWD
+-    if test -f $TEST_LOG ; then
+-        rm $TEST_LOG
+-    fi
+     for tst in $TESTS; do
+         ENVS=
+         if test -f $SRCDIR/${tst}.env ; then
+             ENVS="`cat $SRCDIR/${tst}.env`"
+         fi
+         if test x"$ENVS" = x ; then
+-            $BUILDDIR/$tst $SRCDIR >&${tst}.log
++            $BUILDDIR/$tst $SRCDIR 2>>$TEST_LOG 1>>$TEST_LOG
+             retval=$?
+             read pass fail << EOF
+             `count_case_result $retval $pass $fail`
+ EOF
+-            echo_case_result $retval $tst ${tst}.log
++            echo_case_result $retval $tst
++            CACHE_FILES=`ls *.cache`
++            if [ x"$CACHE_FILES" != x ] ; then
++                print_log "Clean $CACHE_FILES"
++                rm $CACHE_FILES
++            fi
+         else
+             LANG_backup=$LANG
+             i=1
+             for e in $ENVS; do
+-                first=`echo "$e" | cut -c1-1`
++                first=`echo "$e" | grep '^#'`
+                 if test x"$first" = x"#" ; then
+                     continue
+                 fi
+                 export $e
+-                $BUILDDIR/$tst $SRCDIR >&${tst}.${i}.log
++                $BUILDDIR/$tst $SRCDIR 2>>$TEST_LOG 1>>$TEST_LOG
+                 retval=$?
+                 read pass fail << EOF
+                 `count_case_result $retval $pass $fail`
+ EOF
+-                echo_case_result $retval $tst ${tst}.${i}.log $e
++                echo_case_result $retval $tst $e
++                CACHE_FILES=`ls *.cache`
++                if [ x"$CACHE_FILES" != x ] ; then
++                    print_log "Clean $CACHE_FILES"
++                    rm $CACHE_FILES
++                fi
+                 i=`expr $i + 1`
+             done
+             export LANG=$LANG_backup
+         fi
+     done
++    echo $pass $fail
++}
++
++run_gnome_desktop_testing_runner()
++{
++    pass=0
++    fail=0
++    if [ x"$TESTS" = x ] ; then
++        TESTS='ibus'
++    fi
++    for tst in $TESTS; do
++        tst_dir="@INSTALLEDDIR@/$tst"
++        if [ ! -d "$tst_dir" ] ; then
++            print_log -e "${RED}FAIL${NC}: Not found %tst_dir"
++            fail=1
++            continue
++        fi
++        gnome-desktop-testing-runner $tst 2>>$TEST_LOG 1>>$TEST_LOG
++        retval=$?
++        read pass fail << EOF
++        `count_case_result $retval $pass $fail`
++EOF
++    done
++    echo $pass $fail
++}
++
++run_test_suite()
++{
++    pass=0
++    fail=0
++    export GTK_IM_MODULE=ibus
++    export IBUS_COMPOSE_CACHE_DIR=$PWD
++    if [ x"$TESTING_RUNNER" = x ] ; then
++        TESTING_RUNNER="default"
++    fi
++    case $TESTING_RUNNER in
++    default)
++        # Get only the last value with do-while.
++        read pass fail << EOF_RUNNER
++        `run_direct_test_cases`
++EOF_RUNNER
++        ;;
++    gnome)
++        read pass fail << EOF_RUNNER
++        `run_gnome_desktop_testing_runner`
++EOF_RUNNER
++        ;;
++    esac
+     echo ""
+-    echo -e "# ${GREEN}PASS${NC}: $pass"
+-    echo -e "# ${RED}FAIL${NC}: $fail"
+-    if test -f ${TEST_LOG} ; then
+-        echo ""
+-        echo -e "${RED}See ${TEST_LOG}$NC"
++    if [ $pass -ne 0 ] ; then
++        print_log -e "${GREEN}PASS${NC}: $pass"
+     fi
++    if [ $fail -ne 0 ] ; then
++        print_log -e "${RED}FAIL${NC}: $fail"
++    fi
++    echo ""
++    echo "See ${TEST_LOG}"
+ }
+ 
+ finit()
+@@ -240,14 +327,15 @@ finit()
+         ibus exit
+     fi
+     kill $PID_GNOME_SESSION $PID_XORG
++    echo "Finished $PROGNAME testing"
+ }
+ 
+ main()
+ {
+     parse_args $@
+     init_desktop
+-    run_dbus_daemon
+-    run_desktop
++    run_dbus_daemon 2>>$TEST_LOG 1>>$TEST_LOG
++    run_desktop 2>>$TEST_LOG 1>>$TEST_LOG
+     run_test_suite
+     finit
+ }
+-- 
+2.21.0
+
+From 85b647a1c57c206779eb0b4b15a734c1b1f29c10 Mon Sep 17 00:00:00 2001
+From: fujiwarat <takao.fujiwara1@gmail.com>
+Date: Wed, 24 Jul 2019 17:27:37 +0900
+Subject: [PATCH 25/27] src/tests: Fix IBus test cases for
+ gnome-desktop-testing
+
+- dconf/config.c: Replaced dconf_client_write_fast() with
+  dconf_client_write_sync() because
+  dconf_client_write_fast() does not syn the data when
+  ibus_config_get_values() is called immediately after
+  ibus_config_set_value() is called.
+
+- ibus-compose-locales.in returns the return value of ibus-compose
+
+- ibus-compose: Set $NO_AT_BRIDGE to suppress a AT_SPI warning
+  and call g_log_set_always_fatal() because GtkIMContextSimple
+  does not support multiple compose outputs yet and the API can
+  suppress a warning.
+
+- ibus-config: Delete async watch testings which causes several errors
+  with gnome-shell testing and the testing is now deprecated and
+  GSettings is recommended.
+
+- ibus-desktop-testing-runner.in: Support --output=log:stdout to
+  cat the log to stdout and Use dbus-launch --exit-with-session instead of
+  --sh-syntax and count PASS of test cases instead of PASS of
+  gnome-desktop-testing and always run ibus exit and kill
+  gnome-shell-calendar-server
+
+- ibus-engine-switch.c: Set xkb:jp::jpn if gnome-shell sets xkb:us::eng
+
+- ibus-inputcontext.c: Use ibus_bus_get_global_engine() instead of
+  ibus_bus_list_active_engines() since ibus_bus_list_active_engines()
+  does not work with gnome-shell and the API is now deprecated.
+
+- ibus-keypress.c: Set $NO_AT_BRIDGE to suppress a AT_SPI warning
+---
+ conf/dconf/config.c                      |  14 +-
+ src/tests/Makefile.am                    |  19 +-
+ src/tests/ibus-compose-locales.in        |   4 +-
+ src/tests/ibus-compose.c                 |  10 +-
+ src/tests/ibus-config.c                  | 283 -----------------------
+ src/tests/ibus-desktop-testing-runner.in |  77 +++---
+ src/tests/ibus-engine-switch.c           |  34 ++-
+ src/tests/ibus-inputcontext.c            |  29 +--
+ src/tests/ibus-keypress.c                |   4 +
+ 9 files changed, 126 insertions(+), 348 deletions(-)
+
+diff --git a/conf/dconf/config.c b/conf/dconf/config.c
+index 500ea1d8..30ac137d 100644
+--- a/conf/dconf/config.c
++++ b/conf/dconf/config.c
+@@ -335,7 +335,19 @@ ibus_config_dconf_set_value (IBusConfigService *config,
+     }
+ 
+ #ifdef DCONF_0_13_4
+-    retval = dconf_client_write_fast (client, gkey, value, error);
++    /* Use dconf_client_write_sync() instead of dconf_client_write_fast()
++     * because dconf_client_write_fast() does not sync the data when
++     * ibus_config_get_values() is called immediately after
++     * ibus_config_set_value() is called.
++     * We won't add a new API for the sync only since IBusConfig is
++     * now deprecated and GSettings is recommended.
++     */
++    retval = dconf_client_write_sync (client,
++                                      gkey,
++                                      value,
++                                      NULL,
++                                      NULL,
++                                      error);
+ #else
+     retval = dconf_client_write (client,
+                                  gkey,
+diff --git a/src/tests/Makefile.am b/src/tests/Makefile.am
+index 913e42fb..2e75932c 100644
+--- a/src/tests/Makefile.am
++++ b/src/tests/Makefile.am
+@@ -55,6 +55,8 @@ TESTS = \
+     ibus-util                       \
+     $(NULL)
+ 
++CLEANFILES =
++
+ if ENABLE_ENGINE
+ TESTS += ibus-engine-switch
+ endif
+@@ -90,9 +92,17 @@ test_sources_DATA = \
+     $(NULL)
+ test_sourcesdir = $(datadir)/installed-tests/ibus
+ 
++CLEANFILES += \
++    $(test_metas) \
++    ibus-desktop-testing-runner \
++    $(NULL)
++
+ test_execs_PROGRAMS = $(TESTS)
+ if ENABLE_GTK3
+ test_execs_SCRIPTS = ibus-compose-locales
++CLEANFILES += \
++    ibus-compose-locales \
++    $(NULL)
+ endif
+ test_execsdir = $(libexecdir)/installed-tests/ibus
+ endif
+@@ -105,15 +115,14 @@ $(test_metas): $(test_metas_in) $(test_programs)
+ 	$(NULL)
+ 
+ ibus-compose-locales: ibus-compose-locales.in
+-	INSTALLEDDIR=$(datadir)/installed-tests; \
+-	sed -e "s|@INSTALLEDDIR[@]|$$INSTALLEDDIR|g" $< > $@.tmp; \
++	SRCDIR=$(test_sourcesdir); \
++	sed -e "s|@SRCDIR[@]|$$SRCDIR|g" $< > $@.tmp; \
+ 	mv $@.tmp $@; \
+ 	$(NULL)
+ 
+-    ibus-desktop-testing-runner.in \
+ ibus-desktop-testing-runner: ibus-desktop-testing-runner.in
+-	SRCDIR=$(test_sourcesdir); \
+-	sed -e "s|@SRCDIR[@]|$$SRCDIR|g" $< > $@.tmp; \
++	INSTALLEDDIR=$(datadir)/installed-tests; \
++	sed -e "s|@INSTALLEDDIR[@]|$$INSTALLEDDIR|g" $< > $@.tmp; \
+ 	mv $@.tmp $@; \
+ 	$(NULL)
+ 
+diff --git a/src/tests/ibus-compose-locales.in b/src/tests/ibus-compose-locales.in
+index 8d2384d1..fad02965 100755
+--- a/src/tests/ibus-compose-locales.in
++++ b/src/tests/ibus-compose-locales.in
+@@ -6,6 +6,7 @@ BUILDDIR=`dirname $0`
+ 
+ export IBUS_COMPOSE_CACHE_DIR=$PWD
+ 
++retval=0
+ for var in `cat $SRCDIR/ibus-compose.env`
+ do
+     IS_COMMENT=`echo "$var" | grep "^#"`
+@@ -13,6 +14,7 @@ do
+         continue
+     fi
+     env $var $BUILDDIR/ibus-compose $SRCDIR $@
++    retval=`expr $retval + $?`
+ 
+     CACHE_FILES=`ls *.cache`
+     if [ x"$CACHE_FILES" != x ] ; then
+@@ -20,4 +22,4 @@ do
+         rm $CACHE_FILES
+     fi
+ done
+-
++exit $retval
+diff --git a/src/tests/ibus-compose.c b/src/tests/ibus-compose.c
+index c8d3c126..db359477 100644
+--- a/src/tests/ibus-compose.c
++++ b/src/tests/ibus-compose.c
+@@ -344,20 +344,26 @@ test_compose (void)
+ int
+ main (int argc, char *argv[])
+ {
++    GLogLevelFlags flags;
+     const gchar *test_name;
+     gchar *test_path;
+ 
+     ibus_init ();
++    /* Avoid a warning of "AT-SPI: Could not obtain desktop path or name"
++     * with gtk_main().
++     */
++    g_setenv ("NO_AT_BRIDGE", "1", TRUE);
+     g_test_init (&argc, &argv, NULL);
+     /* FIXME:
+      * IBusIMContext opens GtkIMContextSimple as the slave and
+      * GtkIMContextSimple opens the compose table on el_GR.UTF-8, and the
+-     * multiple outputs in el_GR's compose causes a warning in gtkcomposetable 
++     * multiple outputs in el_GR's compose causes a warning in gtkcomposetable
+      * and the warning always causes a fatal in GTest:
+      " "GTK+ supports to output one char only: "
+      */
+-    g_log_set_always_fatal (G_LOG_LEVEL_CRITICAL);
++    flags = g_log_set_always_fatal (G_LOG_LEVEL_CRITICAL);
+     gtk_init (&argc, &argv);
++    g_log_set_always_fatal (flags);
+ 
+     m_srcdir = argc > 1 ? g_strdup (argv[1]) : g_strdup (".");
+     m_compose_file = g_strdup (g_getenv ("COMPOSE_FILE"));
+diff --git a/src/tests/ibus-config.c b/src/tests/ibus-config.c
+index c6141ab5..9b925ad9 100644
+--- a/src/tests/ibus-config.c
++++ b/src/tests/ibus-config.c
+@@ -133,254 +133,6 @@ test_config_set_get (void)
+     g_object_unref (config);
+ }
+ 
+-typedef struct {
+-    GMainLoop *loop;
+-    guint timeout_id;
+-    gchar *section;
+-    gchar *name;
+-} WatchData;
+-
+-typedef struct {
+-    gchar *section;
+-    gchar *name;
+-} WatchKey;
+-
+-typedef struct {
+-    WatchKey *watched;          /* watched keys (null-terminated) */
+-    WatchKey *changed;          /* changed keys (null-terminated) */
+-    WatchKey *notified;         /* notified keys (same length as
+-                                   changed, not null-terminated) */
+-} WatchTestData;
+-
+-static WatchKey default_watched[] = {
+-    { NULL }
+-};
+-static WatchKey default_changed[] = {
+-    { "test/s1", "n1" },
+-    { "test/s1", "n2" },
+-    { "test/s2", "n1" },
+-    { "test/s2", "n2" },
+-    { NULL }
+-};
+-static WatchKey default_notified[] = {
+-    { "test/s1", "n1" },
+-    { "test/s1", "n2" },
+-    { "test/s2", "n1" },
+-    { "test/s2", "n2" }
+-};
+-static WatchTestData default_data = {
+-    default_watched,
+-    default_changed,
+-    default_notified
+-};
+-
+-static WatchKey section_watched[] = {
+-    { "test/s1", NULL },
+-    { NULL }
+-};
+-static WatchKey section_notified[] = {
+-    { "test/s1", "n1" },
+-    { "test/s1", "n2" },
+-    { NULL, NULL },
+-    { NULL, NULL },
+-};
+-static WatchTestData section_data = {
+-    section_watched,
+-    default_changed,
+-    section_notified
+-};
+-
+-static WatchKey section_multiple_watched[] = {
+-    { "test/s1", NULL },
+-    { "test/s2", NULL },
+-    { NULL }
+-};
+-static WatchKey section_multiple_notified[] = {
+-    { "test/s1", "n1" },
+-    { "test/s1", "n2" },
+-    { "test/s2", "n1" },
+-    { "test/s2", "n2" },
+-};
+-static WatchTestData section_multiple_data = {
+-    section_multiple_watched,
+-    default_changed,
+-    section_multiple_notified
+-};
+-
+-static WatchKey section_name_watched[] = {
+-    { "test/s1", "n1" },
+-    { NULL }
+-};
+-static WatchKey section_name_notified[] = {
+-    { "test/s1", "n1" },
+-    { NULL, NULL },
+-    { NULL, NULL },
+-    { NULL, NULL },
+-};
+-static WatchTestData section_name_data = {
+-    section_name_watched,
+-    default_changed,
+-    section_name_notified
+-};
+-
+-static WatchKey section_name_multiple_watched[] = {
+-    { "test/s1", "n1" },
+-    { "test/s2", "n2" },
+-    { NULL }
+-};
+-static WatchKey section_name_multiple_notified[] = {
+-    { "test/s1", "n1" },
+-    { NULL, NULL },
+-    { NULL, NULL },
+-    { "test/s2", "n2" },
+-};
+-static WatchTestData section_name_multiple_data = {
+-    section_name_multiple_watched,
+-    default_changed,
+-    section_name_multiple_notified
+-};
+-
+-typedef struct {
+-    IBusConfig *config;
+-    WatchData data;
+-} WatchFixture;
+-
+-static void
+-value_changed_cb (IBusConfig  *config,
+-                  const gchar *section,
+-                  const gchar *name,
+-                  GVariant    *value,
+-                  gpointer     user_data)
+-{
+-    WatchData *data = (WatchData *) user_data;
+-
+-    data->section = g_strdup (section);
+-    data->name = g_strdup (name);
+-
+-    g_main_loop_quit (data->loop);
+-}
+-
+-static gboolean
+-timeout_cb (gpointer user_data)
+-{
+-    WatchData *data = (WatchData *) user_data;
+-    g_main_loop_quit (data->loop);
+-    data->timeout_id = 0;
+-    return FALSE;
+-}
+-
+-static void
+-change_and_test (IBusConfig  *config,
+-                 const gchar *section,
+-                 const gchar *name,
+-                 const gchar *expected_section,
+-                 const gchar *expected_name,
+-                 WatchData   *data)
+-{
+-    gboolean retval;
+-    GVariant *var;
+-
+-    data->section = NULL;
+-    data->name = NULL;
+-
+-    /* Unset won't notify value-changed signal. */
+-    var = ibus_config_get_values (config, section);
+-    if (var != NULL) {
+-        GVariant *value = g_variant_lookup_value (var, name,
+-                                                  G_VARIANT_TYPE_VARIANT);
+-        if (value != NULL) {
+-            ibus_config_unset (config, section, name);
+-            g_variant_unref (value);
+-        }
+-        g_variant_unref (var);
+-    }
+-
+-    data->timeout_id = g_timeout_add (1, timeout_cb, data);
+-    g_main_loop_run (data->loop);
+-    if (data->timeout_id != 0) {
+-        g_source_remove (data->timeout_id);
+-    }
+-
+-    retval = ibus_config_set_value (config, section, name,
+-                                    g_variant_new_int32 (1));
+-    g_assert (retval);
+-
+-    data->timeout_id = g_timeout_add (1, timeout_cb, data);
+-    g_main_loop_run (data->loop);
+-    if (data->timeout_id != 0) {
+-        g_source_remove (data->timeout_id);
+-    }
+-
+-    g_assert_cmpstr (data->section, ==, expected_section);
+-    g_assert_cmpstr (data->name, ==, expected_name);
+-
+-    g_free (data->section);
+-    g_free (data->name);
+-}
+-
+-static void
+-watch_fixture_setup (WatchFixture *fixture, gconstpointer user_data)
+-{
+-    fixture->config = ibus_config_new (ibus_bus_get_connection (bus),
+-                                       NULL,
+-                                       NULL);
+-    g_assert (fixture->config);
+-
+-    fixture->data.loop = g_main_loop_new (NULL, FALSE);
+-    g_signal_connect (fixture->config, "value-changed",
+-                      G_CALLBACK (value_changed_cb), &fixture->data);
+-}
+-
+-static void
+-watch_fixture_teardown (WatchFixture *fixture, gconstpointer user_data)
+-{
+-    g_main_loop_unref (fixture->data.loop);
+-
+-    ibus_proxy_destroy (IBUS_PROXY (fixture->config));
+-    g_object_unref (fixture->config);
+-}
+-
+-static void
+-test_config_watch (WatchFixture *fixture, gconstpointer user_data)
+-{
+-    const WatchTestData *data = user_data;
+-    gint i;
+-
+-    for (i = 0; data->watched[i].section != NULL; i++) {
+-        ibus_config_watch (fixture->config,
+-                           data->watched[i].section,
+-                           data->watched[i].name);
+-    }
+-    for (i = 0; data->changed[i].section != NULL; i++) {
+-        change_and_test (fixture->config,
+-                         data->changed[i].section,
+-                         data->changed[i].name,
+-                         data->notified[i].section,
+-                         data->notified[i].name,
+-                         &fixture->data);
+-    }
+-    for (i = 0; data->watched[i].section != NULL; i++) {
+-        ibus_config_unwatch (fixture->config,
+-                             data->watched[i].section,
+-                             data->watched[i].name);
+-    }
+-    if (i > 0) {
+-        /* Check if the above unwatch takes effect. */
+-        for (i = 0; data->changed[i].section != NULL; i++) {
+-            change_and_test (fixture->config,
+-                             data->changed[i].section,
+-                             data->changed[i].name,
+-                             NULL,
+-                             NULL,
+-                             &fixture->data);
+-        }
+-    } else {
+-        /* Since we reuse single D-Bus connection, we need to remove the
+-           default match rule for the next ibus_config_new() call.  */
+-        ibus_config_unwatch (fixture->config, NULL, NULL);
+-    }
+-}
+-
+ gint
+ main (gint    argc,
+       gchar **argv)
+@@ -390,41 +142,6 @@ main (gint    argc,
+     g_test_init (&argc, &argv, NULL);
+     bus = ibus_bus_new ();
+ 
+-    g_test_add ("/ibus/config-watch/default",
+-                WatchFixture,
+-                &default_data,
+-                watch_fixture_setup,
+-                test_config_watch,
+-                watch_fixture_teardown);
+-
+-    g_test_add ("/ibus/config-watch/section",
+-                WatchFixture,
+-                &section_data,
+-                watch_fixture_setup,
+-                test_config_watch,
+-                watch_fixture_teardown);
+-
+-    g_test_add ("/ibus/config-watch/section-multiple",
+-                WatchFixture,
+-                &section_multiple_data,
+-                watch_fixture_setup,
+-                test_config_watch,
+-                watch_fixture_teardown);
+-
+-    g_test_add ("/ibus/config-watch/section-name",
+-                WatchFixture,
+-                &section_name_data,
+-                watch_fixture_setup,
+-                test_config_watch,
+-                watch_fixture_teardown);
+-
+-    g_test_add ("/ibus/config-watch/section-name-multiple",
+-                WatchFixture,
+-                &section_name_multiple_data,
+-                watch_fixture_setup,
+-                test_config_watch,
+-                watch_fixture_teardown);
+-
+     g_test_add_func ("/ibus/create-config-async", test_create_config_async);
+     g_test_add_func ("/ibus/config-set-get", test_config_set_get);
+ 
+diff --git a/src/tests/ibus-desktop-testing-runner.in b/src/tests/ibus-desktop-testing-runner.in
+index a90c1378..b7a72285 100755
+--- a/src/tests/ibus-desktop-testing-runner.in
++++ b/src/tests/ibus-desktop-testing-runner.in
+@@ -34,9 +34,10 @@ DISPLAY=:99.0
+ BUILDDIR="."
+ SRCDIR="."
+ TEST_LOG="test-suite.log"
++TEST_LOG_STDOUT=0
+ RESULT_LOG=""
+ HAVE_GRAPHICS=1
+-DESKTOP_COMMAND="gnome-session"
++DESKTOP_COMMAND="dbus-launch --exit-with-session gnome-session"
+ PID_XORG=0
+ PID_GNOME_SESSION=0
+ TESTING_RUNNER="default"
+@@ -109,19 +110,26 @@ parse_args()
+ init_desktop()
+ {
+     if [ "$RESULT_LOG" != "" ] ; then
+-        rm $RESULT_LOG
++        if [ -f $RESULT_LOG ] ; then
++            rm $RESULT_LOG
++        fi
++    fi
++    HAS_STDOUT=`echo "$TEST_LOG" | grep ':stdout'`
++    if [ x"$HAS_STDOUT" != x ] ; then
++        TEST_LOG=`echo "$TEST_LOG" | sed -e 's|:stdout||'`
++        TEST_LOG_STDOUT=1
+     fi
+     if [ "$TEST_LOG" = "" ] ; then
+         print_log -e "${RED}FAIL${NC}: ${RED}ERROR${NC}: a log file is required to get return value with 'read' command"
+-        abrt
+-    else
++        exit -1
++    elif [ -f $TEST_LOG ] ; then
+         rm $TEST_LOG
+     fi
+-    if test x$FORCE_TEST != x ; then
++    if [ x$FORCE_TEST != x ] ; then
+         RUN_ARGS="$RUN_ARGS --force"
+     fi
+ 
+-    if test ! -f $HOME/.config/gnome-initial-setup-done ; then
++    if [ ! -f $HOME/.config/gnome-initial-setup-done ] ; then
+         IS_SYSTEM_ACCOUNT=false
+         if [ "$USER" = "root" ] ; then
+             IS_SYSTEM_ACCOUNT=true
+@@ -141,7 +149,7 @@ _EOF
+ 
+     # Prevent from launching a XDG dialog
+     XDG_LOCALE_FILE="$HOME/.config/user-dirs.locale"
+-    if test -f $XDG_LOCALE_FILE ; then
++    if [ -f $XDG_LOCALE_FILE ] ; then
+         XDG_LANG_ORIG=`cat $XDG_LOCALE_FILE`
+         XDG_LANG_NEW=`echo $LANG | sed -e 's/\(.*\)\..*/\1/'`
+         if [ "$XDG_LANG_ORIG" != "$XDG_LANG_NEW" ] ; then
+@@ -153,19 +161,8 @@ _EOF
+ 
+ run_dbus_daemon()
+ {
+-    a=`ps -ef | grep dbus-daemon | grep "\-\-system" | grep -v session | grep -v grep`
+-    if test x"$a" = x ; then
+-        eval `dbus-launch --sh-syntax`
+-    fi
+-    SUSER=`echo "$USER" | cut -c 1-7`
+-    a=`ps -ef | grep dbus-daemon | grep "$SUSER" | grep -v gdm | grep session | grep -v grep`
+-    if test x"$a" = x ; then
+-        systemctl --user start dbus
+-        export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$UID/bus
+-    fi
+-    systemctl --user status dbus | col -b
+-    ps -ef | grep dbus-daemon | grep "$SUSER" | grep -v gdm | egrep 'session|system' | grep -v grep
+-    systemctl --user show-environment | col -b
++    # Use dbus-launch --exit-with-session later instead of --sh-syntax
++    export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$UID/bus
+ }
+ 
+ run_desktop()
+@@ -181,7 +178,8 @@ run_desktop()
+     $DESKTOP_COMMAND &
+     PID_GNOME_SESSION=$!
+     sleep 30
+-    if test "$DESKTOP_COMMAND" != "gnome-session" ; then
++    HAS_GNOME=`echo $DESKTOP_COMMAND | grep gnome-session`
++    if [ x"$HAS_GNOME" = x ] ; then
+         ibus-daemon --daemonize --verbose
+         sleep 1
+     fi
+@@ -285,6 +283,16 @@ run_gnome_desktop_testing_runner()
+         `count_case_result $retval $pass $fail`
+ EOF
+     done
++    child_pass=`grep '^PASS:' $TEST_LOG | wc -l`
++    child_fail=`grep '^FAIL:' $TEST_LOG | wc -l`
++    if [ $child_pass -ne 0 -o $child_fail -ne 0 ] ; then
++        pass=$child_pass
++        if [ $child_fail -ne 0 ] ; then
++            fail=`expr $child_fail / 2`
++        else
++            fail=0
++        fi
++    fi
+     echo $pass $fail
+ }
+ 
+@@ -311,22 +319,29 @@ EOF_RUNNER
+         ;;
+     esac
+     echo ""
+-    if [ $pass -ne 0 ] ; then
+-        print_log -e "${GREEN}PASS${NC}: $pass"
+-    fi
+-    if [ $fail -ne 0 ] ; then
+-        print_log -e "${RED}FAIL${NC}: $fail"
+-    fi
++    print_log -e "${GREEN}PASS${NC}: $pass"
++    print_log -e "${RED}FAIL${NC}: $fail"
+     echo ""
+-    echo "See ${TEST_LOG}"
++    if [ $TEST_LOG_STDOUT -eq 1 ] ; then
++        cat $TEST_LOG
++    else
++        echo "See $TEST_LOG"
++    fi
+ }
+ 
+ finit()
+ {
+-    if test "$DESKTOP_COMMAND" != "gnome-session" ; then
+-        ibus exit
+-    fi
++    echo "Killing left gnome-session and Xorg"
+     kill $PID_GNOME_SESSION $PID_XORG
++    ibus exit
++    SUSER=`echo "$USER" | cut -c 1-7`
++    LEFT_CALENDAR=`ps -ef | grep gnome-shell-calendar-server | grep $SUSER | grep -v grep`
++    if [ x"$LEFT_CALENDAR" != x ] ; then
++        echo "Killing left gnome-shell-calendar-server"
++        echo "$LEFT_CALENDAR"
++        echo "$LEFT_CALENDAR" | awk '{print $2}' | xargs kill
++    fi
++
+     echo "Finished $PROGNAME testing"
+ }
+ 
+diff --git a/src/tests/ibus-engine-switch.c b/src/tests/ibus-engine-switch.c
+index 5c2bd516..a1eeba2a 100644
+--- a/src/tests/ibus-engine-switch.c
++++ b/src/tests/ibus-engine-switch.c
+@@ -13,17 +13,25 @@ static const gchar *engine_names[] = {
+     AFTER_ENGINE
+ };
+ 
++static const gchar *engine_names2[] = {
++    AFTER_ENGINE,
++    BEFORE_ENGINE
++};
++
+ static void
+-change_global_engine (void)
++change_global_engine (gboolean reverse)
+ {
+     gint i;
+ 
+     for (i = 0; i < G_N_ELEMENTS (engine_names); i++) {
+-        ibus_bus_set_global_engine (bus, engine_names[i]);
++        const gchar *engine_name = engine_names[i];
++        if (reverse)
++            engine_name = engine_names2[i];
++        ibus_bus_set_global_engine (bus, engine_name);
+         IBusEngineDesc *engine_desc = ibus_bus_get_global_engine (bus);
+         g_assert_cmpstr (ibus_engine_desc_get_name (engine_desc),
+                          ==,
+-                         engine_names[i]);
++                         engine_name);
+         g_object_unref (G_OBJECT (engine_desc));
+     }
+ }
+@@ -46,6 +54,7 @@ typedef struct {
+     gint count;
+     guint timeout_id;
+     guint idle_id;
++    gboolean reverse;
+ } GlobalEngineChangedData;
+ 
+ static void
+@@ -70,7 +79,7 @@ static gboolean
+ change_global_engine_cb (gpointer user_data)
+ {
+     GlobalEngineChangedData *data = (GlobalEngineChangedData *) user_data;
+-    change_global_engine ();
++    change_global_engine (data->reverse);
+     data->idle_id = 0;
+     return FALSE;
+ }
+@@ -78,12 +87,25 @@ change_global_engine_cb (gpointer user_data)
+ static void
+ test_global_engine (void)
+ {
++    GLogLevelFlags flags;
++    IBusEngineDesc *desc;
+     GlobalEngineChangedData data;
+     guint handler_id;
+ 
+     if (!ibus_bus_get_use_global_engine (bus))
+         return;
+ 
++    /* "No global engine." warning is not critical message. */
++    flags = g_log_set_always_fatal (G_LOG_LEVEL_CRITICAL);
++    desc = ibus_bus_get_global_engine (bus);
++    g_log_set_always_fatal (flags);
++    if (desc &&
++        !g_strcmp0 (BEFORE_ENGINE, ibus_engine_desc_get_name (desc))) {
++        data.reverse = TRUE;
++    } else {
++        data.reverse = FALSE;
++    }
++
+     data.count = 0;
+ 
+     handler_id = g_signal_connect (bus,
+@@ -141,7 +163,7 @@ test_context_engine_set_by_global (void)
+     /* ibus_bus_set_global_engine() changes focused context engine. */
+     ibus_input_context_focus_in (context);
+ 
+-    change_global_engine ();
++    change_global_engine (FALSE);
+ 
+     /* ibus_input_context_set_engine() does not take effect when
+        global engine is used. */
+@@ -170,7 +192,7 @@ test_context_engine_set_by_focus (void)
+ 
+     ibus_input_context_focus_in (context);
+ 
+-    change_global_engine ();
++    change_global_engine (FALSE);
+ 
+     /* When focus is lost, context engine is set to "dummy". */
+     ibus_input_context_focus_in (another_context);
+diff --git a/src/tests/ibus-inputcontext.c b/src/tests/ibus-inputcontext.c
+index fab183aa..ed04bd64 100644
+--- a/src/tests/ibus-inputcontext.c
++++ b/src/tests/ibus-inputcontext.c
+@@ -37,18 +37,6 @@ fatal_handler(const gchar *log_domain,
+     return TRUE;
+ }
+ 
+-static gchar *
+-get_last_engine_id (const GList *engines)
+-{
+-    const char *result = NULL;
+-    for (; engines; engines = g_list_next (engines)) {
+-        IBusEngineDesc *engine_desc = IBUS_ENGINE_DESC (engines->data);
+-        g_assert (engine_desc);
+-        result = ibus_engine_desc_get_name (engine_desc);
+-    }
+-    return g_strdup (result);
+-}
+-
+ static void
+ call_basic_ipcs (IBusInputContext *context)
+ {
+@@ -68,18 +56,23 @@ call_basic_ipcs (IBusInputContext *context)
+ static void
+ test_input_context (void)
+ {
+-    GList *engines;
+-    gchar *active_engine_name = NULL;
+     IBusInputContext *context;
++    GLogLevelFlags flags;
+     IBusEngineDesc *engine_desc;
++    gchar *active_engine_name = NULL;
+     gchar *current_ic;
+ 
+     context = ibus_bus_create_input_context (bus, "test");
+     call_basic_ipcs (context);
+ 
+-    engines = ibus_bus_list_active_engines (bus);
+-    if (engines != NULL) {
+-        active_engine_name = get_last_engine_id (engines);
++    /* "No global engine." warning is not critical message. */
++    flags = g_log_set_always_fatal (G_LOG_LEVEL_CRITICAL);
++    engine_desc = ibus_bus_get_global_engine (bus);
++    g_log_set_always_fatal (flags);
++    if (engine_desc != NULL) {
++        active_engine_name = g_strdup (ibus_engine_desc_get_name(engine_desc));
++        g_object_unref (engine_desc);
++        engine_desc = NULL;
+     } else {
+         active_engine_name = g_strdup ("dummy");
+     }
+@@ -111,8 +104,6 @@ test_input_context (void)
+     g_object_unref (context);
+ 
+     g_free (active_engine_name);
+-    g_list_foreach (engines, (GFunc) g_object_unref, NULL);
+-    g_list_free (engines);
+ }
+ 
+ static void
+diff --git a/src/tests/ibus-keypress.c b/src/tests/ibus-keypress.c
+index 17920226..dd1b0042 100644
+--- a/src/tests/ibus-keypress.c
++++ b/src/tests/ibus-keypress.c
+@@ -288,6 +288,10 @@ int
+ main (int argc, char *argv[])
+ {
+     ibus_init ();
++    /* Avoid a warning of "AT-SPI: Could not obtain desktop path or name"
++     * with gtk_main().
++     */
++    g_setenv ("NO_AT_BRIDGE", "1", TRUE);
+     g_test_init (&argc, &argv, NULL);
+     gtk_init (&argc, &argv);
+ 
+-- 
+2.21.0
+
+From 0c89a7ee33bfe5b403c798e0ddb39e4c05d0d971 Mon Sep 17 00:00:00 2001
+From: Hodong Kim <cogniti@gmail.com>
+Date: Thu, 25 Jul 2019 14:37:52 +0900
+Subject: [PATCH 27/27] client/x11: Update LOCALES_STRING
+
+Update LOCALES_STRING in locales.h from /usr/share/i18n/SUPPORTED on
+Debian Buster.
+
+BUG=https://github.com/ibus/ibus/pull/2110
+---
+ client/x11/locales.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/client/x11/locales.h b/client/x11/locales.h
+index 0155e22a..61af74fb 100644
+--- a/client/x11/locales.h
++++ b/client/x11/locales.h
+@@ -1,2 +1,2 @@
+ /* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
+-#define LOCALES_STRING "aa,af,am,an,ar,as,ast,az,be,ber,bg,bn,bo,br,bs,byn,C,ca,crh,cs,csb,cy,da,de,dz,el,en,es,et,eu,fa,fi,fil,fo,fr,fur,fy,ga,gd,gez,gl,gu,gv,ha,he,hi,hne,hr,hsb,ht,hu,hy,id,ig,ik,is,it,iu,iw,ja,ka,kk,kl,km,kn,ko,ks,ku,kw,ky,lg,li,lo,lt,lv,mai,mg,mi,mk,ml,mn,mr,ms,mt,nan,nb,nds,ne,nl,nn,no,nr,nso,oc,om,or,pa,pa,pap,pl,pt,ro,ru,rw,sa,sc,sd,se,shs,si,sid,sk,sl,so,sq,sr,ss,st,sv,ta,te,tg,th,ti,tig,tk,tl,tn,tr,ts,tt,ug,uk,ur,uz,ve,vi,wa,wo,xh,yi,yo,zh,zu"
++#define LOCALES_STRING "aa,af,agr,ak,am,an,anp,ar,ayc,az,as,ast,be,bem,ber,bg,bhb,bho,bi,bn,bo,br,brx,bs,byn,C,ca,ce,chr,cmn,crh,cs,csb,cv,cy,da,de,doi,dsb,dv,dz,el,en,eo,es,et,eu,fa,ff,fi,fil,fo,fr,fur,fy,ga,gd,gez,gl,gu,gv,ha,hak,he,hi,hif,hne,hr,hsb,ht,hu,hy,ia,id,ig,ik,is,it,iu,ja,ka,kab,kk,kl,km,kn,ko,kok,ks,ku,kw,ky,lb,lg,li,lij,ln,lo,lt,lv,lzh,mag,mai,mfe,mg,mhr,mi,miq,mjw,mk,ml,mn,mni,mr,ms,mt,my,nan,nb,nds,ne,nhn,niu,nl,nn,no,nr,nso,oc,om,or,os,pa,pap,pl,ps,pt,quz,raj,ro,ru,rw,sa,sah,sat,sc,sd,se,sgs,shn,shs,si,sid,sk,sl,sm,so,sq,sr,ss,st,sv,sw,szl,ta,tcy,te,tg,th,the,ti,tig,tk,tl,tn,to,tpi,tr,ts,tt,ug,uk,unm,ur,uz,ve,vi,wa,wae,wal,wo,xh,yi,yo,yue,yuw,zh,zu"
+-- 
+2.21.0
 

diff --git a/ibus.spec b/ibus.spec
index ba24b3f..ce7b91a 100644
--- a/ibus.spec
+++ b/ibus.spec
@@ -35,7 +35,7 @@
 
 Name:           ibus
 Version:        1.5.20
-Release:        5%{?dist}
+Release:        6%{?dist}
 Summary:        Intelligent Input Bus for Linux OS
 License:        LGPLv2+
 URL:            https://github.com/ibus/%name/wiki
@@ -233,6 +233,24 @@ BuildArch:      noarch
 %description devel-docs
 The ibus-devel-docs package contains developer documentation for IBus
 
+%package desktop-testing
+Summary:  Wrapper of InstalledTests Runner for IBus
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%description desktop-testing
+GNOME desktop testing runner implements the InstalledTests specification
+and IBus also needs focus events to enable input contexts on text widgets.
+The wrapper script runs gnome-session for the focus events and GNOME
+desktop testing runner internally.
+
+%package  tests
+Summary:  Tests for the %{name} package
+Requires: %{name}%{?_isa} = %{version}-%{release}
+
+%description tests
+The %{name}-tests package contains tests that can be used to verify
+the functionality of the installed %{name} package.
+
 
 %prep
 %autosetup -S git
@@ -270,6 +288,7 @@ autoreconf -f -i -v
     --disable-appindicator \
 %endif
     --enable-introspection \
+    --enable-install-tests \
     %{nil}
 
 make -C ui/gtk3 maintainer-clean-generic
@@ -434,7 +453,21 @@ dconf update || :
 %dir %{_datadir}/gtk-doc/html
 %{_datadir}/gtk-doc/html/*
 
+%files desktop-testing
+%{_bindir}/ibus-desktop-testing-runner
+
+%files tests
+%dir %{_libexecdir}/installed-tests
+%{_libexecdir}/installed-tests/ibus
+%dir %{_datadir}/installed-tests
+%{_datadir}/installed-tests/ibus
+
 %changelog
+* Fri Jul 26 2019 Takao Fujiwara <tfujiwar@redhat.com> - 1.5.20-6
+- Update ibus-HEAD.patch from upstream
+  Integrate a new compose feature
+  Generate ibus-tests and ibus-desktop-testing sub packages
+
 * Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.5.20-5
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
 

                 reply	other threads:[~2026-05-31  2:07 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=178019323243.1.7510974132897129343.rpms-ibus-677e87ac8992@fedoraproject.org \
    --to=tfujiwar@redhat.com \
    --cc=git-commits@fedoraproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox