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: Delete upstreamed ibus-HEAD.patch
Date: Sun, 31 May 2026 02:07:15 GMT [thread overview]
Message-ID: <178019323583.1.7662532533405135163.rpms-ibus-f1eb5c5acd31@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/ibus
Branch : autotool
Commit : f1eb5c5acd31cb925b78f50a629e2b1eb8ec8ff2
Author : Takao Fujiwara <tfujiwar@redhat.com>
Date : 2019-08-23T19:58:27+09:00
Stats : +0/-15310 in 1 file(s)
URL : https://src.fedoraproject.org/rpms/ibus/c/f1eb5c5acd31cb925b78f50a629e2b1eb8ec8ff2?branch=autotool
Log:
Delete upstreamed ibus-HEAD.patch
---
diff --git a/ibus-HEAD.patch b/ibus-HEAD.patch
deleted file mode 100644
index ec88af6..0000000
--- a/ibus-HEAD.patch
+++ /dev/null
@@ -1,15310 +0,0 @@
-From 026b19ef169dd9612d8a4a1ee34f7c42e7215c9a Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-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/2086
----
- setup/ibus-setup.in | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-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 $@
-
---
-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
-
-+ibusemojigen.h: dicts/emoji-en.dict
-+ $(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 =
-+
- 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
-+
- 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)
-
-+MAINTAINERCLEANFILES += extension.c panelbinding.c
-+
- 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 = \
-
- LOG_COMPILER = $(srcdir)/runtest
-
--EXTRA_DIST = runtest
-+EXTRA_DIST = runtest ibus-compose.env
-
- ibus_bus_SOURCES = ibus-bus.c
- ibus_bus_LDADD = $(prog_ldadd)
---
-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 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
-and deleting the datarootdir line caused a regression.
-All variables can be extracted in Makefile.am with sed.
----
- configure.ac | 1 -
- setup/Makefile.am | 13 +++++++++++--
- 2 files changed, 11 insertions(+), 3 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 9518e808..7503f3e8 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -724,7 +724,6 @@ ibus/interface/Makefile
- ui/Makefile
- ui/gtk3/Makefile
- setup/Makefile
--setup/ibus-setup
- bindings/Makefile
- bindings/pygobject/Makefile
- bindings/vala/Makefile
-diff --git a/setup/Makefile.am b/setup/Makefile.am
-index cb4dd8d1..34c8f136 100644
---- a/setup/Makefile.am
-+++ b/setup/Makefile.am
-@@ -3,8 +3,8 @@
- # ibus - The Input Bus
- #
- # Copyright (c) 2007-2014 Peng Huang <shawn.p.huang@gmail.com>
--# Copyright (c) 2015-2018 Takao Fujiwara <takao.fujiwara1@gmail.com>
--# Copyright (c) 2007-2018 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
-@@ -40,6 +40,15 @@ ibussetup_DATA = \
- bin_SCRIPTS = ibus-setup
- ibussetupdir = $(pkgdatadir)/setup
-
-+ibus-setup: ibus-setup.in
-+ $(AM_V_GEN) sed -e "s|\@datarootdir\@|$(datarootdir)|g" \
-+ -e "s|\@localedir\@|$(localedir)|g" \
-+ -e "s|\@libexecdir\@|$(libexecdir)|g" \
-+ -e "s|\@prefix\@|$(prefix)|g" \
-+ -e "s|\@PYTHON\@|$(PYTHON)|g" \
-+ $< > $@.tmp && \
-+ mv $@.tmp $@
-+
- desktop_notrans_files = ibus-setup.desktop
- desktop_DATA = org.freedesktop.IBus.Setup.desktop
- desktopdir = $(datadir)/applications
---
-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 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.
-
-After you install the ibus.[its|loc] to /usr/share/gettext/its,
-each engine's component file needs to renamed with
-'.inputMethod.xml' in the source directory suffix. E.g.
-Rename 'anthy.xml' to 'anthy.inputMethod.xml' and write the file
-path to the engine's POTFILES.in
----
- configure.ac | 1 +
- data/Makefile.am | 3 ++-
- data/its/Makefile.am | 29 +++++++++++++++++++++++++++++
- data/its/ibus.its | 14 ++++++++++++++
- data/its/ibus.loc | 7 +++++++
- 5 files changed, 53 insertions(+), 1 deletion(-)
- create mode 100644 data/its/Makefile.am
- create mode 100644 data/its/ibus.its
- create mode 100644 data/its/ibus.loc
-
-diff --git a/configure.ac b/configure.ac
-index 7503f3e8..b5a87b56 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -711,6 +711,7 @@ util/IMdkit/Makefile
- data/Makefile
- data/annotations/Makefile
- data/icons/Makefile
-+data/its/Makefile
- data/keymaps/Makefile
- data/dconf/Makefile
- docs/Makefile
-diff --git a/data/Makefile.am b/data/Makefile.am
-index 2533f444..aa3ee466 100644
---- a/data/Makefile.am
-+++ b/data/Makefile.am
-@@ -3,7 +3,7 @@
- # ibus - The Input Bus
- #
- # Copyright (c) 2007-2016 Peng Huang <shawn.p.huang@gmail.com>
--# Copyright (c) 2007-2018 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
-@@ -23,6 +23,7 @@
- SUBDIRS = \
- annotations \
- icons \
-+ its \
- keymaps \
- $(NULL)
-
-diff --git a/data/its/Makefile.am b/data/its/Makefile.am
-new file mode 100644
-index 00000000..07c8a96d
---- /dev/null
-+++ b/data/its/Makefile.am
-@@ -0,0 +1,29 @@
-+# vim:set noet ts=4:
-+#
-+# ibus - The Input Bus
-+#
-+# Copyright (c) 2019 Takao Fujiwara <takao.fujiwara1@gmail.com>
-+# Copyright (c) 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
-+# License as published by the Free Software Foundation; either
-+# version 2.1 of the License, or (at your option) any later version.
-+#
-+# This library 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
-+# Lesser General Public License for more details.
-+#
-+# You should have received a copy of the GNU Lesser General Public
-+# License along with this library; if not, write to the Free Software
-+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
-+# USA
-+
-+itsdir = $(datadir)/gettext/its
-+its_DATA = \
-+ ibus.its \
-+ ibus.loc \
-+ $(NULL)
-+
-+-include $(top_srcdir)/git.mk
-diff --git a/data/its/ibus.its b/data/its/ibus.its
-new file mode 100644
-index 00000000..30d8d4e2
---- /dev/null
-+++ b/data/its/ibus.its
-@@ -0,0 +1,14 @@
-+<?xml version="1.0"?>
-+<its:rules xmlns:its="http://www.w3.org/2005/11/its"
-+ version="2.0">
-+ <its:translateRule selector="/component" translate="no"/>
-+ <its:translateRule selector="/engines" translate="no"/>
-+ <its:translateRule selector="//engine" translate="no"/>
-+ <its:translateRule selector="//longname |
-+ //description"
-+ translate="yes"/>
-+ <its:translateRule selector="//longname[@translatable = 'no']"
-+ translate="no"/>
-+ <its:translateRule selector="//description[@translatable = 'no']"
-+ translate="no"/>
-+</its:rules>
-diff --git a/data/its/ibus.loc b/data/its/ibus.loc
-new file mode 100644
-index 00000000..5a73798b
---- /dev/null
-+++ b/data/its/ibus.loc
-@@ -0,0 +1,7 @@
-+<?xml version="1.0"?>
-+<locatingRules>
-+ <locatingRule name="IBusEngineDesc" pattern="*.inputMethod.xml">
-+ <documentRule localName="engines" target="ibus.its"/>
-+ <documentRule localName="component" target="ibus.its"/>
-+ </locatingRule>
-+</locatingRules>
---
-2.21.0
-
-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:09 +0900
-Subject: [PATCH 09/27] 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.
-
-BUG=https://github.com/ibus/ibus/issues/2079
----
- src/ibusutil.c | 63 ++++++++++++++++++++++++++++++++++++++++++--------
- src/ibusutil.h | 8 +++----
- 2 files changed, 58 insertions(+), 13 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);
- }
-
--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
-+ * 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.
-+ */
- _ibus_context_update_preedit_text_cb (ibusimcontext->ibuscontext,
- ibus_text_new_from_string (""),
-- 0,
-- FALSE,
-+ ibusimcontext->preedit_cursor_pos,
-+ ibusimcontext->preedit_visible,
- IBUS_ENGINE_PREEDIT_CLEAR,
- ibusimcontext);
- if (preedit_string) {
---
-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,
-- §ion_data,
-- watch_fixture_setup,
-- test_config_watch,
-- watch_fixture_teardown);
--
-- g_test_add ("/ibus/config-watch/section-multiple",
-- WatchFixture,
-- §ion_multiple_data,
-- watch_fixture_setup,
-- test_config_watch,
-- watch_fixture_teardown);
--
-- g_test_add ("/ibus/config-watch/section-name",
-- WatchFixture,
-- §ion_name_data,
-- watch_fixture_setup,
-- test_config_watch,
-- watch_fixture_teardown);
--
-- g_test_add ("/ibus/config-watch/section-name-multiple",
-- WatchFixture,
-- §ion_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
-
-From f4463c0433c5f48a4fb2830e8c2ae9619fbb18d1 Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Mon, 29 Jul 2019 19:05:43 +0900
-Subject: [PATCH] src/tests: Fix a fatal error with g_warning
-
-I set g_log_set_always_fatal() before gtk_init() in ibus-compose for
-a compose warning of GtkIMContextSimple but actually the warning is
-output during gtk_main() due to GtkIMContextSimple.set_client_window()
-so I moved g_log_set_always_fatal() before gtk_main() in ibus-compose.c.
-
-Also set IFS in ibus-compose-locales to set the delimiter to '\n' for
-for-loop arguments.
----
- src/tests/ibus-compose-locales.in | 8 ++++++++
- src/tests/ibus-compose.c | 21 ++++++++++-----------
- 2 files changed, 18 insertions(+), 11 deletions(-)
-
-diff --git a/src/tests/ibus-compose-locales.in b/src/tests/ibus-compose-locales.in
-index fad02965..f650b584 100755
---- a/src/tests/ibus-compose-locales.in
-+++ b/src/tests/ibus-compose-locales.in
-@@ -7,19 +7,27 @@ BUILDDIR=`dirname $0`
- export IBUS_COMPOSE_CACHE_DIR=$PWD
-
- retval=0
-+# Let for-loop notice '\n' as a delimiter
-+IFS=$'\n'
- for var in `cat $SRCDIR/ibus-compose.env`
- do
-+ # Revert IFS to recognize env a=foo b=foo
-+ IFS=' '
- IS_COMMENT=`echo "$var" | grep "^#"`
- if [ "x$IS_COMMENT" != x ] ; then
- continue
- fi
-+ echo "# Starting $var $BUILDDIR/ibus-compose $SRCDIR $@"
- env $var $BUILDDIR/ibus-compose $SRCDIR $@
- retval=`expr $retval + $?`
-+ echo "# Finished $var $BUILDDIR/ibus-compose $SRCDIR $@ with $retval"
-
- CACHE_FILES=`ls *.cache`
- if [ x"$CACHE_FILES" != x ] ; then
- echo "Clean $CACHE_FILES"
- rm $CACHE_FILES
- fi
-+ IFS=$'\n'
- done
-+IFS=' '
- exit $retval
-diff --git a/src/tests/ibus-compose.c b/src/tests/ibus-compose.c
-index db359477..4b4c56e7 100644
---- a/src/tests/ibus-compose.c
-+++ b/src/tests/ibus-compose.c
-@@ -331,20 +331,28 @@ create_window ()
- static void
- test_compose (void)
- {
-+ GLogLevelFlags flags;
- if (!register_ibus_engine ()) {
- g_test_fail ();
- return;
- }
-
- create_window ();
-+ /* 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: "
-+ */
-+ flags = g_log_set_always_fatal (G_LOG_LEVEL_CRITICAL);
- gtk_main ();
--
-+ g_log_set_always_fatal (flags);
- }
-
- int
- main (int argc, char *argv[])
- {
-- GLogLevelFlags flags;
- const gchar *test_name;
- gchar *test_path;
-
-@@ -354,16 +362,7 @@ main (int argc, char *argv[])
- */
- 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
-- * and the warning always causes a fatal in GTest:
-- " "GTK+ supports to output one char only: "
-- */
-- 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"));
---
-2.21.0
-
-From 7dde99600777f195da614130950ecbd339439d35 Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Wed, 31 Jul 2019 16:27:49 +0900
-Subject: [PATCH] src/tests: Fix wrong echo with direct runner in
- ibus-desktop-testing-runner
-
-The wrong echo prevent from counting the test results in the direct
-testing runner.
----
- src/tests/ibus-desktop-testing-runner.in | 33 +++++++++++++-----------
- 1 file changed, 18 insertions(+), 15 deletions(-)
-
-diff --git a/src/tests/ibus-desktop-testing-runner.in b/src/tests/ibus-desktop-testing-runner.in
-index b7a72285..3045d601 100755
---- a/src/tests/ibus-desktop-testing-runner.in
-+++ b/src/tests/ibus-desktop-testing-runner.in
-@@ -153,7 +153,7 @@ _EOF
- 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 "# Overriding XDG locale $XDG_LANG_ORIG with $XDG_LANG_NEW"
- echo "$XDG_LANG_NEW" > $XDG_LOCALE_FILE
- fi
- fi
-@@ -206,11 +206,9 @@ echo_case_result()
- subtst=${3:-''}
-
- if test $retval -eq 0 ; then
-- print_log -e "${GREEN}PASS${NC}: $tst $subtst"
-+ echo "PASS: $tst $subtst" >>$TEST_LOG
- else
-- print_log -e "${RED}FAIL${NC}: $tst $subtst"
-- print_log "======================"
-- print_log ""
-+ echo "FAIL: $tst $subtst" >>$TEST_LOG
- fi
- }
-
-@@ -232,32 +230,37 @@ EOF
- echo_case_result $retval $tst
- CACHE_FILES=`ls *.cache`
- if [ x"$CACHE_FILES" != x ] ; then
-- print_log "Clean $CACHE_FILES"
-+ echo "# Clean $CACHE_FILES" >>$TEST_LOG
- rm $CACHE_FILES
- fi
- else
-- LANG_backup=$LANG
- i=1
-+ # Let for-loop notice '\n' as a delimiter
-+ IFS=$'\n'
- for e in $ENVS; do
-+ # Revert IFS to recognize env a=foo b=foo
-+ IFS=' '
- first=`echo "$e" | grep '^#'`
- if test x"$first" = x"#" ; then
- continue
- fi
-- export $e
-- $BUILDDIR/$tst $SRCDIR 2>>$TEST_LOG 1>>$TEST_LOG
-+ echo "# Starting $e $BUILDDIR/$tst $SRCDIR" >>$TEST_LOG
-+ env $e $BUILDDIR/$tst $SRCDIR 2>>$TEST_LOG 1>>$TEST_LOG
- retval=$?
-+ echo "# Finished $e $BUILDDIR/$tst $SRCDIR with $retval" >>$TEST_LOG
- read pass fail << EOF
- `count_case_result $retval $pass $fail`
- EOF
- echo_case_result $retval $tst $e
- CACHE_FILES=`ls *.cache`
- if [ x"$CACHE_FILES" != x ] ; then
-- print_log "Clean $CACHE_FILES"
-+ echo "# Clean $CACHE_FILES" >>$TEST_LOG
- rm $CACHE_FILES
- fi
- i=`expr $i + 1`
-+ IFS=$'\n'
- done
-- export LANG=$LANG_backup
-+ IFS=' '
- fi
- done
- echo $pass $fail
-@@ -325,24 +328,24 @@ EOF_RUNNER
- if [ $TEST_LOG_STDOUT -eq 1 ] ; then
- cat $TEST_LOG
- else
-- echo "See $TEST_LOG"
-+ echo "# See $TEST_LOG"
- fi
- }
-
- finit()
- {
-- echo "Killing left gnome-session and Xorg"
-+ 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 "# Killing left gnome-shell-calendar-server"
- echo "$LEFT_CALENDAR"
- echo "$LEFT_CALENDAR" | awk '{print $2}' | xargs kill
- fi
-
-- echo "Finished $PROGNAME testing"
-+ echo "# Finished $PROGNAME testing"
- }
-
- main()
---
-2.21.0
-
-From 32572618cdcc36162b5769eb4c71964db9734061 Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Tue, 6 Aug 2019 18:55:14 +0900
-Subject: [PATCH] bus: Exit ibus-daemon with parent's death
-
-ibus-daemon can be restarted unexpectedly during logging out the session
-and double ibus-x11 prevent from enabling XIM in XGetSelectionOwner()
-for the "ibus" atom.
-ibus-daemon always will exit the process when the parent process dies
-to avoid this problem.
----
- bus/main.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++-
- configure.ac | 3 +++
- 2 files changed, 58 insertions(+), 1 deletion(-)
-
-diff --git a/bus/main.c b/bus/main.c
-index 3223d541..e11a5ebd 100644
---- a/bus/main.c
-+++ b/bus/main.c
-@@ -33,6 +33,10 @@
- #include <sys/stat.h>
- #include <unistd.h>
-
-+#ifdef HAVE_SYS_PRCTL_H
-+#include <sys/prctl.h>
-+#endif
-+
- #include "global.h"
- #include "ibusimpl.h"
- #include "server.h"
-@@ -161,6 +165,15 @@ daemon (gint nochdir, gint noclose)
- }
- #endif
-
-+#ifdef HAVE_SYS_PRCTL_H
-+static void
-+_sig_usr1_handler (int sig)
-+{
-+ g_warning ("The parent process died.");
-+ bus_server_quit (FALSE);
-+}
-+#endif
-+
- gint
- main (gint argc, gchar **argv)
- {
-@@ -201,7 +214,7 @@ main (gint argc, gchar **argv)
- /* daemonize process */
- if (daemonize) {
- if (daemon (1, 0) != 0) {
-- g_printerr ("Can not daemonize ibus.\n");
-+ g_printerr ("Cannot daemonize ibus.\n");
- exit (-1);
- }
- }
-@@ -299,6 +312,47 @@ main (gint argc, gchar **argv)
- exit (-1);
- }
-
-+ if (!daemonize) {
-+ if (getppid () == 1) {
-+ g_warning ("The parent process died.");
-+ exit (0);
-+ }
-+#ifdef HAVE_SYS_PRCTL_H
-+ /* Currently ibus-x11 detects XIOError and assume the error as the
-+ * desktop session is closed and ibus-x11 calls Exit D-Bus method to
-+ * exit ibus-daemon. But a few desktop sessions cause XError before
-+ * XIOError and GTK does not allow to bind XError by applications and
-+ * GTK calls gdk_x_error() with XError.
-+ *
-+ * E.g. GdkX11Screen calls XGetSelectionOwner() for "_XSETTINGS_S?"
-+ * atoms during the logout but the selection owner already becomes
-+ * NULL and the NULL window causes XError with
-+ * gdk_x11_window_foreign_new_for_display().
-+ *
-+ * Since ibus-x11 exits with XError before XIOError, gnome-shell
-+ * can detects the exit of ibus-daemon a little earlier and
-+ * gnome-shell restarts ibus-daemon but gnome-shell dies soon.
-+ * Then gnome-shell dies but ibus-daemon is alive, it's a problem.
-+ * Because it causes double ibus-x11 of GDM and a login user
-+ * and double XSetSelectionOwner() is not allowed for the unique
-+ * "ibus" atom and the user cannot use XIM but not GtkIMModule.
-+ *
-+ * Probably we could fix the ibus process problem if we would fix
-+ * XError about the X selection owner or stop to restart ibus-daemon
-+ * in gonme-shell when the session is logging out.
-+ * Maybe using SessionManager.LogoutRemote() or
-+ * global.screen.get_display().get_xdisplay()
-+ * But I assume thereare other scenarios to causes the problem.
-+ *
-+ * And I decided ibus-daemon always exits with the parent's death here
-+ * to avoid unexpected ibus restarts during the logout.
-+ */
-+ if (prctl (PR_SET_PDEATHSIG, SIGUSR1))
-+ g_printerr ("Cannot bind SIGUSR1 for parent death\n");
-+ else
-+ signal (SIGUSR1, _sig_usr1_handler);
-+#endif
-+ }
- bus_server_run ();
- return 0;
- }
-diff --git a/configure.ac b/configure.ac
-index f1df3ac1..fdd316a9 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -140,6 +140,9 @@ AC_ISC_POSIX
- AC_HEADER_STDC
- LT_INIT
-
-+# Check header filess.
-+AC_CHECK_HEADERS([sys/prctl.h])
-+
- # Check functions.
- AC_CHECK_FUNCS(daemon)
-
---
-2.21.0
-
-From 28c10d64d282fa9fbc35a7bc44a096f6137d5e46 Mon Sep 17 00:00:00 2001
-From: fujiwarat <takao.fujiwara1@gmail.com>
-Date: Tue, 13 Aug 2019 20:06:51 +0900
-Subject: [PATCH] src/tests: Set XDG_SESSION_TYPE in
- ibus-desktop-testing-runner
-
-mutter 3.33.90 or later exits the session without loginctl.
-Now ibus-desktop-testing-runner has XDG_SESSION_TYPE forcibly
-not to exit gnome-shell.
----
- src/tests/ibus-desktop-testing-runner.in | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/src/tests/ibus-desktop-testing-runner.in b/src/tests/ibus-desktop-testing-runner.in
-index 3045d601..141e9b5b 100755
---- a/src/tests/ibus-desktop-testing-runner.in
-+++ b/src/tests/ibus-desktop-testing-runner.in
-@@ -157,6 +157,8 @@ _EOF
- echo "$XDG_LANG_NEW" > $XDG_LOCALE_FILE
- fi
- fi
-+ # `su` command does not run loginctl
-+ export XDG_SESSION_TYPE='x11'
- }
-
- run_dbus_daemon()
-@@ -175,6 +177,7 @@ run_desktop()
- PID_XORG=$!
- sleep 1
- export DISPLAY=$DISPLAY
-+ echo "Running $DESKTOP_COMMAND with $USER in `tty`"
- $DESKTOP_COMMAND &
- PID_GNOME_SESSION=$!
- sleep 30
---
-2.21.0
-
next reply other threads:[~2026-05-31 2:07 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-31 2:07 Takao Fujiwara [this message]
2026-05-31 2:07 [rpms/ibus] autotool: Delete upstreamed ibus-HEAD.patch Takao Fujiwara
2026-05-31 2:07 Takao Fujiwara
2026-05-31 2:08 Takao Fujiwara
2026-05-31 2:08 Takao Fujiwara
2026-05-31 2:08 Takao Fujiwara
2026-05-31 2:09 Takao Fujiwara
2026-05-31 2:09 Takao Fujiwara
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=178019323583.1.7662532533405135163.rpms-ibus-f1eb5c5acd31@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