diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7908136 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/ibus-table-1.5.0.tar.gz diff --git a/.ibus-table.metadata b/.ibus-table.metadata new file mode 100644 index 0000000..8ebef23 --- /dev/null +++ b/.ibus-table.metadata @@ -0,0 +1 @@ +b620432528aed46d1e1c484698379a6165e5a8ab SOURCES/ibus-table-1.5.0.tar.gz diff --git a/SOURCES/0001-Changes-in-dconf-values-now-get-applied-immediately.patch b/SOURCES/0001-Changes-in-dconf-values-now-get-applied-immediately.patch new file mode 100644 index 0000000..a2ef173 --- /dev/null +++ b/SOURCES/0001-Changes-in-dconf-values-now-get-applied-immediately.patch @@ -0,0 +1,113 @@ +From fdda5c156d851446497bb042e1614ef1c55d9e92 Mon Sep 17 00:00:00 2001 +From: Mike FABIAN +Date: Thu, 10 Jan 2013 11:37:59 +0100 +Subject: [PATCH] Changes in dconf values now get applied immediately + +Changing values of dconf keys for example with + + dconf write /desktop/ibus/engine/table/cangjie3/chinesemode 3 + +was not applied immediately to the ibus-table engine, only +when changing to a different input method and back this +change was applied. + +This commit fixes this problem. +--- + engine/table.py | 72 ++++++++++++++++++++++++++++++++++++++++++--------------- + 1 file changed, 53 insertions(+), 19 deletions(-) + +diff --git a/engine/table.py b/engine/table.py +index e171949..24ca921 100644 +--- a/engine/table.py ++++ b/engine/table.py +@@ -26,6 +26,7 @@ __all__ = ( + ) + + import os ++import string + from gi.repository import IBus + from gi.repository import GLib + from curses import ascii +@@ -1894,27 +1895,60 @@ class tabengine (IBus.Engine): + return True + return False + ++ def config_section_normalize(self, section): ++ # This function replaces _: with - in the dconf ++ # section and converts to lower case to make ++ # the comparison of the dconf sections work correctly. ++ # I avoid using .lower() here because it is locale dependent, ++ # when using .lower() this would not achieve the desired ++ # effect of comparing the dconf sections case insentively ++ # in some locales, it would fail for example if Turkish ++ # locale (tr_TR.UTF-8) is set. ++ if type(section) == type(u''): ++ # translate() does not work in Python’s internal Unicode type ++ section = section.encode('utf-8') ++ return re.sub(r'[_:]', r'-', section).translate( ++ string.maketrans(string.ascii_uppercase, string.ascii_lowercase )) ++ + def config_value_changed_cb (self, config, section, name, value): ++ if self.config_section_normalize(self._config_section) != self.config_section_normalize(section): ++ return ++ print "config value %(n)s for engine %(en)s changed" %{'n': name, 'en': self._name} + value = variant_to_value(value) +- if section == self._config_section: +- if name == u'AutoCommit': +- self._auto_commit = value +- elif name == u'ChineseMode': +- self._editor._chinese_mode = value +- elif name == u'EnDefFullWidthLetter': +- self._full_width_letter[0] = value +- elif name == u'EnDefFullWidthPunct': +- self._full_width_punct[0] = value +- elif name == u'LookupTableOrientation': +- self._editor._lookup_table.set_orientation (value) +- elif name == u'LookupTableSelectKeys': +- self._editor.set_select_keys (value) +- elif name == u'OneChar': +- self._editor._onechar = value +- elif name == u'TabDefFullWidthLetter': +- self._full_width_letter[1] = value +- elif name == u'TabDefFullWidthPunct': +- self._full_width_punct[1] = value ++ if name == u'autocommit': ++ self._auto_commit = value ++ self._refresh_properties() ++ return ++ elif name == u'chinesemode': ++ self._editor._chinese_mode = value ++ self._refresh_properties() ++ return ++ elif name == u'endeffullwidthletter': ++ self._full_width_letter[0] = value ++ self._refresh_properties() ++ return ++ elif name == u'endeffullwidthpunct': ++ self._full_width_punct[0] = value ++ self._refresh_properties() ++ return ++ elif name == u'lookuptableorientation': ++ self._editor._lookup_table.set_orientation (value) ++ return ++ elif name == u'lookuptableselectkeys': ++ self._editor.set_select_keys (value) ++ return ++ elif name == u'onechar': ++ self._editor._onechar = value ++ self._refresh_properties() ++ return ++ elif name == u'tabdeffullwidthletter': ++ self._full_width_letter[1] = value ++ self._refresh_properties() ++ return ++ elif name == u'tabdeffullwidthpunct': ++ self._full_width_punct[1] = value ++ self._refresh_properties() ++ return + + # for further implementation :) + @classmethod +-- +1.7.11.7 + diff --git a/SOURCES/0001-Fix-typo-in-ibus-table-createdb-man-page.patch b/SOURCES/0001-Fix-typo-in-ibus-table-createdb-man-page.patch new file mode 100644 index 0000000..a1b60a8 --- /dev/null +++ b/SOURCES/0001-Fix-typo-in-ibus-table-createdb-man-page.patch @@ -0,0 +1,26 @@ +From 783d52a211b0e12f0c830e8c96a49682647faaf1 Mon Sep 17 00:00:00 2001 +From: Mike FABIAN +Date: Wed, 22 Jan 2014 12:11:18 +0100 +Subject: [PATCH 1/2] Fix typo in ibus-table-createdb man-page + +"for for" -> "for" +--- + engine/ibus-table-createdb.sgml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/engine/ibus-table-createdb.sgml b/engine/ibus-table-createdb.sgml +index 86c8336..6a1e439 100644 +--- a/engine/ibus-table-createdb.sgml ++++ b/engine/ibus-table-createdb.sgml +@@ -142,7 +142,7 @@ manpage.1: manpage.sgml + + + +- Do not create an index for for a database (Only for distribution purposes, a normal user should not use this flag!) ++ Do not create an index for a database (Only for distribution purposes, a normal user should not use this flag!) + + + +-- +1.8.4.2 + diff --git a/SOURCES/0001-Fix-typo-thanks-to-Mathieu-Bridon.patch b/SOURCES/0001-Fix-typo-thanks-to-Mathieu-Bridon.patch new file mode 100644 index 0000000..923c3bf --- /dev/null +++ b/SOURCES/0001-Fix-typo-thanks-to-Mathieu-Bridon.patch @@ -0,0 +1,75 @@ +From 03cba776da99b05218c2b1c86f3e93d3373f253e Mon Sep 17 00:00:00 2001 +From: Mike FABIAN +Date: Wed, 30 Jan 2013 07:41:54 +0100 +Subject: [PATCH 1/5] Fix typo, thanks to Mathieu Bridon + +--- + engine/chinese_variants.py | 4 ++-- + tools/generate-chinese-variants.py | 8 ++++---- + 2 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/engine/chinese_variants.py b/engine/chinese_variants.py +index e48d992..5dce934 100644 +--- a/engine/chinese_variants.py ++++ b/engine/chinese_variants.py +@@ -27,7 +27,7 @@ variants_table = { + # 1 = 1 << 0 simplified Chinese + # 2 = 1 << 1 traditional Chinese + # 3 = (1 | 1 << 1) used both in simplified *and* traditional Chinese +- # 4 = 2 << 3 mixture of simplified and traditional Chinese ++ # 4 = 1 << 2 mixture of simplified and traditional Chinese + u'蘄': 2, + u'谈': 1, + u'預': 2, +@@ -6075,7 +6075,7 @@ def detect_chinese_category(phrase): + 1 = 1 << 0 simplified Chinese + 2 = 1 << 1 traditional Chinese + 3 = (1 | 1 << 1) used both in simplified *and* traditional Chinese +- 4 = 2 << 3 mixture of simplified and traditional Chinese ++ 4 = 1 << 2 mixture of simplified and traditional Chinese + ''' + # make sure that we got a unicode string + if type(phrase) != type(u''): +diff --git a/tools/generate-chinese-variants.py b/tools/generate-chinese-variants.py +index b846496..c54eaec 100755 +--- a/tools/generate-chinese-variants.py ++++ b/tools/generate-chinese-variants.py +@@ -58,7 +58,7 @@ variants_table_orig = { + # 1 = 1 << 0 simplified Chinese + # 2 = 1 << 1 traditional Chinese + # 3 = (1 | 1 << 1) used both in simplified *and* traditional Chinese +- # 4 = 2 << 3 mixture of simplified and traditional Chinese ++ # 4 = 1 << 2 mixture of simplified and traditional Chinese + # + # overrides can be added manually here. For example the following + # line marks the 〇 character as used in both +@@ -185,7 +185,7 @@ variants_table = { + # 1 = 1 << 0 simplified Chinese + # 2 = 1 << 1 traditional Chinese + # 3 = (1 | 1 << 1) used both in simplified *and* traditional Chinese +- # 4 = 2 << 3 mixture of simplified and traditional Chinese ++ # 4 = 1 << 2 mixture of simplified and traditional Chinese + ''') + + for phrase in variants_table_orig: +@@ -208,7 +208,7 @@ def detect_chinese_category(phrase): + 1 = 1 << 0 simplified Chinese + 2 = 1 << 1 traditional Chinese + 3 = (1 | 1 << 1) used both in simplified *and* traditional Chinese +- 4 = 2 << 3 mixture of simplified and traditional Chinese ++ 4 = 1 << 2 mixture of simplified and traditional Chinese + \'\'\' + # make sure that we got a unicode string + if type(phrase) != type(u''): +@@ -253,7 +253,7 @@ test_data = { + # 1 = 1 << 0 simplified Chinese + # 2 = 1 << 1 traditional Chinese + # 3 = (1 | 1 << 1) used both in simplified *and* traditional Chinese +- # 4 = 2 << 3 mixture of simplified and traditional Chinese ++ # 4 = 1 << 2 mixture of simplified and traditional Chinese + u'乌': 1, + u'烏': 2, + u'晞': 3, +-- +1.7.11.7 + diff --git a/SOURCES/0001-Make-comments-about-_chinese_mode-clearer.patch b/SOURCES/0001-Make-comments-about-_chinese_mode-clearer.patch new file mode 100644 index 0000000..f44b76a --- /dev/null +++ b/SOURCES/0001-Make-comments-about-_chinese_mode-clearer.patch @@ -0,0 +1,51 @@ +From 1c316e066f88f9555de5407f00b4be0b076fd42c Mon Sep 17 00:00:00 2001 +From: Mike FABIAN +Date: Thu, 24 Jan 2013 12:47:19 +0100 +Subject: [PATCH 1/2] Make comments about _chinese_mode clearer + +There was one obvious typo and the comments did not explain +the meaning of _chinese_mode clearly. +--- + engine/table.py | 14 +++++++------- + 1 file changed, 7 insertions(+), 7 deletions(-) + +diff --git a/engine/table.py b/engine/table.py +index e171949..c106a0a 100644 +--- a/engine/table.py ++++ b/engine/table.py +@@ -217,11 +217,11 @@ class editor(object): + if self._onechar == None: + self_onechar = False + # self._chinese_mode: the candidate filter mode, +- # 0 is simplify Chinese +- # 1 is traditional Chinese +- # 2 is Big charset mode, but simplify Chinese first +- # 3 is Big charset mode, but traditional Chinese first +- # 4 is Big charset mode. ++ # 0 means to show simplified Chinese only ++ # 1 means to show traditional Chinese only ++ # 2 means to show all characters but show simplified Chinese first ++ # 3 means to show all characters but show traditional Chinese first ++ # 4 means to show all characters + # we use LC_CTYPE or LANG to determine which one to use + self._chinese_mode = variant_to_value(self._config.get_value( + self._config_section, +@@ -636,13 +636,13 @@ class editor(object): + return candidates[:] + bm_index = self._pt.index('category') + if self._chinese_mode == 2: +- # big charset with SC first ++ # All Chinese characters with simplified Chinese first + return filter (lambda x: x[bm_index] & 1, candidates)\ + +filter (lambda x: x[bm_index] & (1 << 1) and \ + (not x[bm_index] & 1), candidates)\ + + filter (lambda x: x[bm_index] & (1 << 2), candidates) + elif self._chinese_mode == 3: +- # big charset with SC first ++ # All Chinese characters with traditional Chinese first + return filter (lambda x: x[bm_index] & (1 << 1), candidates)\ + +filter (lambda x: x[bm_index] & 1 and\ + (not x[bm_index] & (1<<1)) , candidates)\ +-- +1.7.11.7 + diff --git a/SOURCES/0002-Add-auto_select-functionality-to-select-the-first-ph.patch b/SOURCES/0002-Add-auto_select-functionality-to-select-the-first-ph.patch new file mode 100644 index 0000000..6486be6 --- /dev/null +++ b/SOURCES/0002-Add-auto_select-functionality-to-select-the-first-ph.patch @@ -0,0 +1,111 @@ +From a55783887e757f02078143c2d12031a33c9e9223 Mon Sep 17 00:00:00 2001 +From: bnauwelaerts +Date: Sat, 2 Feb 2013 13:03:48 +0100 +Subject: [PATCH 2/5] Add auto_select functionality to select the first phrase + when typing. Useful for Cyrillic transliteration. + +--- + engine/table.py | 26 +++++++++++++++++++++++--- + engine/tabsqlitedb.py | 1 + + tables/template.txt | 3 +++ + 3 files changed, 27 insertions(+), 3 deletions(-) + +diff --git a/engine/table.py b/engine/table.py +index c106a0a..4a10636 100644 +--- a/engine/table.py ++++ b/engine/table.py +@@ -228,6 +228,13 @@ class editor(object): + "ChineseMode")) + if self._chinese_mode == None: + self._chinese_mode = self.get_chinese_mode() ++ ++ self._auto_select = variant_to_value(self._config.get_value( ++ self._config_section, ++ "AutoSelect")) ++ if self._auto_select == None: ++ self._auto_select = self.db.get_ime_property('auto_select').lower() == u'true' ++ + + def init_select_keys(self): + # __select_keys: lookup table select keys/labels +@@ -728,7 +735,9 @@ class editor(object): + if ascii.ispunct (self._chars[0][-1].encode('ascii')) \ + or len (self._chars[0][:-1]) \ + in self.db.pkeylens \ +- or only_one_last: ++ or only_one_last \ ++ or self._auto_select: ++ + # because we use [!@#$%] to denote [12345] + # in py_mode, so we need to distinguish them + ## old manner: +@@ -750,7 +759,7 @@ class editor(object): + self._lookup_table.clear() + self._lookup_table.set_cursor_visible(True) + return False +- else: ++ else: + # this is not a punct or not a valid phrase + # last time + self._chars[1].append( self._chars[0].pop() ) +@@ -1142,11 +1151,19 @@ class tabengine (IBus.Engine): + self._full_width_punct[1] = self.db.get_ime_property('def_full_width_punct').lower() == u'true' + # some properties we will involved, Property is taken from scim. + #self._setup_property = Property ("setup", _("Setup")) ++ + self._auto_commit = variant_to_value(self._config.get_value( + self._config_section, + "AutoCommit")) + if self._auto_commit == None: + self._auto_commit = self.db.get_ime_property('auto_commit').lower() == u'true' ++ ++ self._auto_select = variant_to_value(self._config.get_value( ++ self._config_section, ++ "AutoSelect")) ++ if self._auto_select == None: ++ self._auto_select = self.db.get_ime_property('auto_select').lower() == u'true' ++ + # the commit phrases length + self._len_list = [0] + # connect to SpeedMeter +@@ -1736,7 +1753,10 @@ class tabengine (IBus.Engine): + sp_res = self._editor.space () + #return (KeyProcessResult,whethercommit,commitstring) + if sp_res[0]: +- self.commit_string (sp_res[1]) ++ if self._auto_select: ++ self.commit_string ("%s " %sp_res[1]) ++ else: ++ self.commit_string (sp_res[1]) + #self.add_string_len(sp_res[1]) + self.db.check_phrase (sp_res[1], sp_res[2]) + else: +diff --git a/engine/tabsqlitedb.py b/engine/tabsqlitedb.py +index 78fa85d..fa56053 100644 +--- a/engine/tabsqlitedb.py ++++ b/engine/tabsqlitedb.py +@@ -99,6 +99,7 @@ class tabsqlitedb: + 'user_can_define_phrase':'FALSE', + 'pinyin_mode':'FALSE', + 'dynamic_adjust':'FALSE', ++ 'auto_select':'false', + 'auto_commit':'false', + #'no_check_chars':u'', + 'description':'A IME under IBus Table', +diff --git a/tables/template.txt b/tables/template.txt +index 40bc915..f51cdf8 100644 +--- a/tables/template.txt ++++ b/tables/template.txt +@@ -63,6 +63,9 @@ MAX_KEY_LENGTH = 4 + ### Use auto_commit mode as default + AUTO_COMMIT = FALSE + ++### Automatically selects the first phrase when typing ++AUTO_SELECT = FALSE ++ + ### Use full width punctuation by default + DEF_FULL_WIDTH_PUNCT = TRUE + ### Not use full width letter by default +-- +1.7.11.7 + diff --git a/SOURCES/0002-Improve-detection-of-simplified-and-traditional-Chin.patch b/SOURCES/0002-Improve-detection-of-simplified-and-traditional-Chin.patch new file mode 100644 index 0000000..93b7912 --- /dev/null +++ b/SOURCES/0002-Improve-detection-of-simplified-and-traditional-Chin.patch @@ -0,0 +1,19914 @@ +From f17e9b3aecea7b6646da689a466341936bce1ee3 Mon Sep 17 00:00:00 2001 +From: Mike FABIAN +Date: Thu, 24 Jan 2013 17:37:27 +0100 +Subject: [PATCH 2/2] Improve detection of simplified and traditional Chinese +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Resolves: #857967 https://bugzilla.redhat.com/show_bug.cgi?id=857967 + +see also http://code.google.com/p/ibus/issues/detail?id=1492 +“unable to write 晞 with any of the two Wubi input methods” +晞 (wubi code = JQDH) cannot be written. + +- add a script generate-chinese-variants.py which parses + Unihan_Variants.txt from the Unihan database and generates another + Python script. The generated Python script contains a hash table + with information which characters are simplified, which + characters are traditional and which characters are both and + a small function using that hash table to detect whether a string + is traditional or simplified Chinese or both. +- use the generated script and function in tabsqlitedb.py instead + of the old way to distinguish between simplified and tradtional + Chinese which used test encoding to legacy encodings like gb2312 + and big5hkscs. + +The new way of simplified/traditional detection should give +better results. 晞 from issue 1492 is now classified as both +traditional and simplified Chinese, not only traditional as it +was with the old detection code. +--- + engine/chinese_variants.py | 6115 ++++++++++++++++ + engine/tabsqlitedb.py | 48 +- + tools/Unihan_Variants.txt | 13329 +++++++++++++++++++++++++++++++++++ + tools/generate-chinese-variants.py | 343 + + 4 files changed, 19789 insertions(+), 46 deletions(-) + create mode 100644 engine/chinese_variants.py + create mode 100644 tools/Unihan_Variants.txt + create mode 100755 tools/generate-chinese-variants.py + +diff --git a/engine/chinese_variants.py b/engine/chinese_variants.py +new file mode 100644 +index 0000000..e48d992 +--- /dev/null ++++ b/engine/chinese_variants.py +@@ -0,0 +1,6115 @@ ++#!/usr/bin/python ++# vim:fileencoding=utf-8:sw=4:et ++ ++# auto-generated by “generate-chinese-variants.py”, do not edit here! ++# ++# Copyright (c) 2013 Mike FABIAN ++# ++# 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 3.0 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 General Public License ++# along with this program. If not, see . ++ ++import sys ++reload (sys) ++sys.setdefaultencoding('utf-8') ++ ++variants_table = { ++ # Meaning of the bits in the values: ++ # 1 = 1 << 0 simplified Chinese ++ # 2 = 1 << 1 traditional Chinese ++ # 3 = (1 | 1 << 1) used both in simplified *and* traditional Chinese ++ # 4 = 2 << 3 mixture of simplified and traditional Chinese ++ u'蘄': 2, ++ u'谈': 1, ++ u'預': 2, ++ u'𫘤': 1, ++ u'媧': 2, ++ u'礦': 2, ++ u'鶩': 2, ++ u'悫': 1, ++ u'缪': 1, ++ u'临': 1, ++ u'犷': 1, ++ u'鄶': 2, ++ u'线': 1, ++ u'談': 2, ++ u'雏': 1, ++ u'鳓': 1, ++ u'織': 2, ++ u'遠': 2, ++ u'卢': 1, ++ u'緩': 2, ++ u'鱨': 2, ++ u'𨧱': 2, ++ u'歲': 2, ++ u'闹': 1, ++ u'鯽': 2, ++ u'覆': 2, ++ u'瀋': 2, ++ u'辊': 1, ++ u'劌': 2, ++ u'閎': 2, ++ u'鮒': 2, ++ u'应': 1, ++ u'䬝': 2, ++ u'檜': 2, ++ u'𨸟': 1, ++ u'騧': 2, ++ u'𪘯': 2, ++ u'漵': 2, ++ u'钸': 1, ++ u'赉': 1, ++ u'鍍': 2, ++ u'𩥑': 2, ++ u'屓': 2, ++ u'齕': 2, ++ u'跞': 1, ++ u'瑣': 2, ++ u'鏢': 2, ++ u'𩧦': 1, ++ u'𩿪': 2, ++ u'虯': 2, ++ u'䥱': 2, ++ u'併': 2, ++ u'须': 1, ++ u'贈': 2, ++ u'后': 3, ++ u'䦛': 2, ++ u'𩚥': 2, ++ u'鲩': 1, ++ u'憫': 2, ++ u'离': 1, ++ u'𩘺': 2, ++ u'鰾': 2, ++ u'𪉂': 1, ++ u'诇': 1, ++ u'浈': 1, ++ u'釋': 2, ++ u'鷓': 2, ++ u'䁖': 1, ++ u'蕘': 2, ++ u'櫝': 2, ++ u'譜': 2, ++ u'号': 1, ++ u'铹': 1, ++ u'节': 1, ++ u'袆': 1, ++ u'躊': 2, ++ u'厌': 1, ++ u'钎': 1, ++ u'紓': 2, ++ u'骒': 1, ++ u'褛': 1, ++ u'輟': 2, ++ u'锣': 1, ++ u'瞤': 2, ++ u'鬧': 2, ++ u'𨱉': 1, ++ u'克': 1, ++ u'鉍': 2, ++ u'坏': 1, ++ u'㧐': 1, ++ u'鹕': 1, ++ u'賞': 2, ++ u'𫁡': 1, ++ u'几': 1, ++ u'筧': 2, ++ u'㱩': 1, ++ u'腫': 2, ++ u'黪': 1, ++ u'饻': 1, ++ u'齿': 1, ++ u'斅': 2, ++ u'𩨐': 1, ++ u'䲟': 1, ++ u'鎡': 2, ++ u'嚣': 1, ++ u'閥': 2, ++ u'𣐤': 1, ++ u'溳': 2, ++ u'褲': 2, ++ u'錶': 2, ++ u'嘸': 2, ++ u'锺': 1, ++ u'摄': 1, ++ u'凍': 2, ++ u'铏': 1, ++ u'籔': 2, ++ u'㛣': 1, ++ u'学': 1, ++ u'鹨': 1, ++ u'诱': 1, ++ u'践': 1, ++ u'嫻': 2, ++ u'𤊀': 1, ++ u'标': 1, ++ u'琏': 1, ++ u'馒': 1, ++ u'暘': 2, ++ u'訛': 2, ++ u'谟': 1, ++ u'纨': 1, ++ u'誰': 2, ++ u'貴': 2, ++ u'隸': 2, ++ u'颼': 2, ++ u'毆': 2, ++ u'轉': 2, ++ u'剋': 2, ++ u'㳔': 1, ++ u'连': 1, ++ u'癣': 1, ++ u'艫': 2, ++ u'惬': 1, ++ u'遷': 2, ++ u'驻': 1, ++ u'鱿': 1, ++ u'輈': 2, ++ u'窑': 1, ++ u'𦈖': 1, ++ u'钥': 1, ++ u'麩': 2, ++ u'䴴': 2, ++ u'鐺': 2, ++ u'綿': 2, ++ u'鸾': 1, ++ u'觇': 1, ++ u'𣙎': 2, ++ u'鍠': 2, ++ u'镤': 1, ++ u'婦': 2, ++ u'绩': 1, ++ u'諱': 2, ++ u'賵': 2, ++ u'寻': 1, ++ u'飽': 2, ++ u'繾': 2, ++ u'會': 2, ++ u'誆': 2, ++ u'册': 1, ++ u'階': 2, ++ u'缓': 1, ++ u'颒': 1, ++ u'嶔': 2, ++ u'講': 2, ++ u'负': 1, ++ u'樱': 1, ++ u'记': 1, ++ u'䥇': 2, ++ u'問': 2, ++ u'当': 1, ++ u'叠': 1, ++ u'荫': 1, ++ u'轳': 1, ++ u'噹': 2, ++ u'𩘀': 2, ++ u'榉': 1, ++ u'阌': 1, ++ u'弒': 2, ++ u'騔': 2, ++ u'攖': 2, ++ u'挚': 1, ++ u'閡': 2, ++ u'撫': 2, ++ u'锶': 1, ++ u'帼': 1, ++ u'餾': 2, ++ u'𩤊': 2, ++ u'铋': 1, ++ u'鋏': 2, ++ u'飓': 1, ++ u'鑠': 2, ++ u'鉤': 2, ++ u'孪': 1, ++ u'慮': 2, ++ u'诵': 1, ++ u'當': 2, ++ u'釹': 2, ++ u'獺': 2, ++ u'嫿': 2, ++ u'怃': 1, ++ u'變': 2, ++ u'嚌': 2, ++ u'谛': 1, ++ u'訟': 2, ++ u'唡': 1, ++ u'連': 2, ++ u'鸧': 1, ++ u'蚬': 1, ++ u'貰': 2, ++ u'𣘷': 1, ++ u'缽': 2, ++ u'麼': 2, ++ u'蕁': 2, ++ u'襉': 2, ++ u'鵑': 2, ++ u'習': 2, ++ u'機': 2, ++ u'觞': 1, ++ u'灣': 2, ++ u'鷦': 2, ++ u'鯪': 2, ++ u'曬': 2, ++ u'兹': 1, ++ u'综': 1, ++ u'驿': 1, ++ u'搖': 2, ++ u'𦈚': 1, ++ u'躝': 2, ++ u'钡': 1, ++ u'銥': 2, ++ u'耮': 2, ++ u'鐶': 2, ++ u'儸': 2, ++ u'綻': 2, ++ u'鈺': 2, ++ u'𣺽': 1, ++ u'𩠴': 2, ++ u'过': 1, ++ u'闋': 2, ++ u'結': 2, ++ u'腘': 1, ++ u'镠': 1, ++ u'鍤': 2, ++ u'㿧': 2, ++ u'屦': 1, ++ u'饨': 1, ++ u'𩧱': 1, ++ u'執': 2, ++ u'瑶': 1, ++ u'牺': 1, ++ u'黽': 2, ++ u'寿': 1, ++ u'蚂': 1, ++ u'誊': 1, ++ u'蜗': 1, ++ u'贛': 2, ++ u'丝': 1, ++ u'澜': 1, ++ u'疠': 1, ++ u'𡄣': 2, ++ u'別': 2, ++ u'亲': 1, ++ u'讴': 1, ++ u'㜷': 2, ++ u'總': 2, ++ u'墾': 2, ++ u'佇': 2, ++ u'协': 1, ++ u'绒': 1, ++ u'驕': 2, ++ u'歟': 2, ++ u'離': 2, ++ u'药': 1, ++ u'极': 3, ++ u'計': 2, ++ u'禕': 2, ++ u'欞': 2, ++ u'產': 2, ++ u'缦': 1, ++ u'暫': 2, ++ u'礪': 2, ++ u'悯': 1, ++ u'丰': 1, ++ u'檳': 2, ++ u'贲': 1, ++ u'纻': 1, ++ u'鄺': 2, ++ u'㶽': 1, ++ u'𨸊': 1, ++ u'資': 2, ++ u'橈': 2, ++ u'雋': 2, ++ u'郏': 1, ++ u'啢': 2, ++ u'彦': 1, ++ u'篩': 2, ++ u'奪': 2, ++ u'据': 1, ++ u'鏹': 2, ++ u'鷽': 2, ++ u'签': 1, ++ u'氇': 1, ++ u'辆': 1, ++ u'瘋': 2, ++ u'瀏': 2, ++ u'庐': 1, ++ u'鶒': 2, ++ u'蠟': 2, ++ u'鈣': 2, ++ u'鰧': 2, ++ u'鲼': 1, ++ u'宾': 1, ++ u'濆': 2, ++ u'證': 2, ++ u'镍': 1, ++ u'齑': 1, ++ u'緒': 2, ++ u'臚': 2, ++ u'诞': 1, ++ u'虫': 1, ++ u'𩧪': 1, ++ u'擬': 2, ++ u'聯': 2, ++ u'詳': 2, ++ u'鑷': 2, ++ u'顿': 1, ++ u'悅': 2, ++ u'𨄄': 1, ++ u'檉': 2, ++ u'锌': 1, ++ u'餔': 2, ++ u'貝': 2, ++ u'䦟': 2, ++ u'樞': 2, ++ u'厣': 1, ++ u'嶧': 2, ++ u'枫': 1, ++ u'𩾆': 1, ++ u'谲': 1, ++ u'阶': 1, ++ u'禿': 2, ++ u'騾': 2, ++ u'杀': 1, ++ u'慄': 2, ++ u'韋': 2, ++ u'响': 1, ++ u'赜': 1, ++ u'盡': 2, ++ u'𡝠': 1, ++ u'魨': 2, ++ u'𩙩': 1, ++ u'鲒': 1, ++ u'輛': 2, ++ u'箨': 1, ++ u'嚶': 2, ++ u'簽': 2, ++ u'鶼': 2, ++ u'鹑': 1, ++ u'敗': 2, ++ u'潛': 2, ++ u'諞': 2, ++ u'𩣑': 2, ++ u'铢': 1, ++ u'凤': 1, ++ u'飪': 2, ++ u'乱': 1, ++ u'濰': 2, ++ u'長': 2, ++ u'𫛶': 1, ++ u'𩽻': 1, ++ u'饿': 1, ++ u'澅': 2, ++ u'𨸄': 1, ++ u'𨐈': 1, ++ u'騌': 2, ++ u'㺏': 2, ++ u'㒓': 2, ++ u'阔': 1, ++ u'䪗': 2, ++ u'趙': 2, ++ u'漚': 2, ++ u'閩': 2, ++ u'贮': 1, ++ u'撳': 2, ++ u'茲': 2, ++ u'餶': 2, ++ u'尸': 1, ++ u'锾': 1, ++ u'賃': 2, ++ u'苇': 1, ++ u'摈': 1, ++ u'穌': 2, ++ u'凑': 1, ++ u'铓': 1, ++ u'𨊸': 2, ++ u'鹤': 1, ++ u'语': 1, ++ u'鷹': 2, ++ u'鏽': 2, ++ u'䢀': 1, ++ u'𨮂': 2, ++ u'戇': 2, ++ u'託': 2, ++ u'䴙': 1, ++ u'䌝': 2, ++ u'鰣': 2, ++ u'弥': 1, ++ u'纤': 1, ++ u'鈧': 2, ++ u'䶮': 1, ++ u'紹': 2, ++ u'鲸': 1, ++ u'銼': 2, ++ u'喾': 1, ++ u'毂': 1, ++ u'轅': 2, ++ u'塋': 2, ++ u'呓': 1, ++ u'壠': 2, ++ u'鯢': 2, ++ u'韪': 1, ++ u'櫬': 2, ++ u'𢷮': 2, ++ u'驷': 1, ++ u'溅': 1, ++ u'輄': 2, ++ u'窍': 1, ++ u'導': 2, ++ u'划': 1, ++ u'栖': 1, ++ u'貙': 2, ++ u'颡': 1, ++ u'麥': 2, ++ u'瀦': 2, ++ u'钩': 1, ++ u'瘪': 1, ++ u'谮': 1, ++ u'鸺': 1, ++ u'跃': 1, ++ u'仅': 1, ++ u'僑': 2, ++ u'闓': 2, ++ u'赘': 1, ++ u'荜': 1, ++ u'绥': 1, ++ u'镨': 1, ++ u'諭': 2, ++ u'击': 1, ++ u'䦀': 1, ++ u'缏': 1, ++ u'鲎': 1, ++ u'謗': 2, ++ u'脛': 2, ++ u'鴣': 2, ++ u'帥': 2, ++ u'讬': 1, ++ u'簹': 2, ++ u'葉': 2, ++ u'奋': 1, ++ u'驍': 2, ++ u'陕': 1, ++ u'郦': 1, ++ u'㑩': 1, ++ u'软': 1, ++ u'魷': 2, ++ u'緸': 2, ++ u'殁': 1, ++ u'谄': 1, ++ u'禍': 2, ++ u'頌': 2, ++ u'玑': 1, ++ u'鈐': 2, ++ u'鐔': 2, ++ u'欖': 2, ++ u'辙': 1, ++ u'鶥': 2, ++ u'傧': 1, ++ u'𫘨': 1, ++ u'輮': 2, ++ u'𩠊': 1, ++ u'髋': 1, ++ u'姍': 2, ++ u'鳏': 1, ++ u'发': 1, ++ u'鱤': 2, ++ u'陨': 1, ++ u'勻': 2, ++ u'絺': 2, ++ u'薊': 2, ++ u'龎': 2, ++ u'瘓': 2, ++ u'嬡': 2, ++ u'鸣': 1, ++ u'粤': 1, ++ u'椭': 1, ++ u'𨊰': 2, ++ u'麸': 1, ++ u'嶺': 2, ++ u'赅': 1, ++ u'蝉': 1, ++ u'噓': 2, ++ u'燒': 2, ++ u'镕': 1, ++ u'诖': 1, ++ u'摟': 2, ++ u'駢': 2, ++ u'峤': 1, ++ u'灧': 2, ++ u'鏦': 2, ++ u'詫': 2, ++ u'闪': 1, ++ u'擴': 2, ++ u'顷': 1, ++ u'绸': 1, ++ u'鉻': 2, ++ u'兽': 1, ++ u'鑿': 2, ++ u'檁': 2, ++ u'謀': 2, ++ u'贄': 2, ++ u'暉': 2, ++ u'碍': 1, ++ u'餌': 2, ++ u'錐': 2, ++ u'锔': 1, ++ u'骡': 1, ++ u'鲥': 1, ++ u'𥆧': 1, ++ u'殫': 2, ++ u'䌰': 2, ++ u'騶': 2, ++ u'鰺': 2, ++ u'儼': 2, ++ u'𪉆': 1, ++ u'韓': 2, ++ u'哕': 1, ++ u'𩨏': 1, ++ u'塢': 2, ++ u'靨': 2, ++ u'𨅫': 1, ++ u'䞈': 2, ++ u'笋': 1, ++ u'厐': 1, ++ u'鄧': 2, ++ u'嘩': 2, ++ u'覬': 2, ++ u'戱': 2, ++ u'搵': 2, ++ u'薴': 2, ++ u'縹': 2, ++ u'詁': 2, ++ u'棂': 1, ++ u'𨱅': 1, ++ u'孋': 2, ++ u'擊': 2, ++ u'額': 2, ++ u'绎': 1, ++ u'鉑': 2, ++ u'鑕': 2, ++ u'論': 2, ++ u'賚': 2, ++ u'飢': 2, ++ u'鋦': 2, ++ u'譫': 2, ++ u'铪': 1, ++ u'𩽿': 1, ++ u'饷': 1, ++ u'幹': 2, ++ u'偽': 2, ++ u'燼': 2, ++ u'长': 1, ++ u'谀': 1, ++ u'鸌': 2, ++ u'鐐': 2, ++ u'園': 2, ++ u'鈔': 2, ++ u'鶡': 2, ++ u'缢': 1, ++ u'猪': 1, ++ u'檯': 2, ++ u'纷': 1, ++ u'䯅': 1, ++ u'鳋': 1, ++ u'髏': 2, ++ u'郓': 1, ++ u'虜': 2, ++ u'緡': 2, ++ u'鱠': 2, ++ u'驤': 2, ++ u'辂': 1, ++ u'莊': 2, ++ u'稏': 2, ++ u'馎': 1, ++ u'鞒': 1, ++ u'梘': 2, ++ u'颸': 2, ++ u'赁': 1, ++ u'镑': 1, ++ u'诚': 1, ++ u'𨇞': 2, ++ u'癧': 2, ++ u'僨': 2, ++ u'𩏪': 2, ++ u'滬': 2, ++ u'擰': 2, ++ u'聳': 2, ++ u'鉿': 2, ++ u'謄': 2, ++ u'脈': 2, ++ u'纍': 2, ++ u'锐': 1, ++ u'鲡': 1, ++ u'骥': 1, ++ u'𫄨': 1, ++ u'殯': 2, ++ u'夸': 1, ++ u'觃': 1, ++ u'𪉊': 1, ++ u'罌': 2, ++ u'哑': 1, ++ u'釓': 2, ++ u'動': 2, ++ u'鵠': 2, ++ u'𩙧': 1, ++ u'烩': 1, ++ u'灾': 1, ++ u'躂': 2, ++ u'紋': 2, ++ u'後': 2, ++ u'颎': 1, ++ u'輗': 2, ++ u'綠': 2, ++ u'霧': 2, ++ u'莴': 1, ++ u'傾': 2, ++ u'𨱁': 1, ++ u'鹍': 1, ++ u'𩧰': 1, ++ u'鉕': 2, ++ u'敛': 1, ++ u'损': 1, ++ u'铦': 1, ++ u'鋪': 2, ++ u'譯': 2, ++ u'腳': 2, ++ u'齷': 2, ++ u'塹': 2, ++ u'𨸀': 1, ++ u'榅': 1, ++ u'興': 2, ++ u'鰌': 2, ++ u'阐': 1, ++ u'挞': 1, ++ u'眦': 1, ++ u'鎩': 2, ++ u'溫': 2, ++ u'餺': 2, ++ u'錾': 1, ++ u'俁': 2, ++ u'籌': 2, ++ u'飏': 1, ++ u'㭎': 1, ++ u'毙': 1, ++ u'詘': 2, ++ u'鹠': 1, ++ u'𫓧': 1, ++ u'闽': 1, ++ u'𠞆': 2, ++ u'縋': 2, ++ u'谗': 1, ++ u'纠': 1, ++ u'鐧': 2, ++ u'責': 2, ++ u'肴': 1, ++ u'钼': 1, ++ u'𢋈': 1, ++ u'塏': 2, ++ u'痒': 1, ++ u'廠': 2, ++ u'韦': 1, ++ u'艳': 1, ++ u'鱷': 2, ++ u'皑': 1, ++ u'吒': 2, ++ u'鄔': 2, ++ u'𦈞': 1, ++ u'颥': 1, ++ u'銩': 2, ++ u'𫌨': 1, ++ u'䴬': 2, ++ u'掳': 1, ++ u'鸶': 1, ++ u'嬸': 2, ++ u'鈾': 2, ++ u'诃': 1, ++ u'囑': 2, ++ u'睐': 1, ++ u'僕': 2, ++ u'識': 2, ++ u'绡': 1, ++ u'齠': 2, ++ u'屢': 2, ++ u'饤': 1, ++ u'𫗧': 1, ++ u'噦': 2, ++ u'俫': 1, ++ u'賭': 2, ++ u'蛱': 1, ++ u'铽': 1, ++ u'凿': 1, ++ u'𤾀': 1, ++ u'𡑭': 2, ++ u'缋': 1, ++ u'骎': 1, ++ u'钒': 1, ++ u'贗': 2, ++ u'殘': 2, ++ u'𩬣': 1, ++ u'锧': 1, ++ u'鮸': 2, ++ u'閼': 2, ++ u'䭃': 2, ++ u'衅': 1, ++ u'曆': 2, ++ u'惊': 1, ++ u'瓒': 1, ++ u'違': 2, ++ u'慟': 2, ++ u'鳢': 1, ++ u'轫': 1, ++ u'襯': 2, ++ u'鵷': 2, ++ u'酿': 1, ++ u'阄': 1, ++ u'鰈': 2, ++ u'𨈌': 2, ++ u'𪚏': 1, ++ u'蠐': 2, ++ u'焖': 1, ++ u'废': 1, ++ u'挢': 1, ++ u'刬': 1, ++ u'键': 1, ++ u'脶': 1, ++ u'贾': 1, ++ u'铃': 1, ++ u'蛏': 1, ++ u'賓': 2, ++ u'兖': 1, ++ u'痙': 2, ++ u'坚': 1, ++ u'𣭤': 1, ++ u'駱': 2, ++ u'慶': 2, ++ u'藹': 2, ++ u'诽': 1, ++ u'鎂': 2, ++ u'馆': 1, ++ u'龊': 1, ++ u'讒': 2, ++ u'窜': 1, ++ u'鸟': 1, ++ u'䜥': 1, ++ u'沨': 1, ++ u'銬': 2, ++ u'單': 2, ++ u'礱': 2, ++ u'颰': 2, ++ u'缵': 1, ++ u'欽': 2, ++ u'誼': 2, ++ u'秆': 1, ++ u'繟': 2, ++ u'𠏢': 2, ++ u'触': 1, ++ u'独': 1, ++ u'𩙯': 1, ++ u'𫗮': 1, ++ u'维': 1, ++ u'艷': 2, ++ u'蹿': 1, ++ u'輔': 2, ++ u'钙': 1, ++ u'骝': 1, ++ u'簞': 2, ++ u'販': 2, ++ u'鐮': 2, ++ u'掷': 1, ++ u'蘺': 2, ++ u'𨰾': 1, ++ u'闃': 2, ++ u'囅': 2, ++ u'鯇': 2, ++ u'蟏': 1, ++ u'潔': 2, ++ u'镘': 1, ++ u'噚': 2, ++ u'𡭜': 1, ++ u'属': 1, ++ u'惡': 2, ++ u'曥': 2, ++ u'凫': 1, ++ u'埯': 1, ++ u'恶': 1, ++ u'垄': 1, ++ u'领': 1, ++ u'誒': 2, ++ u'餛': 2, ++ u'蔣': 2, ++ u'涨': 1, ++ u'爭': 2, ++ u'鎬': 2, ++ u'縵': 2, ++ u'讼': 1, ++ u'际': 1, ++ u'鱉': 2, ++ u'绊': 1, ++ u'蹕': 2, ++ u'鳞': 1, ++ u'𨋢': 2, ++ u'称': 1, ++ u'旸': 1, ++ u'轿': 1, ++ u'玁': 2, ++ u'鈀': 2, ++ u'儂': 2, ++ u'鐄': 2, ++ u'訐': 2, ++ u'谔': 1, ++ u'缞': 1, ++ u'辩': 1, ++ u'璯': 2, ++ u'纳': 1, ++ u'𩤲': 2, ++ u'尴': 1, ++ u'檻': 2, ++ u'蔺': 1, ++ u'輾': 2, ++ u'叁': 1, ++ u'苋': 1, ++ u'𡠹': 2, ++ u'卖': 1, ++ u'陘': 2, ++ u'彞': 2, ++ u'葤': 2, ++ u'哯': 2, ++ u'鯱': 2, ++ u'廳': 2, ++ u'戋': 1, ++ u'鶊': 2, ++ u'碜': 1, ++ u'鰟': 2, ++ u'抠': 1, ++ u'邬': 1, ++ u'紵': 2, ++ u'鲴': 1, ++ u'镅': 1, ++ u'緊': 2, ++ u'𨅍': 2, ++ u'赕': 1, ++ u'籟': 2, ++ u'臢': 2, ++ u'桧': 1, ++ u'详': 1, ++ u'烬': 1, ++ u'鹳': 1, ++ u'糴': 2, ++ u'職': 2, ++ u'書': 2, ++ u'䥽': 1, ++ u'锄': 1, ++ u'娆': 1, ++ u'𪎋': 1, ++ u'謐': 2, ++ u'贔': 2, ++ u'额': 1, ++ u'縞': 2, ++ u'疯': 1, ++ u'嬰': 2, ++ u'頲': 2, ++ u'勁': 2, ++ u'韃': 2, ++ u'罈': 2, ++ u'歐': 2, ++ u'浔': 1, ++ u'饜': 2, ++ u'荠': 1, ++ u'滩': 1, ++ u'轨': 1, ++ u'癮': 2, ++ u'製': 2, ++ u'湾': 1, ++ u'骆': 1, ++ u'鲊': 1, ++ u'攏': 2, ++ u'漓': 1, ++ u'瞘': 2, ++ u'堝': 2, ++ u'鴟': 2, ++ u'醬': 2, ++ u'稱': 2, ++ u'鮰': 2, ++ u'鶴': 2, ++ u'覼': 2, ++ u'鉁': 2, ++ u'烂': 1, ++ u'鹉': 1, ++ u'聍': 1, ++ u'詑': 2, ++ u'体': 1, ++ u'𨱕': 1, ++ u'埘': 1, ++ u'筛': 1, ++ u'铚': 1, ++ u'點': 2, ++ u'諦': 2, ++ u'俨': 1, ++ u'質': 2, ++ u'镯': 1, ++ u'練': 2, ++ u'𩐀': 1, ++ u'鈄': 2, ++ u'須': 2, ++ u'谐': 1, ++ u'岛': 1, ++ u'产': 1, ++ u'璫': 2, ++ u'娴': 1, ++ u'蓋': 2, ++ u'苏': 1, ++ u'燙': 2, ++ u'鹜': 1, ++ u'艤': 2, ++ u'表': 1, ++ u'䭪': 1, ++ u'壳': 1, ++ u'瀃': 2, ++ u'鮊': 2, ++ u'戏': 1, ++ u'辒': 1, ++ u'阗': 1, ++ u'纜': 2, ++ u'騟': 2, ++ u'䌥': 2, ++ u'护': 1, ++ u'紱': 2, ++ u'鲰': 1, ++ u'镁': 1, ++ u'饉': 2, ++ u'赑': 1, ++ u'濒': 1, ++ u'闖': 2, ++ u'籛': 2, ++ u'诪': 1, ++ u'顳': 2, ++ u'詿': 2, ++ u'销': 1, ++ u'錄': 2, ++ u'将': 1, ++ u'贐': 2, ++ u'謔': 2, ++ u'侧': 1, ++ u'横': 1, ++ u'环': 1, ++ u'鸲': 1, ++ u'釃': 2, ++ u'獄': 2, ++ u'浐': 1, ++ u'呖': 1, ++ u'绝': 1, ++ u'齜': 2, ++ u'拥': 1, ++ u'荤': 1, ++ u'嗫': 1, ++ u'㭴': 1, ++ u'摶': 2, ++ u'缇': 1, ++ u'鲆': 1, ++ u'妈': 1, ++ u'骊': 1, ++ u'䞌': 1, ++ u'躒': 2, ++ u'鴛': 2, ++ u'𨄣': 2, ++ u'𩶰': 2, ++ u'鉅': 2, ++ u'竊': 2, ++ u'𨱑': 1, ++ u'評': 2, ++ u'铖': 1, ++ u'絛': 2, ++ u'飞': 1, ++ u'慣': 2, ++ u'賦': 2, ++ u'镫': 1, ++ u'緰': 2, ++ u'饳': 1, ++ u'婵': 1, ++ u'懸': 2, ++ u'濼': 2, ++ u'阀': 1, ++ u'熅': 2, ++ u'𩨈': 1, ++ u'踐': 2, ++ u'攢': 2, ++ u'让': 1, ++ u'听': 1, ++ u'錮': 2, ++ u'鴲': 2, ++ u'場': 2, ++ u'撷': 1, ++ u'梿': 1, ++ u'謾': 2, ++ u'鋃': 2, ++ u'灄': 2, ++ u'鳇': 1, ++ u'党': 1, ++ u'緝': 2, ++ u'闭': 1, ++ u'獮': 2, ++ u'絲': 2, ++ u'𩧵': 1, ++ u'嚀': 2, ++ u'閂': 2, ++ u'龆': 1, ++ u'馊': 1, ++ u'樓': 2, ++ u'鸛': 2, ++ u'粜': 1, ++ u'舣': 1, ++ u'谧': 1, ++ u'钬': 1, ++ u'厮': 1, ++ u'缱': 1, ++ u'𩢴': 2, ++ u'芸': 1, ++ u'貼': 2, ++ u'䮾': 2, ++ u'㛀': 1, ++ u'魉': 1, ++ u'𪻐': 1, ++ u'襕': 1, ++ u'𫍙': 1, ++ u'𩙫': 1, ++ u'啭': 1, ++ u'绰': 1, ++ u'驳': 1, ++ u'葷': 2, ++ u'蹻': 2, ++ u'泼': 1, ++ u'堊': 2, ++ u'鲝': 1, ++ u'𨐇': 1, ++ u'𤶧': 1, ++ u'渦': 2, ++ u'鈮': 2, ++ u'鰲': 2, ++ u'头': 1, ++ u'斷': 2, ++ u'䌸': 1, ++ u'榿': 2, ++ u'囁': 2, ++ u'着': 1, ++ u'鏃': 2, ++ u'僅': 2, ++ u'敌': 1, ++ u'臏': 2, ++ u'𪉎': 1, ++ u'仑': 1, ++ u'诓': 1, ++ u'𩠏': 1, ++ u'鍘': 2, ++ u'糝': 2, ++ u'鵜': 2, ++ u'㧟': 1, ++ u'书': 1, ++ u'铭': 1, ++ u'凯': 1, ++ u'苹': 1, ++ u'恺': 1, ++ u'賽': 2, ++ u'猃': 1, ++ u'紇': 2, ++ u'颊': 1, ++ u'欓': 2, ++ u'锗': 1, ++ u'则': 1, ++ u'尝': 1, ++ u'綜': 2, ++ u'䀥': 1, ++ u'憤': 2, ++ u'货': 1, ++ u'殨': 2, ++ u'閬': 2, ++ u'縱': 2, ++ u'馴': 2, ++ u'莸': 1, ++ u'𩨍': 1, ++ u'细': 1, ++ u'蹑': 1, ++ u'衕': 2, ++ u'雖': 2, ++ u'变': 1, ++ u'捣': 1, ++ u'塵': 2, ++ u'蕷': 2, ++ u'轻': 1, ++ u'䱽': 2, ++ u'𩠀': 1, ++ u'羅': 2, ++ u'訌': 2, ++ u'憑': 2, ++ u'缚': 1, ++ u'鎝': 2, ++ u'覡': 2, ++ u'䲣': 1, ++ u'欢': 1, ++ u'愦': 1, ++ u'薩': 2, ++ u'纯': 1, ++ u'础': 1, ++ u'鳃': 1, ++ u'鋇': 2, ++ u'軏': 2, ++ u'晔': 1, ++ u'奖': 1, ++ u'緙': 2, ++ u'鱘': 2, ++ u'㛟': 1, ++ u'啞': 2, ++ u'蹤': 2, ++ u'獲': 2, ++ u'韵': 1, ++ u'跹': 1, ++ u'庄': 1, ++ u'㔉': 1, ++ u'栋': 1, ++ u'队': 1, ++ u'㖞': 1, ++ u'谣': 1, ++ u'伥': 1, ++ u'嶮': 2, ++ u'厲': 2, ++ u'𧜵': 2, ++ u'隴': 2, ++ u'䦶': 1, ++ u'貸': 2, ++ u'挽': 1, ++ u'饁': 2, ++ u'屃': 1, ++ u'則': 2, ++ u'镉': 1, ++ u'蝕': 2, ++ u'癟': 2, ++ u'闞': 2, ++ u'询': 1, ++ u'执': 1, ++ u'顫': 2, ++ u'鹯': 1, ++ u'泸': 1, ++ u'虿': 1, ++ u'倆': 2, ++ u'璉': 2, ++ u'锈': 1, ++ u'脐': 1, ++ u'砖': 1, ++ u'鲙': 1, ++ u'军': 1, ++ u'𩾄': 1, ++ u'樢': 2, ++ u'躥': 2, ++ u'鰮': 2, ++ u'鈲': 2, ++ u'蠶': 2, ++ u'䌼': 1, ++ u'鏇': 2, ++ u'觋': 1, ++ u'藓': 1, ++ u'𪉒': 1, ++ u'狝': 1, ++ u'棡': 2, ++ u'襠': 2, ++ u'滥': 1, ++ u'轤': 2, ++ u'籮': 2, ++ u'嗳': 1, ++ u'骂': 1, ++ u'径': 1, ++ u'𫐉': 1, ++ u'隊': 2, ++ u'责': 1, ++ u'严': 1, ++ u'澤': 2, ++ u'茧': 1, ++ u'劲': 1, ++ u'趸': 1, ++ u'莼': 1, ++ u'𥵃': 2, ++ u'鹅': 1, ++ u'處': 2, ++ u'飖': 1, ++ u'铞': 1, ++ u'諢': 2, ++ u'饫': 1, ++ u'婭': 2, ++ u'镳': 1, ++ u'護': 2, ++ u'腻': 1, ++ u'𩨀': 1, ++ u'阈': 1, ++ u'斕': 2, ++ u'龙': 1, ++ u'級': 2, ++ u'计': 1, ++ u'椢': 1, ++ u'挦': 1, ++ u'攪': 2, ++ u'鄲': 2, ++ u'吴': 1, ++ u'贺': 1, ++ u'𩾋': 1, ++ u'撿': 2, ++ u'穀': 2, ++ u'黃': 2, ++ u'巅': 1, ++ u'請': 2, ++ u'翙': 1, ++ u'鹘': 1, ++ u'嵚': 1, ++ u'遜': 2, ++ u'坞': 1, ++ u'毡': 1, ++ u'詠': 2, ++ u'淥': 2, ++ u'駭': 2, ++ u'闵': 1, ++ u'迹': 1, ++ u'䋻': 2, ++ u'松': 1, ++ u'馂': 1, ++ u'瀇': 2, ++ u'辎': 1, ++ u'頗': 2, ++ u'纘': 2, ++ u'炜': 1, ++ u'㞞': 2, ++ u'沤': 1, ++ u'耧': 1, ++ u'䜩': 1, ++ u'㨫': 1, ++ u'冲': 1, ++ u'电': 1, ++ u'钴': 1, ++ u'幃': 2, ++ u'䙓': 1, ++ u'懒': 1, ++ u'蕕': 2, ++ u'硗': 1, ++ u'鯖': 2, ++ u'鷚': 2, ++ u'韞': 2, ++ u'驫': 2, ++ u'藪': 2, ++ u'鱯': 2, ++ u'狰': 1, ++ u'陳': 2, ++ u'滸': 2, ++ u'褌': 2, ++ u'与': 1, ++ u'邝': 1, ++ u'瘞': 2, ++ u'誡': 2, ++ u'侣': 1, ++ u'𠲥': 1, ++ u'箫': 1, ++ u'綯': 2, ++ u'鸮': 1, ++ u'進': 2, ++ u'訶': 2, ++ u'組': 2, ++ u'采': 1, ++ u'囉': 2, ++ u'诋': 1, ++ u'䓕': 1, ++ u'给': 1, ++ u'寫': 2, ++ u'飭': 2, ++ u'巯': 1, ++ u'鋱': 2, ++ u'𣍰': 1, ++ u'铵': 1, ++ u'軹': 2, ++ u'決': 2, ++ u'䗿': 2, ++ u'缃': 1, ++ u'颂': 1, ++ u'嶄': 2, ++ u'钊': 1, ++ u'躎': 2, ++ u'餗': 2, ++ u'錛': 2, ++ u'锟': 1, ++ u'涤': 1, ++ u'枨': 1, ++ u'馬': 2, ++ u'爱': 1, ++ u'鎰': 2, ++ u'驁': 2, ++ u'鱅': 2, ++ u'陉': 1, ++ u'瓊': 2, ++ u'滎': 2, ++ u'髖': 2, ++ u'鳚': 1, ++ u'凜': 2, ++ u'雞': 2, ++ u'裢': 1, ++ u'鵯': 2, ++ u'珰': 1, ++ u'懼': 2, ++ u'綁': 2, ++ u'𩰀': 2, ++ u'异': 1, ++ u'𩨄': 1, ++ u'熉': 2, ++ u'踌': 1, ++ u'紖': 2, ++ u'咛': 1, ++ u'鞝': 2, ++ u'漢': 2, ++ u'讥': 1, ++ u'膩': 2, ++ u'窯': 2, ++ u'𥐰': 1, ++ u'贶': 1, ++ u'撻': 2, ++ u'凉': 1, ++ u'諏': 2, ++ u'願': 2, ++ u'闱': 1, ++ u'鏵': 2, ++ u'价': 1, ++ u'䋿': 2, ++ u'龂': 1, ++ u'閆': 2, ++ u'鎊': 2, ++ u'覎': 2, ++ u'蠣': 2, ++ u'𪾢': 1, ++ u'缭': 1, ++ u'钰': 1, ++ u'垲': 1, ++ u'鵁': 2, ++ u'轍': 2, ++ u'𧹗': 1, ++ u'鷖': 2, ++ u'壘': 2, ++ u'档': 1, ++ u'𩡺': 2, ++ u'绬': 1, ++ u'驯': 1, ++ u'炉': 1, ++ u'撑': 1, ++ u'茔': 1, ++ u'簖': 1, ++ u'颙': 1, ++ u'㤘': 1, ++ u'財': 2, ++ u'渢': 2, ++ u'誥': 2, ++ u'頮': 2, ++ u'谶': 1, ++ u'診': 2, ++ u'絀': 2, ++ u'駃': 2, ++ u'僉': 2, ++ u'诏': 1, ++ u'饘': 2, ++ u'靜': 2, ++ u'赠': 1, ++ u'櫥': 2, ++ u'惩': 1, ++ u'确': 1, ++ u'铱': 1, ++ u'癲': 2, ++ u'钆': 1, ++ u'冈': 1, ++ u'欏': 2, ++ u'鼗': 1, ++ u'锛': 1, ++ u'瞜': 2, ++ u'錟': 2, ++ u'涠': 1, ++ u'殤': 2, ++ u'縭': 2, ++ u'墮': 2, ++ u'嚲': 2, ++ u'𤪺': 2, ++ u'昽': 1, ++ u'绂': 1, ++ u'驅': 2, ++ u'𦣎': 2, ++ u'罗': 1, ++ u'鳖': 1, ++ u'蓦': 1, ++ u'翬': 2, ++ u'魯': 2, ++ u'創': 2, ++ u'轷': 1, ++ u'羁': 1, ++ u'崂': 1, ++ u'禅': 1, ++ u'圆': 1, ++ u'鈈': 2, ++ u'谌': 1, ++ u'𩢸': 2, ++ u'岗': 1, ++ u'编': 1, ++ u'覥': 2, ++ u'纫': 1, ++ u'鬮': 2, ++ u'嘰': 2, ++ u'锲': 1, ++ u'铇': 1, ++ u'軋': 2, ++ u'𥽖': 2, ++ u'𫛛': 1, ++ u'䅪': 1, ++ u'壯': 2, ++ u'釵': 2, ++ u'诹': 1, ++ u'𩧭': 1, ++ u'栏': 1, ++ u'讎': 2, ++ u'𦈓': 1, ++ u'𪄕': 2, ++ u'嬙': 2, ++ u'阛': 1, ++ u'唝': 1, ++ u'伡': 1, ++ u'訣': 2, ++ u'萧': 1, ++ u'鲬': 1, ++ u'宮': 2, ++ u'喲': 2, ++ u'侶': 2, ++ u'蒼': 2, ++ u'饅': 2, ++ u'赍': 1, ++ u'駚': 2, ++ u'哜': 1, ++ u'鏞': 2, ++ u'鹫': 1, ++ u'顯': 2, ++ u'㗲': 2, ++ u'烴': 2, ++ u'櫸': 2, ++ u'擼': 2, ++ u'纁': 2, ++ u'餄': 2, ++ u'嘆': 2, ++ u'錈': 2, ++ u'脔': 1, ++ u'嶗': 2, ++ u'骙': 1, ++ u'砚': 1, ++ u'钝': 1, ++ u'躡': 2, ++ u'氢': 1, ++ u'崬': 2, ++ u'騮': 2, ++ u'鐲': 2, ++ u'廁': 2, ++ u'觏': 1, ++ u'魘': 2, ++ u'镜': 1, ++ u'满': 1, ++ u'襤': 2, ++ u'择': 1, ++ u'荨': 1, ++ u'䁪': 2, ++ u'瑲': 2, ++ u'郵': 2, ++ u'蓽': 2, ++ u'笃': 1, ++ u'鲂': 1, ++ u'邊': 2, ++ u'椏': 2, ++ u'䞐': 1, ++ u'鴗': 2, ++ u'澠': 2, ++ u'鶬': 2, ++ u'樹': 2, ++ u'许': 1, ++ u'鹁': 1, ++ u'鉉': 2, ++ u'𨱍': 1, ++ u'虑': 1, ++ u'飚': 1, ++ u'俠': 2, ++ u'賢': 2, ++ u'胪': 1, ++ u'緬': 2, ++ u'饯': 1, ++ u'偵': 2, ++ u'燴': 2, ++ u'挂': 1, ++ u'誇': 2, ++ u'漊': 2, ++ u'厍': 1, ++ u'随': 1, ++ u'鲓': 1, ++ u'徕': 1, ++ u'璣': 2, ++ u'𣶩': 1, ++ u'鰨': 2, ++ u'弪': 1, ++ u'戬': 1, ++ u'閹': 2, ++ u'镎': 1, ++ u'軟': 2, ++ u'铣': 1, ++ u'巩': 1, ++ u'惫': 1, ++ u'驼': 1, ++ u'绿': 1, ++ u'沈': 1, ++ u'個': 2, ++ u'餑': 2, ++ u'攙': 2, ++ u'無': 2, ++ u'鎢': 2, ++ u'眥': 2, ++ u'𩾈': 1, ++ u'谳': 1, ++ u'殲': 2, ++ u'鈷': 2, ++ u'頻': 2, ++ u'鸿': 1, ++ u'綾': 2, ++ u'胀': 1, ++ u'賈': 2, ++ u'鋌': 2, ++ u'嗎': 2, ++ u'飐': 1, ++ u'靥': 1, ++ u'盤': 2, ++ u'𩵩': 2, ++ u'诲': 1, ++ u'渊': 1, ++ u'劍': 2, ++ u'鞏': 2, ++ u'鶓': 2, ++ u'掗': 2, ++ u'箧': 1, ++ u'鴨': 2, ++ u'钹': 1, ++ u'笼': 1, ++ u'𠉂': 1, ++ u'磑': 2, ++ u'奐': 2, ++ u'绕': 1, ++ u'迟': 1, ++ u'鯧': 2, ++ u'繪': 2, ++ u'荬': 1, ++ u'轴': 1, ++ u'构': 1, ++ u'鈍': 2, ++ u'頑': 2, ++ u'鸕': 2, ++ u'貞': 2, ++ u'颦': 1, ++ u'脫': 2, ++ u'贳': 1, ++ u'皺': 2, ++ u'蟄': 2, ++ u'𩨌': 1, ++ u'鏌': 2, ++ u'睏': 2, ++ u'駐': 2, ++ u'嫒': 1, ++ u'𩙥': 1, ++ u'編': 2, ++ u'蓮': 2, ++ u'导': 1, ++ u'鳾': 2, ++ u'蚃': 1, ++ u'钏': 1, ++ u'礒': 2, ++ u'䌖': 2, ++ u'沟': 1, ++ u'伞': 1, ++ u'鈠': 2, ++ u'鸨': 1, ++ u'讱': 1, ++ u'𦰴': 1, ++ u'傷': 2, ++ u'岿': 1, ++ u'么': 1, ++ u'赊': 1, ++ u'篑': 1, ++ u'饒': 2, ++ u'𥱔': 1, ++ u'諛': 2, ++ u'賟': 2, ++ u'難': 2, ++ u'煢': 2, ++ u'擯': 2, ++ u'詰': 2, ++ u'陸': 2, ++ u'𩢾': 2, ++ u'顼': 1, ++ u'撄': 1, ++ u'載': 2, ++ u'溈': 2, ++ u'鴕': 2, ++ u'莖': 2, ++ u'辞': 1, ++ u'猡': 1, ++ u'𫘣': 1, ++ u'𧔥': 2, ++ u'咤': 1, ++ u'鮦': 2, ++ u'缩': 1, ++ u'鶪': 2, ++ u'榲': 2, ++ u'圹': 1, ++ u'繓': 2, ++ u'鳔': 1, ++ u'襝': 2, ++ u'镥': 1, ++ u'绨': 1, ++ u'闺': 1, ++ u'壼': 2, ++ u'怂': 1, ++ u'争': 1, ++ u'閏': 2, ++ u'涟': 1, ++ u'錠': 2, ++ u'锤': 1, ++ u'礼': 1, ++ u'䍀': 1, ++ u'聂': 1, ++ u'詆': 2, ++ u'𫏋': 1, ++ u'𨱊': 1, ++ u'兌': 2, ++ u'顒': 2, ++ u'𧳕': 1, ++ u'臗': 2, ++ u'诛': 1, ++ u'湞': 2, ++ u'駧': 2, ++ u'廩': 2, ++ u'籪': 2, ++ u'𨅬': 1, ++ u'議': 2, ++ u'饼': 1, ++ u'幾': 2, ++ u'𨐅': 1, ++ u'𨸉': 1, ++ u'熌': 2, ++ u'𧶔': 2, ++ u'昙': 1, ++ u'骦': 1, ++ u'鲪': 1, ++ u'輳': 2, ++ u'梲': 2, ++ u'状': 1, ++ u'鴿': 2, ++ u'纾': 1, ++ u'权': 1, ++ u'迈': 1, ++ u'里': 1, ++ u'鷔': 2, ++ u'衝': 2, ++ u'鑥': 2, ++ u'奧': 2, ++ u'鹩': 1, ++ u'蛮': 1, ++ u'橱': 1, ++ u'鋶': 2, ++ u'铺': 1, ++ u'黾': 1, ++ u'肃': 1, ++ u'钋': 1, ++ u'權': 2, ++ u'颓': 1, ++ u'缒': 1, ++ u'檟': 2, ++ u'鐠': 2, ++ u'级': 1, ++ u'嬪': 2, ++ u'趱': 1, ++ u'讵': 1, ++ u'赆': 1, ++ u'譊': 2, ++ u'齒': 2, ++ u'給': 2, ++ u'虬': 1, ++ u'選': 2, ++ u'系': 1, ++ u'鹼': 2, ++ u'万': 1, ++ u'𦢈': 2, ++ u'𦈘': 1, ++ u'𫍰': 1, ++ u'鮪': 2, ++ u'憮': 2, ++ u'鰻': 2, ++ u'玺': 1, ++ u'𥼽': 2, ++ u'𣺼': 1, ++ u'蓀': 2, ++ u'裈': 1, ++ u'瑋': 2, ++ u'鳐': 1, ++ u'體': 2, ++ u'镡': 1, ++ u'鍥': 2, ++ u'饩': 1, ++ u'䫴': 2, ++ u'闶': 1, ++ u'鏺': 2, ++ u'膃': 2, ++ u'辇': 1, ++ u'開': 2, ++ u'馓': 1, ++ u'涛': 1, ++ u'輜': 2, ++ u'锠': 1, ++ u'館': 2, ++ u'䦳': 2, ++ u'邹': 1, ++ u'麽': 2, ++ u'擁': 2, ++ u'担': 1, ++ u'𨱆': 1, ++ u'𣗋': 1, ++ u'過': 2, ++ u'嵐': 2, ++ u'鹒': 1, ++ u'诟': 1, ++ u'員': 2, ++ u'釣': 2, ++ u'癢': 2, ++ u'壩': 2, ++ u'槳': 2, ++ u'譴': 2, ++ u'緻': 2, ++ u'𩽼': 1, ++ u'掄': 2, ++ u'榈': 1, ++ u'阍': 1, ++ u'綐': 2, ++ u'袞': 2, ++ u'鲦': 1, ++ u'悮': 1, ++ u'褳': 2, ++ u'鴻': 2, ++ u'𪉅': 1, ++ u'潇': 1, ++ u'览': 1, ++ u'韌': 2, ++ u'鯔': 2, ++ u'濜': 2, ++ u'𫛢': 1, ++ u'軲': 2, ++ u'银': 1, ++ u'繽': 2, ++ u'飾': 2, ++ u'𪘀': 2, ++ u'邏': 2, ++ u'猎': 1, ++ u'徑': 2, ++ u'骓': 1, ++ u'谜': 1, ++ u'梟': 2, ++ u'䬞': 2, ++ u'唢': 1, ++ u'轆': 2, ++ u'鵒': 2, ++ u'軛': 2, ++ u'慚': 2, ++ u'埡': 2, ++ u'鋣': 2, ++ u'畢': 2, ++ u'鳧': 2, ++ u'審': 2, ++ u'惯': 1, ++ u'蹰': 1, ++ u'櫳': 2, ++ u'鉸': 2, ++ u'绻': 1, ++ u'鱼': 1, ++ u'脅': 2, ++ u'锍': 1, ++ u'餕': 2, ++ u'膚': 2, ++ u'讞': 2, ++ u'瞶': 2, ++ u'鸻': 1, ++ u'汇': 1, ++ u'铌': 1, ++ u'灏': 1, ++ u'巒': 2, ++ u'飔': 1, ++ u'荙': 1, ++ u'赝': 1, ++ u'𨷲': 2, ++ u'極': 2, ++ u'勸': 2, ++ u'釺': 2, ++ u'搂': 1, ++ u'栊': 1, ++ u'庑': 1, ++ u'鮓': 2, ++ u'𩞯': 2, ++ u'斗': 1, ++ u'澛': 1, ++ u'𧶧': 2, ++ u'带': 1, ++ u'攬': 2, ++ u'䮳': 2, ++ u'喷': 1, ++ u'鲽': 1, ++ u'紼': 2, ++ u'𠯠': 1, ++ u'绑': 1, ++ u'鱒': 2, ++ u'晖': 1, ++ u'䋙': 2, ++ u'进': 1, ++ u'僥': 2, ++ u'轰': 1, ++ u'襴': 2, ++ u'㳽': 1, ++ u'國': 2, ++ u'鐍': 2, ++ u'𦈙': 1, ++ u'語': 2, ++ u'瘡': 2, ++ u'钢': 1, ++ u'麦': 1, ++ u'謳': 2, ++ u'锷': 1, ++ u'刹': 1, ++ u'為': 2, ++ u'尽': 1, ++ u'餿': 2, ++ u'浇': 1, ++ u'仆': 1, ++ u'诈': 1, ++ u'闌': 2, ++ u'駔': 2, ++ u'艙': 2, ++ u'𢫞': 1, ++ u'遥': 1, ++ u'䦁': 1, ++ u'颋': 1, ++ u'钓': 1, ++ u'谘': 1, ++ u'会': 1, ++ u'𩠠': 1, ++ u'鸤': 1, ++ u'犧': 2, ++ u'鐨': 2, ++ u'训': 1, ++ u'𨶲': 2, ++ u'鶹': 2, ++ u'㻏': 1, ++ u'𨸌': 1, ++ u'諗': 2, ++ u'鳣': 1, ++ u'嗩': 2, ++ u'詬': 2, ++ u'滯': 2, ++ u'聰': 2, ++ u'鱸': 2, ++ u'輅': 2, ++ u'撈': 2, ++ u'鬍': 2, ++ u'帏': 1, ++ u'吓': 1, ++ u'𪨗': 1, ++ u'視': 2, ++ u'辚': 1, ++ u'挝': 1, ++ u'缥': 1, ++ u'踯': 1, ++ u'騷': 2, ++ u'逻': 1, ++ u'髌': 1, ++ u'繏': 2, ++ u'郐': 1, ++ u'𣝕': 2, ++ u'赙': 1, ++ u'荝': 1, ++ u'磠': 2, ++ u'绤': 1, ++ u'剧': 1, ++ u'镩': 1, ++ u'駶': 2, ++ u'絹': 2, ++ u'闾': 1, ++ u'䢁': 1, ++ u'樂': 2, ++ u'怆': 1, ++ u'馋': 1, ++ u'傑': 2, ++ u'間': 2, ++ u'嚕': 2, ++ u'业': 1, ++ u'綣': 2, ++ u'锨': 1, ++ u'朴': 1, ++ u'鲹': 1, ++ u'冻': 1, ++ u'棁': 1, ++ u'滅': 2, ++ u'孌': 2, ++ u'诗': 1, ++ u'穢': 2, ++ u'䉲': 2, ++ u'幺': 2, ++ u'矿': 1, ++ u'蠁': 2, ++ u'𨸅': 1, ++ u'𪂆': 2, ++ u'𨐉': 1, ++ u'騍': 2, ++ u'阕': 1, ++ u'躚': 2, ++ u'𦈝': 1, ++ u'蒞': 2, ++ u'骢': 1, ++ u'險': 2, ++ u'輯': 2, ++ u'纺': 1, ++ u'刽': 1, ++ u'觀': 2, ++ u'浃': 1, ++ u'釐': 2, ++ u'鹥': 1, ++ u'痨': 1, ++ u'牽': 2, ++ u'链': 1, ++ u'骋': 1, ++ u'鲏': 1, ++ u'缎': 1, ++ u'𦂅': 2, ++ u'抛': 1, ++ u'撟': 2, ++ u'騠': 2, ++ u'纣': 1, ++ u'夢': 2, ++ u'鰤': 2, ++ u'匦': 1, ++ u'莱': 1, ++ u'戰': 2, ++ u'毁': 1, ++ u'荆': 1, ++ u'种': 1, ++ u'齎': 2, ++ u'珑': 1, ++ u'剐': 1, ++ u'𨤻': 2, ++ u'蓟': 1, ++ u'祢': 1, ++ u'郧': 1, ++ u'櫫': 2, ++ u'衬': 1, ++ u'艰': 1, ++ u'遼': 2, ++ u'謁': 2, ++ u'贅': 2, ++ u'暈': 2, ++ u'餍': 1, ++ u'嘓': 2, ++ u'锕': 1, ++ u'讖': 2, ++ u'螞': 2, ++ u'𣸣': 1, ++ u'鎦': 2, ++ u'嚨': 2, ++ u'谯': 1, ++ u'澮': 2, ++ u'憲': 2, ++ u'頷': 2, ++ u'弹': 1, ++ u'綺': 2, ++ u'鐿': 2, ++ u'賄': 2, ++ u'铔': 1, ++ u'幣': 2, ++ u'業': 2, ++ u'𨫒': 2, ++ u'敵': 2, ++ u'鯶': 2, ++ u'鷺': 2, ++ u'较': 1, ++ u'戆': 1, ++ u'鮋': 2, ++ u'縎': 2, ++ u'劑': 2, ++ u'𩾂': 1, ++ u'掛': 2, ++ u'䘞': 1, ++ u'䮫': 2, ++ u'袭': 1, ++ u'䭀': 2, ++ u'曉': 2, ++ u'鹎': 1, ++ u'瓕': 2, ++ u'峥': 1, ++ u'釧': 2, ++ u'牦': 1, ++ u'瑪': 2, ++ u'𢣭': 2, ++ u'襬': 2, ++ u'蕴': 1, ++ u'婶': 1, ++ u'訁': 2, ++ u'谅': 1, ++ u'嬋': 2, ++ u'鈑': 2, ++ u'圓': 2, ++ u'渙': 2, ++ u'宠': 1, ++ u'颢': 1, ++ u'銦': 2, ++ u'謫': 2, ++ u'钪': 1, ++ u'𧵳': 2, ++ u'贯': 1, ++ u'餷': 2, ++ u'窶': 2, ++ u'锿': 1, ++ u'诀': 1, ++ u'跄': 1, ++ u'蟈': 2, ++ u'鏐': 2, ++ u'闔': 2, ++ u'濘': 2, ++ u'內': 2, ++ u'险': 1, ++ u'繹': 2, ++ u'災': 2, ++ u'雾': 1, ++ u'攆': 2, ++ u'鲋': 1, ++ u'骏': 1, ++ u'礎': 2, ++ u'𫐐': 1, ++ u'邓': 1, ++ u'厕': 1, ++ u'䴖': 1, ++ u'𪞝': 1, ++ u'抟': 1, ++ u'鰠': 2, ++ u'騤': 2, ++ u'辭': 2, ++ u'測': 2, ++ u'馹': 2, ++ u'鞽': 2, ++ u'势': 1, ++ u'轂': 2, ++ u'蕆': 2, ++ u'應': 2, ++ u'荊': 2, ++ u'呐': 1, ++ u'軗': 2, ++ u'飣': 2, ++ u'罢': 1, ++ u'獪': 2, ++ u'绷': 1, ++ u'顸': 1, ++ u'謅': 2, ++ u'脉': 1, ++ u'尋': 2, ++ u'𪎊': 1, ++ u'鼍': 1, ++ u'續': 2, ++ u'㦎': 2, ++ u'锑': 1, ++ u'錕': 2, ++ u'紡': 2, ++ u'储': 1, ++ u'谫': 1, ++ u'鎪': 2, ++ u'榮': 2, ++ u'鸷': 1, ++ u'夹': 1, ++ u'鈿': 2, ++ u'熾': 2, ++ u'賀': 2, ++ u'係': 2, ++ u'諄': 2, ++ u'籋': 2, ++ u'黌': 2, ++ u'铐': 1, ++ u'鵡': 2, ++ u'魥': 2, ++ u'𫗦': 1, ++ u'烨': 1, ++ u'们': 1, ++ u'蟲': 2, ++ u'𩧿': 1, ++ u'壸': 1, ++ u'釾': 2, ++ u'䲁': 2, ++ u'澗': 2, ++ u'褘': 2, ++ u'𩬤': 1, ++ u'刪': 2, ++ u'漬': 2, ++ u'隽': 1, ++ u'县': 1, ++ u'況': 2, ++ u'绍': 1, ++ u'彌': 2, ++ u'顎': 2, ++ u'協': 2, ++ u'峡': 1, ++ u'繢': 2, ++ u'㭤': 1, ++ u'韧': 1, ++ u'转': 1, ++ u'蕰': 1, ++ u'𩲒': 1, ++ u'饸': 1, ++ u'偾': 1, ++ u'谁': 1, ++ u'𫚒': 1, ++ u'鈕': 2, ++ u'䦘': 2, ++ u'誚': 2, ++ u'簡': 2, ++ u'嶠': 2, ++ u'钦': 1, ++ u'贫': 1, ++ u'銪': 2, ++ u'锻': 1, ++ u'窺': 2, ++ u'嘽': 2, ++ u'评': 1, ++ u'闐': 2, ++ u'柜': 1, ++ u'締': 2, ++ u'驥': 2, ++ u'篤': 2, ++ u'適': 2, ++ u'蛲': 1, ++ u'𣽷': 1, ++ u'鳶': 2, ++ u'䦅': 1, ++ u'蒇': 1, ++ u'颏': 1, ++ u'銓': 2, ++ u'記': 2, ++ u'鸠': 1, ++ u'崢': 2, ++ u'頤': 2, ++ u'優': 2, ++ u'氬': 2, ++ u'閽': 2, ++ u'琼': 1, ++ u'濁': 2, ++ u'赂': 1, ++ u'腊': 1, ++ u'緍': 2, ++ u'魎': 2, ++ u'镒': 1, ++ u'捞': 1, ++ u'絢': 2, ++ u'铧': 1, ++ u'豬': 2, ++ u'𨁴': 1, ++ u'驸': 1, ++ u'鑼': 2, ++ u'辖': 1, ++ u'䪘': 2, ++ u'攝': 2, ++ u'缡': 1, ++ u'𩞦': 2, ++ u'动': 1, ++ u'殮': 2, ++ u'鰷': 2, ++ u'軀': 2, ++ u'摇': 1, ++ u'苈': 1, ++ u'鳌': 1, ++ u'譙': 2, ++ u'齡': 2, ++ u'绠': 1, ++ u'饥': 1, ++ u'鍩': 2, ++ u'诮': 1, ++ u'東': 2, ++ u'筹': 1, ++ u'𩧺': 1, ++ u'𩏾': 1, ++ u'氂': 2, ++ u'龋': 1, ++ u'馏': 1, ++ u'税': 1, ++ u'𩠇': 1, ++ u'錨': 2, ++ u'愴': 2, ++ u'钽': 1, ++ u'𨱂': 1, ++ u'虆': 2, ++ u'㧏': 1, ++ u'监': 1, ++ u'鑒': 2, ++ u'臟': 2, ++ u'廡': 2, ++ u'勩': 2, ++ u'𣍨': 1, ++ u'濫': 2, ++ u'赬': 2, ++ u'緷': 2, ++ u'并': 1, ++ u'剾': 2, ++ u'𨸁': 1, ++ u'澀': 2, ++ u'蠅': 2, ++ u'榄': 1, ++ u'舉': 2, ++ u'鰍': 2, ++ u'綌': 2, ++ u'阑': 1, ++ u'逕': 2, ++ u'標': 2, ++ u'徠': 2, ++ u'鲢': 1, ++ u'厨': 1, ++ u'檮': 2, ++ u'撲': 2, ++ u'鴷': 2, ++ u'纶': 1, ++ u'確': 2, ++ u'规': 1, ++ u'𪉉': 1, ++ u'𩟐': 2, ++ u'哒': 1, ++ u'釔': 2, ++ u'𢣚': 2, ++ u'鹡': 1, ++ u'㳢': 1, ++ u'顥': 2, ++ u'啧': 1, ++ u'諮': 2, ++ u'黶': 2, ++ u'𩣺': 2, ++ u'瑽': 2, ++ u'冁': 1, ++ u'垅': 1, ++ u'骇': 1, ++ u'礆': 2, ++ u'缊': 1, ++ u'貓': 2, ++ u'欒': 2, ++ u'𥐯': 1, ++ u'鐘': 2, ++ u'碛': 1, ++ u'纟': 1, ++ u'撣': 2, ++ u'谨': 1, ++ u'伪': 1, ++ u'馱': 2, ++ u'䊷': 2, ++ u'讽': 1, ++ u'亿': 1, ++ u'燁': 2, ++ u'齊': 2, ++ u'蕎': 2, ++ u'濕': 2, ++ u'乔': 1, ++ u'𡋗': 1, ++ u'飛': 2, ++ u'寝': 1, ++ u'㩜': 2, ++ u'絞': 2, ++ u'蓣': 1, ++ u'换': 1, ++ u'諧': 2, ++ u'烫': 1, ++ u'鉬': 2, ++ u'啮': 1, ++ u'顰': 2, ++ u'鹴': 1, ++ u'詼': 2, ++ u'滿': 2, ++ u'炀': 1, ++ u'娇': 1, ++ u'鴉': 2, ++ u'輕': 2, ++ u'莢': 2, ++ u'朥': 2, ++ u'覦': 2, ++ u'匭': 2, ++ u'疮': 1, ++ u'鰳': 2, ++ u'張': 2, ++ u'憶': 2, ++ u'蠻': 2, ++ u'参': 1, ++ u'鳈': 1, ++ u'恋': 1, ++ u'𥿊': 2, ++ u'苌': 1, ++ u'軔': 2, ++ u'剗': 2, ++ u'镙': 1, ++ u'幟': 2, ++ u'腡': 2, ++ u'𨵩': 2, ++ u'注': 1, ++ u'獭': 1, ++ u'问': 1, ++ u'声': 1, ++ u'罵': 2, ++ u'𢹿': 2, ++ u'閃': 2, ++ u'㜄': 2, ++ u'縊': 2, ++ u'锘': 1, ++ u'羟': 1, ++ u'质': 1, ++ u'个': 1, ++ u'猬': 1, ++ u'𠆿': 1, ++ u'颱': 2, ++ u'麵': 2, ++ u'缴': 1, ++ u'烁': 1, ++ u'顆': 2, ++ u'鹊': 1, ++ u'詒': 2, ++ u'鏗': 2, ++ u'哙': 1, ++ u'駛': 2, ++ u'诧': 1, ++ u'桦': 1, ++ u'鍬': 2, ++ u'矯': 2, ++ u'饰': 1, ++ u'阅': 1, ++ u'鰉': 2, ++ u'綈': 2, ++ u'舍': 1, ++ u'蠑': 2, ++ u'䴓': 1, ++ u'𥮜': 1, ++ u'鲞': 1, ++ u'𤞤': 1, ++ u'氩': 1, ++ u'躪': 2, ++ u'刭': 1, ++ u'報': 2, ++ u'悶': 2, ++ u'褻': 2, ++ u'輿': 2, ++ u'釀': 2, ++ u'鷈': 2, ++ u'態': 2, ++ u'𪉍': 1, ++ u'觐': 1, ++ u'浓': 1, ++ u'铮': 1, ++ u'胶': 1, ++ u'蛺': 2, ++ u'賾': 2, ++ u'𥖅': 2, ++ u'𫐄': 1, ++ u'颇': 1, ++ u'躓': 2, ++ u'阘': 1, ++ u'唚': 2, ++ u'頜': 2, ++ u'萤': 1, ++ u'覽': 2, ++ u'剀': 1, ++ u'酂': 1, ++ u'懍': 2, ++ u'埙': 1, ++ u'鳟': 1, ++ u'俩': 1, ++ u'瓯': 1, ++ u'驰': 1, ++ u'绳': 1, ++ u'櫻': 2, ++ u'錁': 2, ++ u'锅': 1, ++ u'鼉': 2, ++ u'纈': 2, ++ u'脍': 1, ++ u'专': 1, ++ u'鎖': 2, ++ u'墜': 2, ++ u'挡': 1, ++ u'膢': 2, ++ u'讦': 1, ++ u'鐯': 2, ++ u'鸳': 1, ++ u'註': 2, ++ u'𨰿': 1, ++ u'澾': 2, ++ u'𡋀': 1, ++ u'铄': 1, ++ u'静': 1, ++ u'盘': 1, ++ u'荡': 1, ++ u'轩': 1, ++ u'滨': 1, ++ u'㑯': 2, ++ u'𩧲': 1, ++ u'峴': 2, ++ u'藺': 2, ++ u'𫌀': 1, ++ u'瀂': 2, ++ u'馇': 1, ++ u'稆': 1, ++ u'输': 1, ++ u'熗': 2, ++ u'𫚙': 1, ++ u'㢝': 2, ++ u'餜': 2, ++ u'枣': 1, ++ u'𣠲': 2, ++ u'鲵': 1, ++ u'區': 2, ++ u'绉': 1, ++ u'彈': 2, ++ u'釗': 2, ++ u'鯛': 2, ++ u'繞': 2, ++ u'蟣': 2, ++ u'懷': 2, ++ u'蝸': 2, ++ u'乾': 2, ++ u'鈁': 2, ++ u'玀': 2, ++ u'备': 1, ++ u'羈': 2, ++ u'䌋': 2, ++ u'訑': 2, ++ u'谕': 1, ++ u'銖': 2, ++ u'钚': 1, ++ u'𦈡': 1, ++ u'誦': 2, ++ u'温': 1, ++ u'侨': 1, ++ u'錫': 2, ++ u'貪': 2, ++ u'锯': 1, ++ u'娱': 1, ++ u'撺': 1, ++ u'贿': 1, ++ u'僂': 2, ++ u'诐': 1, ++ u'兗': 2, ++ u'灭': 1, ++ u'飲': 2, ++ u'軾': 2, ++ u'厅': 1, ++ u'紆': 2, ++ u'蒋': 1, ++ u'䞍': 1, ++ u'蠨': 2, ++ u'𩶱': 2, ++ u'墳': 2, ++ u'辽': 1, ++ u'靂': 2, ++ u'剄': 2, ++ u'䙌': 1, ++ u'腎': 2, ++ u'毕': 1, ++ u'凙': 2, ++ u'鳛': 1, ++ u'𩙬': 1, ++ u'狯': 1, ++ u'彲': 2, ++ u'驴': 1, ++ u'泻': 1, ++ u'䥾': 1, ++ u'锁': 1, ++ u'餉': 2, ++ u'檔': 2, ++ u'𩖖': 1, ++ u'傘': 2, ++ u'缝': 1, ++ u'𩚛': 2, ++ u'螢': 2, ++ u'挥': 1, ++ u'䢨': 2, ++ u'鐫': 2, ++ u'讪': 1, ++ u'鈯': 2, ++ u'掺': 1, ++ u'铀': 1, ++ u'灃': 2, ++ u'飈': 2, ++ u'摋': 2, ++ u'络': 1, ++ u'擠': 2, ++ u'𤁣': 2, ++ u'荥': 1, ++ u'統': 2, ++ u'藶': 2, ++ u'瘂': 2, ++ u'龇': 1, ++ u'覓': 2, ++ u'刚': 1, ++ u'眬': 1, ++ u'鲱': 1, ++ u'細': 2, ++ u'驊': 2, ++ u'蹒': 1, ++ u'廝': 2, ++ u'痫': 1, ++ u'干': 1, ++ u'魴': 2, ++ u'腸': 2, ++ u'轼': 1, ++ u'毿': 2, ++ u'𩠉': 1, ++ u'谑': 1, ++ u'訕': 2, ++ u'钖': 1, ++ u'銚': 2, ++ u'縝': 2, ++ u'颞': 1, ++ u'锫': 1, ++ u'說': 2, ++ u'錯': 2, ++ u'餳': 2, ++ u'纲': 1, ++ u'䀹': 2, ++ u'贻': 1, ++ u'丽': 1, ++ u'梾': 1, ++ u'𩗀': 2, ++ u'囂': 2, ++ u'楓': 2, ++ u'诔': 1, ++ u'块': 1, ++ u'遙': 2, ++ u'鹝': 1, ++ u'无': 1, ++ u'槨': 2, ++ u'癭': 2, ++ u'𣍯': 1, ++ u'巰': 2, ++ u'黲': 2, ++ u'恹': 1, ++ u'銃': 2, ++ u'内': 1, ++ u'缆': 1, ++ u'洒': 1, ++ u'圖': 2, ++ u'鰜': 2, ++ u'𥬞': 1, ++ u'沧': 1, ++ u'伦': 1, ++ u'閭': 2, ++ u'傯': 2, ++ u'𡾱': 2, ++ u'莹': 1, ++ u'镂': 1, ++ u'築': 2, ++ u'饊': 2, ++ u'𪃏': 2, ++ u'濑': 1, ++ u'乐': 1, ++ u'赒': 1, ++ u'铗': 1, ++ u'叙': 1, ++ u'賧': 2, ++ u'鹰': 1, ++ u'顴': 2, ++ u'擷': 2, ++ u'滻': 2, ++ u'霁': 1, ++ u'將': 2, ++ u'梔': 2, ++ u'猙': 2, ++ u'紝': 2, ++ u'鮞': 2, ++ u'辦': 2, ++ u'親': 2, ++ u'玮': 1, ++ u'網': 2, ++ u'䌹': 1, ++ u'𩢡': 2, ++ u'忆': 1, ++ u'晋': 1, ++ u'呗': 1, ++ u'鵝': 2, ++ u'曠': 2, ++ u'櫨': 2, ++ u'㩳': 2, ++ u'鷲': 2, ++ u'蟶': 2, ++ u'臺': 2, ++ u'课': 1, ++ u'鶇': 2, ++ u'𦈎': 1, ++ u'云': 1, ++ u'讓': 2, ++ u'疗': 1, ++ u'嘖': 2, ++ u'錘': 2, ++ u'鴜': 2, ++ u'涧': 1, ++ u'並': 2, ++ u'謨': 2, ++ u'垫': 1, ++ u'钭': 1, ++ u'冯': 1, ++ u'缰': 1, ++ u'貽': 2, ++ u'洼': 1, ++ u'鹆': 1, ++ u'𨱒': 1, ++ u'務': 2, ++ u'駟': 2, ++ u'𤫩': 2, ++ u'矫': 1, ++ u'镬': 1, ++ u'剮': 2, ++ u'篳': 2, ++ u'饴': 1, ++ u'旷': 1, ++ u'阁': 1, ++ u'𥌃': 2, ++ u'𩨉': 1, ++ u'厘': 1, ++ u'骞': 1, ++ u'躦': 2, ++ u'𦨩': 1, ++ u'帱': 1, ++ u'蔷': 1, ++ u'輻': 2, ++ u'运': 1, ++ u'鱝': 2, ++ u'柠': 1, ++ u'詩': 2, ++ u'鋮': 2, ++ u'鳲': 2, ++ u'硵': 1, ++ u'諾': 2, ++ u'鲃': 1, ++ u'躏': 1, ++ u'皟': 2, ++ u'沣': 1, ++ u'萨': 1, ++ u'鮭': 2, ++ u'醱': 2, ++ u'瀰': 2, ++ u'𡞵': 2, ++ u'痉': 1, ++ u'赎': 1, ++ u'懑': 1, ++ u'罚': 1, ++ u'賣': 2, ++ u'俥': 2, ++ u'苧': 2, ++ u'马': 1, ++ u'绯': 1, ++ u'惻': 2, ++ u'锉': 1, ++ u'𤠋': 1, ++ u'脑': 1, ++ u'蜕': 1, ++ u'紙': 2, ++ u'岘': 1, ++ u'龚': 1, ++ u'订': 1, ++ u'鸯': 1, ++ u'鐳': 2, ++ u'耻': 1, ++ u'䌽': 1, ++ u'蘿': 2, ++ u'飀': 2, ++ u'籃': 2, ++ u'黄': 1, ++ u'准': 1, ++ u'铈': 1, ++ u'滤': 1, ++ u'蕩': 2, ++ u'煱': 2, ++ u'㑳': 2, ++ u'围': 1, ++ u'觶': 2, ++ u'浹': 2, ++ u'𤳸': 2, ++ u'𥺅': 1, ++ u'鎇': 2, ++ u'瀆': 2, ++ u'見': 2, ++ u'辏': 1, ++ u'𦈒': 1, ++ u'堖': 2, ++ u'涣': 1, ++ u'妫': 1, ++ u'𩚵': 2, ++ u'驂': 2, ++ u'绅': 1, ++ u'豎': 2, ++ u'鯗': 2, ++ u'硖': 1, ++ u'繚': 2, ++ u'勝': 2, ++ u'橢': 2, ++ u'𡭬': 1, ++ u'𠵸': 1, ++ u'頁': 2, ++ u'禀': 1, ++ u'崃': 1, ++ u'憐': 2, ++ u'颖': 1, ++ u'钞': 1, ++ u'粮': 1, ++ u'锳': 1, ++ u'嘵': 2, ++ u'撾': 2, ++ u'闈': 2, ++ u'诌': 1, ++ u'緘': 2, ++ u'坟': 1, ++ u'槠': 1, ++ u'濤': 2, ++ u'𨱐': 1, ++ u'穭': 2, ++ u'寬': 2, ++ u'汹': 1, ++ u'軺': 2, ++ u'宁': 1, ++ u'邇': 2, ++ u'鸘': 2, ++ u'圞': 2, ++ u'谤': 1, ++ u'馭': 2, ++ u'嚳': 2, ++ u'边': 1, ++ u'膽': 2, ++ u'怼': 1, ++ u'鍆': 2, ++ u'镊': 1, ++ u'槍': 2, ++ u'轎': 2, ++ u'飗': 1, ++ u'铟': 1, ++ u'睞': 2, ++ u'胧': 1, ++ u'顬': 2, ++ u'㖊': 1, ++ u'茑': 1, ++ u'缙': 1, ++ u'鶚': 2, ++ u'騫': 2, ++ u'匱': 2, ++ u'阳': 1, ++ u'熲': 2, ++ u'舻': 1, ++ u'繃': 2, ++ u'𥧂': 1, ++ u'鳄': 1, ++ u'橋': 2, ++ u'嗊': 2, ++ u'晓': 1, ++ u'塗': 2, ++ u'齙': 2, ++ u'绘': 1, ++ u'剛': 2, ++ u'酝': 1, ++ u'曨': 2, ++ u'獱': 2, ++ u'诶': 1, ++ u'龃': 1, ++ u'讋': 2, ++ u'𨶏': 2, ++ u'渎': 1, ++ u'玛': 1, ++ u'疟': 1, ++ u'謠': 2, ++ u'贤': 1, ++ u'宫': 1, ++ u'颭': 2, ++ u'礬': 2, ++ u'銱': 2, ++ u'钵': 1, ++ u'䦷': 1, ++ u'𩙰': 1, ++ u'漸': 2, ++ u'鑊': 2, ++ u'癞': 1, ++ u'桢': 1, ++ u'饬': 1, ++ u'緯': 2, ++ u'鍰': 2, ++ u'镴': 1, ++ u'轸': 1, ++ u'腼': 1, ++ u'騁': 2, ++ u'简': 1, ++ u'弃': 1, ++ u'阉': 1, ++ u'骖': 1, ++ u'鲚': 1, ++ u'瀝': 2, ++ u'农': 1, ++ u'䮠': 2, ++ u'芦': 1, ++ u'鴯': 2, ++ u'纮': 1, ++ u'鯀': 2, ++ u'觌': 1, ++ u'浏': 1, ++ u'从': 1, ++ u'𪉑': 1, ++ u'鹙': 1, ++ u'翘': 1, ++ u'燜': 2, ++ u'啟': 2, ++ u'𫛞': 1, ++ u'詡': 2, ++ u'佣': 1, ++ u'台': 3, ++ u'諶': 2, ++ u'賺': 2, ++ u'恽': 1, ++ u'嶁': 2, ++ u'颃': 1, ++ u'缂': 1, ++ u'領': 2, ++ u'谠': 1, ++ u'暧': 1, ++ u'龭': 2, ++ u'縬': 2, ++ u'媯': 2, ++ u'閱': 2, ++ u'傳': 2, ++ u'鎵': 2, ++ u'昼': 1, ++ u'镆': 1, ++ u'乌': 1, ++ u'𩠌': 1, ++ u'铛': 1, ++ u'筚': 1, ++ u'鋟': 2, ++ u'裣': 1, ++ u'鹬': 1, ++ u'奮': 2, ++ u'鑰': 2, ++ u'鉴': 1, ++ u'擻': 2, ++ u'鄉': 2, ++ u'撐': 2, ++ u'茕': 1, ++ u'鶖': 2, ++ u'礙': 2, ++ u'鮚': 2, ++ u'醞': 2, ++ u'䲠': 1, ++ u'薦': 2, ++ u'禮': 2, ++ u'殺': 2, ++ u'鳀': 1, ++ u'癇': 2, ++ u'嗆': 2, ++ u'軌': 2, ++ u'幗': 2, ++ u'呛': 1, ++ u'盜': 2, ++ u'赡': 1, ++ u'惨': 1, ++ u'廬': 2, ++ u'𩧮': 1, ++ u'獵': 2, ++ u'跶': 1, ++ u'诺': 1, ++ u'岁': 1, ++ u'馃': 1, ++ u'趋': 1, ++ u'栎': 1, ++ u'餘': 2, ++ u'贠': 1, ++ u'丢': 1, ++ u'枧': 1, ++ u'缬': 1, ++ u'钱': 1, ++ u'决': 1, ++ u'𪀾': 2, ++ u'糁': 1, ++ u'鹂': 1, ++ u'竅': 2, ++ u'壙': 2, ++ u'鏟': 2, ++ u'扪': 1, ++ u'齬': 2, ++ u'篯': 1, ++ u'镰': 1, ++ u'噲': 2, ++ u'蝼': 1, ++ u'揿': 1, ++ u'鰁': 2, ++ u'綀': 2, ++ u'騅': 2, ++ u'圇': 2, ++ u'选': 1, ++ u'鲖': 1, ++ u'骚': 1, ++ u'皲': 1, ++ u'祃': 1, ++ u'廂': 2, ++ u'鯄': 2, ++ u'测': 1, ++ u'𪉕': 1, ++ u'顙': 2, ++ u'陝': 2, ++ u'聩': 1, ++ u'懨': 2, ++ u'繭': 2, ++ u'雲': 2, ++ u'牵': 1, ++ u'諺': 2, ++ u'征': 1, ++ u'骃': 1, ++ u'紂': 2, ++ u'钇': 1, ++ u'厉': 1, ++ u'躋': 2, ++ u'攒': 1, ++ u'檣': 2, ++ u'𩾇': 1, ++ u'庫': 2, ++ u'𡞱': 1, ++ u'劳': 1, ++ u'讹': 1, ++ u'樸': 2, ++ u'幀': 2, ++ u'鵂': 2, ++ u'譎': 2, ++ u'蕒': 2, ++ u'鳗': 1, ++ u'雛': 2, ++ u'郟': 2, ++ u'绫': 1, ++ u'慪': 2, ++ u'磯': 2, ++ u'陰': 2, ++ u'泷': 1, ++ u'𩙨': 1, ++ u'䥺': 1, ++ u'餅': 2, ++ u'贍': 2, ++ u'挩': 2, ++ u'鸫': 1, ++ u'崭': 1, ++ u'鈳': 2, ++ u'谷': 1, ++ u'飄': 2, ++ u'𩏽': 1, ++ u'𩭙': 2, ++ u'镝': 1, ++ u'轡': 2, ++ u'滠': 1, ++ u'荩': 1, ++ u'拨': 1, ++ u'困': 1, ++ u'闲': 1, ++ u'鮃': 2, ++ u'瘆': 1, ++ u'劉': 2, ++ u'辋': 1, ++ u'規': 2, ++ u'锜': 1, ++ u'鲭': 1, ++ u'紬': 2, ++ u'隱': 2, ++ u'誹': 2, ++ u'绁': 1, ++ u'鱂': 2, ++ u'陆': 1, ++ u'詎': 2, ++ u'葒': 2, ++ u'鷗': 2, ++ u'𧹖': 1, ++ u'硚': 1, ++ u'哝': 1, ++ u'𧉞': 1, ++ u'诣': 1, ++ u'鵬': 2, ++ u'积': 1, ++ u'譸': 2, ++ u'項': 2, ++ u'禄': 1, ++ u'鈉': 2, ++ u'谍': 1, ++ u'颚': 1, ++ u'侠': 1, ++ u'貢': 2, ++ u'戩': 2, ++ u'窮': 2, ++ u'嘱': 1, ++ u'錳': 2, ++ u'贷': 1, ++ u'鏈': 2, ++ u'潋': 1, ++ u'篘': 2, ++ u'坛': 1, ++ u'补': 1, ++ u'槤': 2, ++ u'髮': 2, ++ u'癱': 2, ++ u'埰': 2, ++ u'铲': 1, ++ u'灵': 1, ++ u'橹': 1, ++ u'輊': 2, ++ u'锎': 1, ++ u'芗': 1, ++ u'䮝': 2, ++ u'瀠': 2, ++ u'钣': 1, ++ u'骧': 1, ++ u'踴': 2, ++ u'鐸': 2, ++ u'场': 1, ++ u'𨇁': 2, ++ u'鏍': 2, ++ u'駑': 2, ++ u'腖': 2, ++ u'滟': 1, ++ u'赞': 1, ++ u'饦': 1, ++ u'屨': 2, ++ u'胫': 1, ++ u'齪': 2, ++ u'扬': 1, ++ u'嗹': 2, ++ u'黿': 2, ++ u'喎': 2, ++ u'颐': 1, ++ u'缕': 1, ++ u'謝': 2, ++ u'丟': 2, ++ u'涞': 1, ++ u'吣': 1, ++ u'禦': 2, ++ u'薮': 1, ++ u'氳': 2, ++ u'讲': 1, ++ u'爷': 1, ++ u'咸': 1, ++ u'砻': 1, ++ u'媼': 2, ++ u'曄': 2, ++ u'運': 2, ++ u'录': 1, ++ u'绔': 1, ++ u'諜': 2, ++ u'叢': 2, ++ u'姦': 2, ++ u'荭': 1, ++ u'轵': 1, ++ u'燶': 2, ++ u'广': 1, ++ u'斃': 2, ++ u'殇': 1, ++ u'蠆': 2, ++ u'踊': 1, ++ u'鐎': 2, ++ u'經': 2, ++ u'閣': 2, ++ u'𨤰': 1, ++ u'锸': 1, ++ u'胁': 1, ++ u'𠛅': 1, ++ u'湊': 2, ++ u'飑': 1, ++ u'聖': 2, ++ u'槛': 1, ++ u'虚': 1, ++ u'濟': 2, ++ u'鹪': 1, ++ u'蟯': 2, ++ u'潴': 1, ++ u'鏷': 2, ++ u'駻': 2, ++ u'筼': 1, ++ u'态': 1, ++ u'螄': 2, ++ u'爍': 2, ++ u'㜏': 2, ++ u'馐': 1, ++ u'縕': 2, ++ u'龔': 2, ++ u'訝': 2, ++ u'伟': 1, ++ u'犢': 2, ++ u'鰩': 2, ++ u'纪': 1, ++ u'术': 1, ++ u'課': 2, ++ u'𨱈': 1, ++ u'鲾': 1, ++ u'懀': 2, ++ u'𩸦': 2, ++ u'鵓': 2, ++ u'诜': 1, ++ u'灡': 2, ++ u'勢': 2, ++ u'癥': 2, ++ u'籩': 2, ++ u'鷨': 2, ++ u'廪': 1, ++ u'鑹': 2, ++ u'驽': 1, ++ u'糾': 2, ++ u'贊': 2, ++ u'𥨐': 2, ++ u'纓': 2, ++ u'餒': 2, ++ u'尔': 1, ++ u'貟': 2, ++ u'颧': 1, ++ u'復': 2, ++ u'耬': 2, ++ u'谴': 1, ++ u'㲿': 1, ++ u'𨐊': 1, ++ u'勋': 1, ++ u'浊': 1, ++ u'𩓣': 2, ++ u'櫛': 2, ++ u'監': 2, ++ u'磧': 2, ++ u'鵪': 2, ++ u'蓯': 2, ++ u'骐': 1, ++ u'紕': 2, ++ u'鲔': 1, ++ u'錡': 2, ++ u'锥': 1, ++ u'箦': 1, ++ u'螮': 2, ++ u'覲': 2, ++ u'䍁': 1, ++ u'擄': 2, ++ u'鉋': 2, ++ u'鹓': 1, ++ u'補': 2, ++ u'𥇢': 1, ++ u'铤': 1, ++ u'實': 2, ++ u'黨': 2, ++ u'腭': 1, ++ u'赵': 1, ++ u'𫛸': 1, ++ u'饽': 1, ++ u'屿': 1, ++ u'榇': 1, ++ u'谊': 1, ++ u'阎': 1, ++ u'頒': 2, ++ u'务': 1, ++ u'缨': 1, ++ u'悭': 1, ++ u'贴': 1, ++ u'制': 1, ++ u'碽': 2, ++ u'餼': 2, ++ u'苁': 1, ++ u'軉': 2, ++ u'鳕': 1, ++ u'㓥': 1, ++ u'驦': 2, ++ u'彨': 1, ++ u'迳': 1, ++ u'釷': 2, ++ u'壽': 2, ++ u'鷿': 2, ++ u'搅': 1, ++ u'𦈗': 1, ++ u'辈': 1, ++ u'鮐': 2, ++ u'圣': 1, ++ u'鐥': 2, ++ u'窦': 1, ++ u'鸩': 1, ++ u'粪': 1, ++ u'銶': 2, ++ u'钺': 1, ++ u'紿': 2, ++ u'揀': 2, ++ u'义': 1, ++ u'鍋': 2, ++ u'镏': 1, ++ u'𩎢': 2, ++ u'𨧜': 2, ++ u'闤': 2, ++ u'繩': 2, ++ u'話': 2, ++ u'棲': 2, ++ u'顽': 1, ++ u'绾': 1, ++ u'溇': 1, ++ u'謊': 2, ++ u'𩥉': 2, ++ u'㜢': 2, ++ u'妩': 1, ++ u'枭': 1, ++ u'谰': 1, ++ u'訴': 2, ++ u'区': 1, ++ u'鸼': 1, ++ u'夾': 2, ++ u'杂': 1, ++ u'𪉄': 1, ++ u'浆': 1, ++ u'觉': 1, ++ u'韍': 2, ++ u'壓': 2, ++ u'鯕': 2, ++ u'荚': 1, ++ u'櫟': 2, ++ u'面': 1, ++ u'继': 1, ++ u'繼': 2, ++ u'眍': 1, ++ u'鲐': 1, ++ u'笕': 1, ++ u'骔': 1, ++ u'輝': 2, ++ u'锡': 1, ++ u'帧': 1, ++ u'箪': 1, ++ u'戯': 1, ++ u'䲰': 2, ++ u'農': 2, ++ u'閶': 2, ++ u'顓': 2, ++ u'䗖': 1, ++ u'铠': 1, ++ u'鋤': 2, ++ u'飨': 1, ++ u'𩯒': 1, ++ u'𩽽': 1, ++ u'秾': 1, ++ u'𨉗': 1, ++ u'澇': 2, ++ u'谆': 1, ++ u'訊': 2, ++ u'贰': 1, ++ u'吶': 2, ++ u'点': 1, ++ u'纽': 1, ++ u'𤇃': 1, ++ u'時': 2, ++ u'鳑': 1, ++ u'繒': 2, ++ u'髕': 2, ++ u'𦟗': 1, ++ u'卤': 1, ++ u'驪': 2, ++ u'華': 2, ++ u'𣑶': 1, ++ u'價': 2, ++ u'鯿': 2, ++ u'搁': 1, ++ u'薀': 2, ++ u'栉': 1, ++ u'瘍': 2, ++ u'抚': 1, ++ u'儣': 2, ++ u'鈥': 2, ++ u'窪': 2, ++ u'肮': 1, ++ u'钶': 1, ++ u'颾': 2, ++ u'镋': 1, ++ u'𢫊': 1, ++ u'篔': 2, ++ u'臘': 2, ++ u'䋚': 2, ++ u'远': 1, ++ u'闠': 2, ++ u'团': 1, ++ u'鏤': 2, ++ u'峦': 1, ++ u'𩧨': 1, ++ u'惮': 1, ++ u'滲': 2, ++ u'詵': 2, ++ u'鹽': 2, ++ u'孿': 2, ++ u'蔂': 1, ++ u'同': 1, ++ u'帐': 1, ++ u'鴒': 2, ++ u'战': 1, ++ u'銣': 2, ++ u'鲧': 1, ++ u'断': 1, ++ u'萬': 2, ++ u'澱': 2, ++ u'鈸': 2, ++ u'儺': 2, ++ u'綽': 2, ++ u'鰼': 2, ++ u'潆': 1, ++ u'诉': 1, ++ u'楊': 2, ++ u'闍': 2, ++ u'獎': 2, ++ u'駕': 2, ++ u'棟': 2, ++ u'噠': 2, ++ u'镢': 1, ++ u'糧': 2, ++ u'齦': 2, ++ u'饪': 1, ++ u'諳': 2, ++ u'铷': 1, ++ u'叹': 1, ++ u'籼': 1, ++ u'飿': 2, ++ u'蚀': 1, ++ u'來': 2, ++ u'钌': 1, ++ u'缑': 1, ++ u'颔': 1, ++ u'丛': 1, ++ u'憚': 2, ++ u'贝': 1, ++ u'殞': 2, ++ u'霡': 1, ++ u'尧': 1, ++ u'鬩': 2, ++ u'禪': 2, ++ u'𪔭': 1, ++ u'𨎮': 2, ++ u'趲': 2, ++ u'𦃄': 2, ++ u'𨱇': 1, ++ u'绐': 1, ++ u'賜': 2, ++ u'雠': 1, ++ u'煥': 2, ++ u'蕭': 2, ++ u'揮': 2, ++ u'轱': 1, ++ u'矶': 1, ++ u'䜀': 2, ++ u'掃': 2, ++ u'涇': 2, ++ u'𨸆': 1, ++ u'箓': 1, ++ u'鰒': 2, ++ u'䲝': 1, ++ u'鎣': 2, ++ u'傥': 1, ++ u'褴': 1, ++ u'犹': 1, ++ u'錸': 2, ++ u'债': 1, ++ u'諉': 2, ++ u'铍': 1, ++ u'减': 1, ++ u'飕': 1, ++ u'槟': 1, ++ u'詞': 2, ++ u'坠': 1, ++ u'鹦': 1, ++ u'潰': 2, ++ u'诳': 1, ++ u'闷': 1, ++ u'獸': 2, ++ u'峽': 2, ++ u'駿': 2, ++ u'螀': 1, ++ u'怅': 1, ++ u'閌': 2, ++ u'縑': 2, ++ u'龐': 2, ++ u'馔': 1, ++ u'伛': 1, ++ u'谝': 1, ++ u'约': 1, ++ u'貲': 2, ++ u'隶': 1, ++ u'邺': 1, ++ u'嶼': 2, ++ u'赇': 1, ++ u'𡅏': 2, ++ u'釤': 2, ++ u'穩': 2, ++ u'鯨': 2, ++ u'彻': 1, ++ u'鱽': 1, ++ u'謂': 2, ++ u'纏': 2, ++ u'錒': 2, ++ u'嘔': 2, ++ u'𦈜': 1, ++ u'鲣': 1, ++ u'綹': 2, ++ u'强': 1, ++ u'见': 1, ++ u'壋': 2, ++ u'絎': 2, ++ u'哓': 1, ++ u'襖': 2, ++ u'魢': 2, ++ u'酦': 1, ++ u'叽': 1, ++ u'椁': 1, ++ u'验': 1, ++ u'邐': 2, ++ u'𫐓': 1, ++ u'餡': 2, ++ u'锩': 1, ++ u'𨶮': 2, ++ u'莲': 1, ++ u'瘿': 1, ++ u'閾': 2, ++ u'检': 1, ++ u'𨱃': 1, ++ u'滄': 2, ++ u'鹏': 1, ++ u'兑': 1, ++ u'捝': 1, ++ u'飠': 2, ++ u'寢': 2, ++ u'铨': 1, ++ u'𢫬': 1, ++ u'𩵹': 2, ++ u'偻': 1, ++ u'痾': 2, ++ u'訂': 2, ++ u'蘊': 2, ++ u'嬌': 2, ++ u'儐': 2, ++ u'鈒': 2, ++ u'𫚕': 1, ++ u'挜': 1, ++ u'缤': 1, ++ u'鎧': 2, ++ u'檭': 2, ++ u'謬': 2, ++ u'恆': 2, ++ u'忏': 1, ++ u'郑': 1, ++ u'緣': 2, ++ u'驢': 2, ++ u'𫓩': 1, ++ u'𩙪': 1, ++ u'杴': 2, ++ u'鯷': 2, ++ u'獼': 2, ++ u'響': 2, ++ u'辄': 1, ++ u'薈': 2, ++ u'谙': 1, ++ u'𨯅': 2, ++ u'頡': 2, ++ u'鸥': 1, ++ u'椫': 1, ++ u'颶': 2, ++ u'嶸': 2, ++ u'钾': 1, ++ u'赃': 1, ++ u'濄': 2, ++ u'饋': 2, ++ u'齏': 2, ++ u'偑': 2, ++ u'镓': 1, ++ u'瑩': 2, ++ u'门': 1, ++ u'囪': 2, ++ u'詭': 2, ++ u'𤽯': 1, ++ u'䕳': 2, ++ u'养': 1, ++ u'绺': 1, ++ u'溃': 1, ++ u'𣎑': 1, ++ u'鄒': 2, ++ u'怜': 1, ++ u'审': 1, ++ u'垩': 1, ++ u'舰': 1, ++ u'萴': 2, ++ u'鸸': 1, ++ u'证': 1, ++ u'鏑': 2, ++ u'煒': 2, ++ u'闕': 2, ++ u'㑔': 1, ++ u'棗': 2, ++ u'譖': 2, ++ u'赚': 1, ++ u'绣': 1, ++ u'饢': 2, ++ u'層': 2, ++ u'烧': 1, ++ u'諫': 2, ++ u'镪': 1, ++ u'扰': 1, ++ u'蛳': 1, ++ u'繸': 2, ++ u'铿': 1, ++ u'䦂': 1, ++ u'颌': 1, ++ u'𣘓': 1, ++ u'钔': 1, ++ u'枞': 1, ++ u'樫': 2, ++ u'辮': 2, ++ u'𠆲': 1, ++ u'𪔵': 2, ++ u'鮶': 2, ++ u'鶺': 2, ++ u'琿': 2, ++ u'驋': 2, ++ u'瓔': 2, ++ u'胜': 1, ++ u'𩳤': 2, ++ u'懲': 2, ++ u'𩽹': 1, ++ u'𧹕': 1, ++ u'酽': 1, ++ u'矾': 1, ++ u'舆': 1, ++ u'箋': 2, ++ u'萊': 2, ++ u'綏': 2, ++ u'递': 1, ++ u'愜': 2, ++ u'薟': 2, ++ u'𢘞': 1, ++ u'撵': 1, ++ u'纹': 1, ++ u'炽': 1, ++ u'賅': 2, ++ u'摊': 1, ++ u'铕': 1, ++ u'詖': 2, ++ u'換': 2, ++ u'顢': 2, ++ u'鉦': 2, ++ u'诫': 1, ++ u'闿': 1, ++ u'樁': 2, ++ u'讀': 2, ++ u'䢂': 1, ++ u'馌': 1, ++ u'閔': 2, ++ u'鰥': 2, ++ u'猻': 2, ++ u'鲺': 1, ++ u'难': 1, ++ u'毀': 2, ++ u'剑': 1, ++ u'珐': 1, ++ u'靓': 1, ++ u'呕': 1, ++ u'还': 1, ++ u'臜': 1, ++ u'穡': 2, ++ u'壢': 2, ++ u'癩': 2, ++ u'韨': 1, ++ u'艱': 2, ++ u'惲': 2, ++ u'競': 2, ++ u'鹹': 2, ++ u'卻': 2, ++ u'餎': 2, ++ u'𨴗': 2, ++ u'颣': 1, ++ u'瀨': 2, ++ u'踬': 1, ++ u'頸': 2, ++ u'诅': 1, ++ u'臉': 2, ++ u'𪁈': 2, ++ u'祎': 1, ++ u'滗': 1, ++ u'赖': 1, ++ u'譚': 2, ++ u'拟': 1, ++ u'磣': 2, ++ u'盧': 2, ++ u'镦': 1, ++ u'俭': 1, ++ u'黷': 2, ++ u'姹': 1, ++ u'铻': 1, ++ u'發': 2, ++ u'洁': 1, ++ u'誄': 2, ++ u'缍': 1, ++ u'钐': 1, ++ u'垒': 1, ++ u'猕': 1, ++ u'殚': 1, ++ u'鬥': 2, ++ u'氫': 2, ++ u'樯': 1, ++ u'縷': 2, ++ u'鮺': 2, ++ u'䅉': 1, ++ u'绌': 1, ++ u'驏': 2, ++ u'单': 1, ++ u'絡': 2, ++ u'鳠': 1, ++ u'煩': 2, ++ u'只': 1, ++ u'轭': 1, ++ u'緶': 2, ++ u'饹': 1, ++ u'燾': 2, ++ u'𨸂': 1, ++ u'𨐆': 1, ++ u'舊': 2, ++ u'㺍': 1, ++ u'箏': 2, ++ u'頎': 2, ++ u'熓': 2, ++ u'阒': 1, ++ u'辗': 1, ++ u'岡': 2, ++ u'傩': 1, ++ u'𢶫': 2, ++ u'輬': 2, ++ u'𣾷': 2, ++ u'餸': 2, ++ u'倾': 1, ++ u'賁': 2, ++ u'摆': 1, ++ u'巋': 2, ++ u'铑': 1, ++ u'𨱖': 1, ++ u'聞': 2, ++ u'㳡': 1, ++ u'鹢': 1, ++ u'误': 1, ++ u'数': 1, ++ u'祸': 1, ++ u'闻': 1, ++ u'国': 1, ++ u'𩏿': 1, ++ u'𨶀': 2, ++ u'亂': 2, ++ u'樅': 2, ++ u'龌': 1, ++ u'閐': 2, ++ u'鎔': 2, ++ u'众': 1, ++ u'沖': 2, ++ u'䌟': 2, ++ u'悞': 2, ++ u'红': 1, ++ u'璦': 2, ++ u'侬': 1, ++ u'画': 1, ++ u'淀': 1, ++ u'蝇': 1, ++ u'晝': 2, ++ u'廢': 2, ++ u'鯤': 2, ++ u'葱': 1, ++ u'糶': 2, ++ u'项': 1, ++ u'陽': 2, ++ u'蜆': 2, ++ u'𪎉': 1, ++ u'锒': 1, ++ u'御': 1, ++ u'骣': 1, ++ u'钧': 1, ++ u'厩': 1, ++ u'谬': 1, ++ u'騸': 2, ++ u'夺': 1, ++ u'迁': 1, ++ u'𨈊': 2, ++ u'觅': 1, ++ u'杆': 1, ++ u'𪉈': 1, ++ u'釕': 2, ++ u'𩠎': 1, ++ u'荞': 1, ++ u'塤': 2, ++ u'靦': 2, ++ u'軫': 2, ++ u'鳷': 2, ++ u'对': 1, ++ u'電': 2, ++ u'漁': 2, ++ u'袄': 1, ++ u'芈': 1, ++ u'納': 2, ++ u'鲌': 1, ++ u'㠏': 2, ++ u'隐': 1, ++ u'焕': 1, ++ u'謙': 2, ++ u'䘛': 1, ++ u'綢': 2, ++ u'錩': 2, ++ u'议': 1, ++ u'咼': 2, ++ u'棄': 2, ++ u'鹋': 1, ++ u'顏': 2, ++ u'盐': 1, ++ u'鋨': 2, ++ u'偿': 1, ++ u'現': 2, ++ u'谂': 1, ++ u'蘆': 2, ++ u'䌈': 2, ++ u'羋': 2, ++ u'騎': 2, ++ u'鐒': 2, ++ u'儔': 2, ++ u'攜': 2, ++ u'缠': 1, ++ u'鮣': 2, ++ u'贬': 1, ++ u'悵': 2, ++ u'帶': 2, ++ u'𣞻': 2, ++ u'璽': 2, ++ u'锼': 1, ++ u'刾': 1, ++ u'䯃': 1, ++ u'装': 1, ++ u'鳍': 1, ++ u'穎': 2, ++ u'瑒': 2, ++ u'𩤸': 2, ++ u'衚': 2, ++ u'懟': 2, ++ u'𩙦': 1, ++ u'觯': 1, ++ u'杰': 1, ++ u'韻': 2, ++ u'辀': 1, ++ u'栅': 1, ++ u'𦈉': 1, ++ u'簍': 2, ++ u'瀕': 2, ++ u'䴗': 1, ++ u'準': 2, ++ u'萝': 1, ++ u'鸡': 1, ++ u'颺': 2, ++ u'㐽': 1, ++ u'齋': 2, ++ u'屍': 2, ++ u'诘': 1, ++ u'繡': 2, ++ u'㭣': 1, ++ u'鏨': 2, ++ u'擲': 2, ++ u'聵': 2, ++ u'绶': 1, ++ u'驹': 1, ++ u'鑽': 2, ++ u'倀': 2, ++ u'錂': 2, ++ u'㶉': 1, ++ u'專': 2, ++ u'𪎍': 1, ++ u'𩾅': 1, ++ u'颛': 1, ++ u'宝': 1, ++ u'𤆡': 1, ++ u'㚯': 1, ++ u'禱': 2, ++ u'頰': 2, ++ u'鸴': 1, ++ u'釁': 2, ++ u'𪉌': 1, ++ u'觑': 1, ++ u'员': 1, ++ u'靚': 2, ++ u'统': 1, ++ u'擣': 2, ++ u'櫧': 2, ++ u'轪': 1, ++ u'鳳': 2, ++ u'橼': 1, ++ u'厂': 1, ++ u'妆': 1, ++ u'紉': 2, ++ u'鲈': 1, ++ u'错': 1, ++ u'綞': 2, ++ u'贩': 1, ++ u'户': 1, ++ u'聋': 1, ++ u'虏': 1, ++ u'𨱓': 1, ++ u'铘': 1, ++ u'埚': 1, ++ u'筝': 1, ++ u'来': 1, ++ u'俪': 1, ++ u'𧹓': 1, ++ u'噯': 2, ++ u'饱': 1, ++ u'懶': 2, ++ u'譽': 2, ++ u'儀': 2, ++ u'順': 2, ++ u'訒': 2, ++ u'咙': 1, ++ u'㘚': 2, ++ u'龟': 1, ++ u'愠': 1, ++ u'讧': 1, ++ u'碱': 1, ++ u'娲': 1, ++ u'纵': 1, ++ u'鼴': 2, ++ u'𩠂': 1, ++ u'𦪽': 2, ++ u'䰾': 2, ++ u'郁': 1, ++ u'鳉': 1, ++ u'苍': 1, ++ u'𩾌': 1, ++ u'鷳': 2, ++ u'罴': 1, ++ u'數': 2, ++ u'歼': 1, ++ u'瘅': 1, ++ u'𩞄': 2, ++ u'𤒎': 2, ++ u'树': 1, ++ u'辔': 1, ++ u'鐙': 2, ++ u'皚': 2, ++ u'騝': 2, ++ u'抢': 1, ++ u'梦': 1, ++ u'谩': 1, ++ u'钮': 1, ++ u'紳': 2, ++ u'漿': 2, ++ u'镃': 1, ++ u'噅': 2, ++ u'魇': 1, ++ u'屉': 1, ++ u'赓': 1, ++ u'臠': 2, ++ u'仪': 1, ++ u'鉭': 2, ++ u'顱': 2, ++ u'㧰': 1, ++ u'鹵': 2, ++ u'𨑹': 1, ++ u'泾': 1, ++ u'鬆': 2, ++ u'师': 1, ++ u'撏': 2, ++ u'瘘': 1, ++ u'骛': 1, ++ u'妝': 2, ++ u'砜': 1, ++ u'鲟': 1, ++ u'𦈠': 1, ++ u'𢬦': 1, ++ u'侩': 1, ++ u'騰': 2, ++ u'綵': 2, ++ u'䌶': 1, ++ u'壇': 2, ++ u'筆': 2, ++ u'臍': 2, ++ u'译': 1, ++ u'仓': 1, ++ u'镚': 1, ++ u'𧳟': 2, ++ u'棧': 2, ++ u'赪': 1, ++ u'凭': 1, ++ u'铯': 1, ++ u'籴': 1, ++ u'𢽾': 1, ++ u'銀': 2, ++ u'𡒄': 1, ++ u'缉': 1, ++ u'䞎': 1, ++ u'娛': 2, ++ u'蔥': 2, ++ u'輩': 2, ++ u'媰': 2, ++ u'縳': 2, ++ u'莶': 1, ++ u'薺': 2, ++ u'达': 1, ++ u'狀': 2, ++ u'终': 1, ++ u'嗚': 2, ++ u'捡': 1, ++ u'軨': 2, ++ u'濾': 2, ++ u'匀': 1, ++ u'适': 1, ++ u'唄': 2, ++ u'𩨆': 1, ++ u'䴔': 1, ++ u'嚙': 2, ++ u'挠': 1, ++ u'攤': 2, ++ u'亩': 1, ++ u'嘮': 2, ++ u'粵': 2, ++ u'鴴': 2, ++ u'𤈶': 1, ++ u'举': 1, ++ u'鋁': 2, ++ u'铅': 1, ++ u'黉': 1, ++ u'諑': 2, ++ u'賕': 2, ++ u'鹞': 1, ++ u'槧': 2, ++ u'試': 2, ++ u'煬': 2, ++ u'闯': 1, ++ u'嫱': 1, ++ u'读': 1, ++ u'楼': 1, ++ u'𨷿': 1, ++ u'縉': 2, ++ u'龈': 1, ++ u'犖': 2, ++ u'阙': 1, ++ u'䜣': 1, ++ u'营': 1, ++ u'猫': 1, ++ u'沪': 1, ++ u'缳': 1, ++ u'嶴': 2, ++ u'愷': 2, ++ u'𩥇': 2, ++ u'𧿈': 1, ++ u'懌': 2, ++ u'𨏠': 2, ++ u'卫': 1, ++ u'啯': 1, ++ u'驱': 1, ++ u'擺': 2, ++ u'滾': 2, ++ u'纇': 2, ++ u'鴆': 2, ++ u'輒': 2, ++ u'写': 1, ++ u'瀘': 2, ++ u'鲛': 1, ++ u'骟': 1, ++ u'綱': 2, ++ u'耸': 1, ++ u'䌺': 1, ++ u'絆': 2, ++ u'𤋏': 1, ++ u'试': 1, ++ u'盗': 1, ++ u'镖': 1, ++ u'鍚': 2, ++ u'饞': 2, ++ u'䉤': 1, ++ u'铫': 1, ++ u'癬': 2, ++ u'鋯': 2, ++ u'寵': 2, ++ u'恸': 1, ++ u'賻': 2, ++ u'颈': 1, ++ u'嘗': 2, ++ u'疖': 1, ++ u'玚': 1, ++ u'枢': 1, ++ u'𠌥': 2, ++ u'丧': 1, ++ u'润': 1, ++ u'莺': 1, ++ u'樿': 2, ++ u'鹇': 1, ++ u'術': 2, ++ u'煙': 2, ++ u'蓠': 1, ++ u'䟢': 1, ++ u'时': 1, ++ u'载': 1, ++ u'阂': 1, ++ u'鰆': 2, ++ u'斋': 1, ++ u'𩨊': 1, ++ u'備': 2, ++ u'焘': 1, ++ u'缜': 1, ++ u'鮟': 2, ++ u'挤': 1, ++ u'鴰': 2, ++ u'窵': 2, ++ u'脸': 1, ++ u'铁': 1, ++ u'療': 2, ++ u'鋅': 2, ++ u'賑': 2, ++ u'𥅘': 1, ++ u'鉚': 2, ++ u'類': 2, ++ u'懣': 2, ++ u'濧': 2, ++ u'闫': 1, ++ u'园': 1, ++ u'絰': 2, ++ u'𩧳': 1, ++ u'嫵': 2, ++ u'筴': 2, ++ u'跻': 1, ++ u'诿': 1, ++ u'門': 2, ++ u'鎄': 2, ++ u'馈': 1, ++ u'這': 2, ++ u'鸝': 2, ++ u'暢': 2, ++ u'伧': 1, ++ u'沦': 1, ++ u'邮': 1, ++ u'麲': 2, ++ u'秈': 2, ++ u'𩣏': 2, ++ u'灙': 2, ++ u'釘': 2, ++ u'勚': 1, ++ u'壞': 2, ++ u'桩': 1, ++ u'𩙭': 1, ++ u'绲': 1, ++ u'驵': 1, ++ u'𣯴': 2, ++ u'聹': 2, ++ u'䭿': 2, ++ u'锂': 1, ++ u'娈': 1, ++ u'養': 2, ++ u'茎': 1, ++ u'钗': 1, ++ u'厙': 2, ++ u'颟': 1, ++ u'貧': 2, ++ u'疭': 1, ++ u'匮': 1, ++ u'鸰': 1, ++ u'頴': 2, ++ u'韁': 2, ++ u'釅': 2, ++ u'鯉': 2, ++ u'藍': 2, ++ u'浒': 1, ++ u'绛': 1, ++ u'屜': 2, ++ u'拣': 1, ++ u'蕢': 2, ++ u'车': 1, ++ u'襪': 2, ++ u'繰': 2, ++ u'軻': 2, ++ u'還': 2, ++ u'骈': 1, ++ u'蒌': 1, ++ u'吗': 1, ++ u'錙': 2, ++ u'鴝': 2, ++ u'蜡': 3, ++ u'脥': 2, ++ u'澦': 2, ++ u'瘫': 1, ++ u'榪': 2, ++ u'鎮': 2, ++ u'稳': 1, ++ u'鶲': 2, ++ u'设': 1, ++ u'鱇': 2, ++ u'𥭉': 1, ++ u'絝': 2, ++ u'鳜': 1, ++ u'条': 1, ++ u'俦': 1, ++ u'镭': 1, ++ u'婳': 1, ++ u'緲': 2, ++ u'饵': 1, ++ u'懺': 2, ++ u'億': 2, ++ u'綇': 2, ++ u'嬈': 2, ++ u'頊': 2, ++ u'殓': 1, ++ u'谒': 1, ++ u'𩖗': 1, ++ u'龛': 1, ++ u'紜': 2, ++ u'愤': 1, ++ u'𧒭': 1, ++ u'锬': 1, ++ u'刮': 1, ++ u'纱': 1, ++ u'贼': 1, ++ u'參': 2, ++ u'繆': 2, ++ u'軑': 2, ++ u'韫': 1, ++ u'罰': 2, ++ u'𩯳': 2, ++ u'鞀': 2, ++ u'瀅': 2, ++ u'庆': 1, ++ u'墊': 2, ++ u'損': 2, ++ u'薌': 2, ++ u'渑': 1, ++ u'辐': 1, ++ u'够': 1, ++ u'訩': 2, ++ u'喬': 2, ++ u'銮': 1, ++ u'鲲': 1, ++ u'𨂺': 1, ++ u'誾': 2, ++ u'鍃': 2, ++ u'鏘': 2, ++ u'𨱎': 1, ++ u'恥': 2, ++ u'诨': 1, ++ u'鑭': 2, ++ u'狮': 1, ++ u'鹱': 1, ++ u'糲': 2, ++ u'页': 1, ++ u'䥿': 1, ++ u'鄆': 2, ++ u'撓': 2, ++ u'骗': 1, ++ u'侥': 1, ++ u'熱': 2, ++ u'阴': 1, ++ u'駁': 2, ++ u'㑈': 1, ++ u'词': 1, ++ u'济': 1, ++ u'烛': 1, ++ u'镞': 1, ++ u'拧': 1, ++ u'腦': 2, ++ u'飫': 2, ++ u'凱': 2, ++ u'铳': 1, ++ u'𫍲': 1, ++ u'諷': 2, ++ u'颀': 1, ++ u'缅': 1, ++ u'针': 1, ++ u'欍': 2, ++ u'誌': 2, ++ u'輥': 2, ++ u'枪': 1, ++ u'鎲': 2, ++ u'嚴': 2, ++ u'总': 1, ++ u'奁': 1, ++ u'组': 1, ++ u'𨵸': 2, ++ u'鳘': 1, ++ u'軤': 2, ++ u'敩': 1, ++ u'酱': 1, ++ u'珲': 1, ++ u'槶': 2, ++ u'䁻': 2, ++ u'濺': 2, ++ u'𩠁': 1, ++ u'綃': 2, ++ u'騂': 2, ++ u'阊': 1, ++ u'谎': 1, ++ u'斓': 1, ++ u'岙': 1, ++ u'紘': 2, ++ u'劝': 1, ++ u'椠': 1, ++ u'漤': 1, ++ u'莧': 2, ++ u'𪀦': 2, ++ u'窭': 1, ++ u'鄰': 2, ++ u'贸': 1, ++ u'为': 1, ++ u'铉': 1, ++ u'諍': 2, ++ u'嵘': 1, ++ u'鹚': 1, ++ u'鑞': 2, ++ u'詢': 2, ++ u'𩧫': 1, ++ u'㱮': 1, ++ u'闳': 1, ++ u'囵': 1, ++ u'请': 1, ++ u'码': 1, ++ u'馀': 1, ++ u'龄': 1, ++ u'閈': 2, ++ u'讌': 2, ++ u'𩶘': 2, ++ u'檢': 2, ++ u'悦': 1, ++ u'礫': 2, ++ u'缯': 1, ++ u'鲮': 1, ++ u'垴': 1, ++ u'鵃': 2, ++ u'鍇': 2, ++ u'痈': 1, ++ u'𨽏': 2, ++ u'蕓': 2, ++ u'籙': 2, ++ u'廚': 2, ++ u'鏜': 2, ++ u'桡': 1, ++ u'驭': 1, ++ u'狲': 1, ++ u'棶': 2, ++ u'擾': 2, ++ u'錆': 2, ++ u'锊': 1, ++ u'颗': 1, ++ u'銛': 2, ++ u'钟': 1, ++ u'玱': 1, ++ u'鈰': 2, ++ u'儲': 2, ++ u'鯁': 2, ++ u'韉': 2, ++ u'觍': 1, ++ u'𪉐': 1, ++ u'幘': 2, ++ u'鵚': 2, ++ u'惧': 1, ++ u'荦': 1, ++ u'蕪': 2, ++ u'𩧩': 1, ++ u'雳': 1, ++ u'恼': 1, ++ u'𡄔': 2, ++ u'骀': 1, ++ u'紅': 2, ++ u'鲄': 1, ++ u'〇': 3, ++ u'历': 1, ++ u'蒔': 2, ++ u'创': 1, ++ u'𥐟': 1, ++ u'瞞': 2, ++ u'败': 1, ++ u'样': 1, ++ u'讶': 1, ++ u'亸': 1, ++ u'鹃': 1, ++ u'𡮣': 2, ++ u'𨱏': 1, ++ u'擔': 2, ++ u'歡': 2, ++ u'䧢': 2, ++ u'賤': 2, ++ u'杩': 1, ++ u'饭': 1, ++ u'镵': 1, ++ u'轹': 1, ++ u'淺': 2, ++ u'腽': 1, ++ u'𥬀': 1, ++ u'頂': 2, ++ u'崄': 1, ++ u'𫚉': 1, ++ u'残': 1, ++ u'𨸎': 1, ++ u'庙': 1, ++ u'缘': 1, ++ u'鎛': 2, ++ u'碭': 2, ++ u'帮': 1, ++ u'倲': 2, ++ u'锴': 1, ++ u'輸': 2, ++ u'鳅': 1, ++ u'牆': 2, ++ u'恒': 1, ++ u'艦': 2, ++ u'鯫': 2, ++ u'鷯': 2, ++ u'勱': 2, ++ u'獰': 2, ++ u'畴': 1, ++ u'鶄': 2, ++ u'于': 1, ++ u'𦈑': 1, ++ u'薔': 2, ++ u'伣': 1, ++ u'谥': 1, ++ u'累': 1, ++ u'誶': 2, ++ u'貺': 2, ++ u'婁': 2, ++ u'節': 2, ++ u'緄': 2, ++ u'酇': 2, ++ u'赏': 1, ++ u'灝': 2, ++ u'诠': 1, ++ u'孫': 2, ++ u'绮': 1, ++ u'𫗴': 1, ++ u'泺': 1, ++ u'聽': 2, ++ u'娄': 1, ++ u'锆': 1, ++ u'倈': 2, ++ u'麗': 2, ++ u'钛': 1, ++ u'鸬': 1, ++ u'疱': 1, ++ u'鈴': 2, ++ u'鷁': 2, ++ u'罂': 1, ++ u'𪉔': 1, ++ u'绗': 1, ++ u'魚': 2, ++ u'噜': 1, ++ u'轢': 2, ++ u'𩙈': 2, ++ u'荪': 1, ++ u'㥮': 2, ++ u'鲀': 1, ++ u'骄': 1, ++ u'𩤙': 2, ++ u'贡': 1, ++ u'簫': 2, ++ u'馮': 2, ++ u'论': 1, ++ u'膾': 2, ++ u'顃': 2, ++ u'竄': 2, ++ u'陇': 1, ++ u'𨱋': 1, ++ u'滌': 2, ++ u'飘': 1, ++ u'雜': 2, ++ u'賠': 2, ++ u'諤': 2, ++ u'胨': 1, ++ u'镱': 1, ++ u'鍵': 2, ++ u'淶': 2, ++ u'懾': 2, ++ u'鸂': 2, ++ u'儈': 2, ++ u'𠠎': 2, ++ u'墙': 1, ++ u'䲡': 1, ++ u'欤': 1, ++ u'愨': 2, ++ u'𣶫': 1, ++ u'纭': 1, ++ u'锰': 1, ++ u'褸': 2, ++ u'鳁': 1, ++ u'髅': 1, ++ u'軍': 2, ++ u'晒': 1, ++ u'鱖': 2, ++ u'驚': 2, ++ u'坜': 1, ++ u'遞': 2, ++ u'葦': 2, ++ u'鷫': 2, ++ u'異': 2, ++ u'釳': 2, ++ u'勵': 2, ++ u'𦝼': 1, ++ u'稅': 2, ++ u'鮄': 2, ++ u'瀉': 2, ++ u'劊': 2, ++ u'渍': 1, ++ u'辌': 1, ++ u'𦈕': 1, ++ u'唛': 1, ++ u'𩘝': 2, ++ u'谡': 1, ++ u'訥': 2, ++ u'䜧': 1, ++ u'颮': 2, ++ u'厴': 2, ++ u'貶': 2, ++ u'肾': 1, ++ u'饃': 2, ++ u'範': 2, ++ u'偉': 2, ++ u'燈': 2, ++ u'赋': 1, ++ u'譏': 2, ++ u'硙': 1, ++ u'駘': 2, ++ u'韜': 2, ++ u'𫍟': 1, ++ u'僞': 2, ++ u'橥': 1, ++ u'诤': 1, ++ u'臨': 2, ++ u'鹭': 1, ++ u'鑱': 2, ++ u'关': 1, ++ u'泶': 1, ++ u'虽': 1, ++ u'窃': 1, ++ u'謎': 2, ++ u'鲗': 1, ++ u'際': 2, ++ u'誣': 2, ++ u'維': 2, ++ u'𧝞': 2, ++ u'䌾': 1, ++ u'終': 2, ++ u'鏉': 2, ++ u'呜': 1, ++ u'烟': 1, ++ u'习': 1, ++ u'赢': 1, ++ u'蝦': 2, ++ u'腪': 2, ++ u'籬': 2, ++ u'飯': 2, ++ u'癰': 2, ++ u'蛻': 2, ++ u'缁': 1, ++ u'预': 1, ++ u'垆': 1, ++ u'冊': 2, ++ u'锝': 1, ++ u'涢': 1, ++ u'縫': 2, ++ u'鮮': 2, ++ u'傴': 2, ++ u'覺': 2, ++ u'怿': 1, ++ u'绀': 1, ++ u'驃': 2, ++ u'㟆': 1, ++ u'狈': 1, ++ u'畝': 2, ++ u'铜': 1, ++ u'裤': 1, ++ u'幫': 2, ++ u'篮': 1, ++ u'䱷': 2, ++ u'揾': 1, ++ u'开': 1, ++ u'鰂': 2, ++ u'处': 1, ++ u'疇': 2, ++ u'阆': 1, ++ u'逊': 1, ++ u'討': 2, ++ u'鶗': 2, ++ u'咝': 1, ++ u'讣': 1, ++ u'椤': 1, ++ u'皱': 1, ++ u'鄴': 2, ++ u'蔼': 1, ++ u'嗇': 2, ++ u'癆': 2, ++ u'鋉': 2, ++ u'緗': 2, ++ u'鹖': 1, ++ u'營': 2, ++ u'鉞': 2, ++ u'旧': 1, ++ u'聪': 1, ++ u'𩧯': 1, ++ u'囱': 1, ++ u'煴': 1, ++ u'跷': 1, ++ u'歸': 2, ++ u'蟻': 2, ++ u'龀': 1, ++ u'岂': 1, ++ u'馄': 1, ++ u'崗': 2, ++ u'纖': 2, ++ u'騙': 2, ++ u'償': 2, ++ u'缫': 1, ++ u'钲': 1, ++ u'愿': 1, ++ u'镇': 1, ++ u'襏': 2, ++ u'懔': 1, ++ u'𧩙': 2, ++ u'壚': 2, ++ u'關': 2, ++ u'勞': 2, ++ u'桥': 1, ++ u'扩': 1, ++ u'鱭': 2, ++ u'䝻': 2, ++ u'怀': 1, ++ u'氈': 2, ++ u'𫔎': 1, ++ u'馑': 1, ++ u'龕': 2, ++ u'贞': 1, ++ u'熡': 2, ++ u'錢': 2, ++ u'嘤': 1, ++ u'餦': 2, ++ u'貳': 2, ++ u'𠯟': 1, ++ u'銷': 2, ++ u'颻': 2, ++ u'宽': 1, ++ u'豈': 2, ++ u'盏': 1, ++ u'㧑': 1, ++ u'鹔': 1, ++ u'话': 1, ++ u'灠': 2, ++ u'𫍢': 1, ++ u'癤': 2, ++ u'䉬': 2, ++ u'𢛯': 1, ++ u'鵾': 2, ++ u'䴉': 2, ++ u'阏': 1, ++ u'鰓': 2, ++ u'戗': 1, ++ u'厢': 1, ++ u'鲨': 1, ++ u'锹': 1, ++ u'视': 1, ++ u'鯒': 2, ++ u'𠉗': 1, ++ u'衛': 2, ++ u'鑣': 2, ++ u'㛤': 1, ++ u'铸': 1, ++ u'繿': 2, ++ u'銍': 2, ++ u'频': 1, ++ u'缔': 1, ++ u'蘚': 2, ++ u'谞': 1, ++ u'頦': 2, ++ u'鸪': 1, ++ u'䊭': 2, ++ u'亵': 1, ++ u'鎷': 2, ++ u'瘺': 2, ++ u'媽': 2, ++ u'簾': 2, ++ u'赈': 1, ++ u'緓': 2, ++ u'齔': 2, ++ u'𪁖': 2, ++ u'敘': 2, ++ u'諝': 2, ++ u'寧': 2, ++ u'鳩': 2, ++ u'絨': 2, ++ u'該': 2, ++ u'𦛨': 1, ++ u'啸': 1, ++ u'鱾': 1, ++ u'刍': 1, ++ u'璎': 1, ++ u'堑': 1, ++ u'薘': 2, ++ u'讜': 2, ++ u'䲞': 1, ++ u'劢': 1, ++ u'蠱': 2, ++ u'裆': 1, ++ u'汉': 1, ++ u'車': 2, ++ u'牍': 1, ++ u'双': 1, ++ u'铎': 1, ++ u'髒': 2, ++ u'繕': 2, ++ u'𨥛': 2, ++ u'轟': 2, ++ u'泞': 1, ++ u'镣': 1, ++ u'噥': 2, ++ u'屩': 2, ++ u'慫': 2, ++ u'绪': 1, ++ u'獷': 2, ++ u'闸': 1, ++ u'戀': 2, ++ u'辉': 1, ++ u'𩾃': 1, ++ u'咏': 1, ++ u'鮑': 2, ++ u'库': 1, ++ u'輞': 2, ++ u'删': 1, ++ u'義': 2, ++ u'椲': 2, ++ u'𧮪': 1, ++ u'猶': 2, ++ u'鲿': 1, ++ u'瓏': 2, ++ u'结': 1, ++ u'鱔': 2, ++ u'鏡': 2, ++ u'闥': 2, ++ u'瑤': 2, ++ u'襲': 2, ++ u'淵': 2, ++ u'鍶': 2, ++ u'噸': 2, ++ u'秽': 1, ++ u'𩽾': 1, ++ u'憂': 2, ++ u'鈋': 2, ++ u'鐏': 2, ++ u'袜': 1, ++ u'銠': 2, ++ u'钤': 1, ++ u'麨': 2, ++ u'悬': 1, ++ u'贵': 1, ++ u'皸': 2, ++ u'碼': 2, ++ u'识': 1, ++ u'筑': 1, ++ u'駒': 2, ++ u'絕': 2, ++ u'䝙': 1, ++ u'詛': 2, ++ u'陣': 2, ++ u'𥕥': 2, ++ u'顧': 2, ++ u'扫': 1, ++ u'摯': 2, ++ u'諰': 2, ++ u'賴': 2, ++ u'叶': 1, ++ u'飼': 2, ++ u'忾': 1, ++ u'攄': 2, ++ u'躉': 2, ++ u'压': 1, ++ u'㘎': 1, ++ u'骑': 1, ++ u'鲕': 1, ++ u'純': 2, ++ u'條': 2, ++ u'唤': 1, ++ u'纩': 1, ++ u'琺': 2, ++ u'鶿': 2, ++ u'績': 2, ++ u'𩾊': 1, ++ u'塒': 2, ++ u'㳕': 1, ++ u'裝': 2, ++ u'铥': 1, ++ u'黩': 1, ++ u'惭': 1, ++ u'虮': 1, ++ u'櫱': 2, ++ u'鉶': 2, ++ u'磽': 2, ++ u'奼': 2, ++ u'㷿': 2, ++ u'鹾': 1, ++ u'複': 2, ++ u'锏': 1, ++ u'亞': 2, ++ u'許': 2, ++ u'殰': 2, ++ u'谵': 1, ++ u'儷': 2, ++ u'𩘹': 2, ++ u'摅': 1, ++ u'賊': 2, ++ u'穑': 1, ++ u'飒': 1, ++ u'巔': 2, ++ u'據': 2, ++ u'赟': 1, ++ u'滞': 1, ++ u'饧': 1, ++ u'捫': 2, ++ u'诰': 1, ++ u'𩧼': 1, ++ u'搀': 1, ++ u'莅': 1, ++ u'栈': 1, ++ u'劏': 2, ++ u'东': 1, ++ u'疡': 1, ++ u'霢': 2, ++ u'鴦': 2, ++ u'漲': 2, ++ u'鲻': 1, ++ u'归': 1, ++ u'违': 1, ++ u'闡': 2, ++ u'駩': 2, ++ u'硨': 2, ++ u'䱰': 2, ++ u'轲': 1, ++ u'毵': 1, ++ u'镶': 1, ++ u'鍺': 2, ++ u'翽': 2, ++ u'饾': 1, ++ u'𨸇': 1, ++ u'鐋': 2, ++ u'圍': 2, ++ u'頓': 2, ++ u'躜': 1, ++ u'钠': 1, ++ u'風': 2, ++ u'宪': 1, ++ u'贱': 1, ++ u'纼': 1, ++ u'诊': 1, ++ u'睍': 2, ++ u'嫔': 1, ++ u'揚': 2, ++ u'詟': 1, ++ u'鹧': 1, ++ u'緦': 2, ++ u'奩': 2, ++ u'賰': 2, ++ u'嗶': 2, ++ u'郸': 1, ++ u'类': 1, ++ u'𩨁': 1, ++ u'𪨊': 1, ++ u'鲑': 1, ++ u'紐': 2, ++ u'骕': 1, ++ u'笔': 1, ++ u'溝': 2, ++ u'唠': 1, ++ u'碩': 2, ++ u'騪': 2, ++ u'𫄸': 1, ++ u'鶻': 2, ++ u'爺': 2, ++ u'砾': 1, ++ u'鵐': 2, ++ u'慘': 2, ++ u'潜': 1, ++ u'铡': 1, ++ u'鋥': 2, ++ u'忧': 1, ++ u'飩': 2, ++ u'鉺': 2, ++ u'绽': 1, ++ u'顾': 1, ++ u'暂': 1, ++ u'輇': 2, ++ u'锋': 1, ++ u'嘍': 2, ++ u'錏': 2, ++ u'餓': 2, ++ u'缧': 1, ++ u'媪': 1, ++ u'蘭': 2, ++ u'谱': 1, ++ u'殴': 1, ++ u'鸽': 1, ++ u'赛': 1, ++ u'𫗠': 1, ++ u'剥': 1, ++ u'蟬': 2, ++ u'说': 1, ++ u'怄': 1, ++ u'閍': 2, ++ u'龑': 2, ++ u'縐': 2, ++ u'馕': 1, ++ u'掙': 2, ++ u'脚': 1, ++ u'涝': 1, ++ u'锢': 1, ++ u'箩': 1, ++ u'𩠆': 1, ++ u'钷': 1, ++ u'笾': 1, ++ u'𩨎': 1, ++ u'鑌': 2, ++ u'烏': 2, ++ u'华': 1, ++ u'鹐': 1, ++ u'灤': 2, ++ u'荮': 1, ++ u'濱': 2, ++ u'买': 1, ++ u'斂': 2, ++ u'谇': 1, ++ u'澆': 2, ++ u'阋': 1, ++ u'弑': 1, ++ u'搗': 2, ++ u'減': 2, ++ u'䮞': 2, ++ u'妪': 1, ++ u'蔭': 2, ++ u'犸': 1, ++ u'帻': 1, ++ u'𪉃': 1, ++ u'觊': 1, ++ u'网': 1, ++ u'著': 2, ++ u'㛠': 1, ++ u'鱧': 2, ++ u'瑷': 1, ++ u'鋸': 2, ++ u'繻': 2, ++ u'鳼': 2, ++ u'蚁': 1, ++ u'肅': 2, ++ u'誉': 1, ++ u'钍': 1, ++ u'甌': 2, ++ u'颕': 1, ++ u'蘖': 1, ++ u'鸦': 1, ++ u'窩': 2, ++ u'讳': 1, ++ u'氲': 1, ++ u'岽': 1, ++ u'镌': 1, ++ u'剎': 2, ++ u'齐': 1, ++ u'篓': 1, ++ u'狹': 2, ++ u'遺': 2, ++ u'嵼': 2, ++ u'驾': 1, ++ u'范': 1, ++ u'贇': 2, ++ u'溆': 1, ++ u'鬓': 1, ++ u'堕': 1, ++ u'椟': 1, ++ u'紧': 1, ++ u'斬': 2, ++ u'鈹': 2, ++ u'𤇄': 1, ++ u'裊': 2, ++ u'𧹑': 1, ++ u'鳒': 1, ++ u'硕': 1, ++ u'曖': 2, ++ u'䉙': 2, ++ u'櫞': 2, ++ u'绦': 1, ++ u'觴': 2, ++ u'祿': 2, ++ u'栀': 1, ++ u'辅': 1, ++ u'𪄆': 2, ++ u'鮍': 2, ++ u'𡢃': 2, ++ u'蔞': 2, ++ u'禡': 2, ++ u'鬢': 2, ++ u'羥': 2, ++ u'吨': 1, ++ u'躯': 1, ++ u'邻': 1, ++ u'驌': 2, ++ u'经': 1, ++ u'峣': 1, ++ u'闩': 1, ++ u'柵': 2, ++ u'饶': 1, ++ u'緹': 2, ++ u'𩽺': 1, ++ u'㛿': 1, ++ u'𦈔': 1, ++ u'调': 1, ++ u'與': 2, ++ u'𩠋': 1, ++ u'鸏': 2, ++ u'鐓': 2, ++ u'𫚔': 1, ++ u'芜': 1, ++ u'颠': 1, ++ u'簣': 2, ++ u'钨': 1, ++ u'脱': 1, ++ u'诂': 1, ++ u'筍': 2, ++ u'詗': 2, ++ u'號': 2, ++ u'鱣': 2, ++ u'彥': 2, ++ u'燦': 2, ++ u'㓨': 2, ++ u'湯': 2, ++ u'摳': 2, ++ u'蛴': 1, ++ u'穷': 1, ++ u'鋼': 2, ++ u'蒉': 1, ++ u'骍': 1, ++ u'隕': 2, ++ u'䴘': 1, ++ u'夠': 2, ++ u'纥': 1, ++ u'逦': 1, ++ u'𨦫': 2, ++ u'阪': 2, ++ u'辯': 2, ++ u'薳': 2, ++ u'戲': 2, ++ u'縺': 2, ++ u'襀': 2, ++ u'轄': 2, ++ u'䙊': 1, ++ u'𩝔': 2, ++ u'賙': 2, ++ u'铩': 1, ++ u'豮': 1, ++ u'惱': 2, ++ u'顶': 1, ++ u'糹': 2, ++ u'鹺': 2, ++ u'狽': 2, ++ u'鑾': 2, ++ u'贃': 2, ++ u'們': 2, ++ u'𣆐': 1, ++ u'锓': 1, ++ u'愛': 2, ++ u'亚': 1, ++ u'閨': 2, ++ u'設': 2, ++ u'𨀱': 1, ++ u'嬷': 1, ++ u'鰹': 2, ++ u'綸': 2, ++ u'儻': 2, ++ u'鈽': 2, ++ u'諂': 2, ++ u'胆': 1, ++ u'蛊': 1, ++ u'積': 2, ++ u'鳎': 1, ++ u'灑': 2, ++ u'鋒': 2, ++ u'棖': 2, ++ u'䱙': 2, ++ u'滚': 1, ++ u'蝟': 2, ++ u'擞': 1, ++ u'𥹥': 1, ++ u'烦': 1, ++ u'盪': 2, ++ u'诬': 1, ++ u'潯': 2, ++ u'壶': 1, ++ u'鷸': 2, ++ u'𩏼': 1, ++ u'馍': 1, ++ u'爐': 2, ++ u'𩖕': 1, ++ u'謖': 2, ++ u'錦': 2, ++ u'瞩': 1, ++ u'锪': 1, ++ u'貯': 2, ++ u'𠚳': 1, ++ u'颷': 2, ++ u'徹': 2, ++ u'銻': 2, ++ u'紺': 2, ++ u'钿': 1, ++ u'眾': 2, ++ u'詀': 2, ++ u'𨱄': 1, ++ u'題': 2, ++ u'彎': 2, ++ u'兒': 2, ++ u'鑔': 2, ++ u'这': 1, ++ u'鯡': 2, ++ u'穠': 2, ++ u'廣': 2, ++ u'鷥': 2, ++ u'韩': 1, ++ u'轮': 1, ++ u'翹': 2, ++ u'𨸃': 1, ++ u'掆': 2, ++ u'𩨋': 1, ++ u'复': 1, ++ u'鰏': 2, ++ u'阓': 1, ++ u'熒': 2, ++ u'栗': 1, ++ u'𦈛': 1, ++ u'骠': 1, ++ u'縣': 2, ++ u'鲤': 1, ++ u'瀧': 2, ++ u'厦': 1, ++ u'隨': 2, ++ u'喪': 2, ++ u'鼹': 1, ++ u'纸': 1, ++ u'炼': 1, ++ u'观': 1, ++ u'浅': 1, ++ u'𤳄': 1, ++ u'釒': 2, ++ u'哔': 1, ++ u'余': 3, ++ u'淚': 2, ++ u'鹣': 1, ++ u'橫': 2, ++ u'痪': 1, ++ u'䇲': 1, ++ u'蓴': 2, ++ u'硷': 1, ++ u'寶': 2, ++ u'𥮋': 1, ++ u'颍': 1, ++ u'𩠃': 1, ++ u'銑': 2, ++ u'钕': 1, ++ u'訖': 2, ++ u'优': 1, ++ u'谚': 1, ++ u'蘞': 2, ++ u'𥬠': 1, ++ u'鈦': 2, ++ u'讫': 1, ++ u'閿': 2, ++ u'瘾': 1, ++ u'濃': 2, ++ u'资': 1, ++ u'懇': 2, ++ u'蝈': 1, ++ u'篋': 2, ++ u'饌': 2, ++ u'矓': 2, ++ u'镔': 1, ++ u'鳥': 2, ++ u'𩛩': 2, ++ u'聲': 2, ++ u'驶': 1, ++ u'绹': 1, ++ u'鱺': 2, ++ u'𩟿': 1, ++ u'較': 2, ++ u'吕': 1, ++ u'辘': 1, ++ u'挛': 1, ++ u'缣': 1, ++ u'𥢢': 2, ++ u'舱': 1, ++ u'萵': 2, ++ u'鸹': 1, ++ u'医': 1, ++ u'䯀': 2, ++ u'晉': 2, ++ u'荛': 1, ++ u'祷': 1, ++ u'獻': 2, ++ u'图': 1, ++ u'龍': 2, ++ u'閑': 2, ++ u'琐': 1, ++ u'贖': 2, ++ u'謚': 2, ++ u'锦': 1, ++ u'貫': 2, ++ u'钻': 1, ++ u'笺': 1, ++ u'𨱀': 1, ++ u'曇': 2, ++ u'鹌': 1, ++ u'籠': 2, ++ u'釩': 2, ++ u'魺': 2, ++ u'酾': 1, ++ u'蘇': 2, ++ u'斆': 2, ++ u'騏': 2, ++ u'禎': 2, ++ u'瞒': 1, ++ u'渗': 1, ++ u'𦈟': 1, ++ u'鲠': 1, ++ u'骤': 1, ++ u'瘧': 2, ++ u'㶶': 1, ++ u'碸': 2, ++ u'𥐻': 1, ++ u'霽': 2, ++ u'刿': 1, ++ u'駎': 2, ++ u'㳠': 1, ++ u'陧': 1, ++ u'兩': 2, ++ u'恳': 1, ++ u'䦃': 1, ++ u'誅': 2, ++ u'欄': 2, ++ u'缌': 1, ++ u'钑': 1, ++ u'谖': 1, ++ u'訚': 1, ++ u'鸢': 1, ++ u'窥': 1, ++ u'嬤': 2, ++ u'鐦': 2, ++ u'讯': 1, ++ u'閻': 2, ++ u'鎿': 2, ++ u'瀾': 2, ++ u'赀': 1, ++ u'緋': 2, ++ u'镐': 1, ++ u'鍔': 2, ++ u'鳡': 1, ++ u'衮': 1, ++ u'擱': 2, ++ u'𪇳': 2, ++ u'奸': 1, ++ u'驺': 1, ++ u'向': 1, ++ u'䲖': 2, ++ u'覘': 2, ++ u'攛': 2, ++ u'𢘝': 1, ++ u'挟': 1, ++ u'𪢮': 1, ++ u'掴': 1, ++ u'強': 2, ++ u'頹': 2, ++ u'瞼': 2, ++ u'䯄': 1, ++ u'㭏': 1, ++ u'风': 1, ++ u'櫚': 2, ++ u'荟': 1, ++ u'屡': 1, ++ u'饣': 1, ++ u'绢': 1, ++ u'慳': 2, ++ u'罷': 2, ++ u'島': 2, ++ u'駸': 2, ++ u'辁': 1, ++ u'𦈈': 1, ++ u'鞑': 1, ++ u'𥸠': 2, ++ u'𩜦': 2, ++ u'袯': 1, ++ u'鲷': 1, ++ u'隻': 2, ++ u'喽': 1, ++ u'櫃': 2, ++ u'擇': 2, ++ u'绋': 1, ++ u'達': 2, ++ u'诙': 1, ++ u'藝': 2, ++ u'摜': 2, ++ u'硤': 2, ++ u'䱬': 2, ++ u'蕲': 1, ++ u'齶': 2, ++ u'饺': 1, ++ u'鍾': 2, ++ u'訃': 2, ++ u'涂': 1, ++ u'萇': 2, ++ u'鸋': 2, ++ u'憊': 2, ++ u'崍': 2, ++ u'頏': 2, ++ u'儕': 2, ++ u'侖': 2, ++ u'誘': 2, ++ u'稣': 1, ++ u'嶢': 2, ++ u'颤': 1, ++ u'垦': 1, ++ u'銨': 2, ++ u'𤸫': 2, ++ u'冪': 2, ++ u'购': 1, ++ u'尷': 2, ++ u'锽': 1, ++ u'潁': 2, ++ u'睑': 1, ++ u'闒': 2, ++ u'虛': 2, ++ u'槚': 1, ++ u'奥': 1, ++ u'賬': 2, ++ u'蛰': 1, ++ u'铼': 1, ++ u'灿': 1, ++ u'袅': 1, ++ u'鲍': 1, ++ u'䬘': 2, ++ u'撝': 2, ++ u'纡': 1, ++ u'张': 1, ++ u'辫': 1, ++ u'覯': 2, ++ u'莳': 1, ++ u'䂵': 1, ++ u'縶': 2, ++ u'砺': 1, ++ u'𦈋': 1, ++ u'爾': 2, ++ u'轀': 2, ++ u'呒': 1, ++ u'蓝': 1, ++ u'黡': 1, ++ u'飥': 2, ++ u'鋩': 2, ++ u'獨': 2, ++ u'詮': 2, ++ u'學': 2, ++ u'顺': 1, ++ u'𪎈': 1, ++ u'鼋': 1, ++ u'對': 2, ++ u'餏': 2, ++ u'窎': 1, ++ u'嚦': 2, ++ u'伫': 1, ++ u'谭': 1, ++ u'儿': 1, ++ u'賂': 2, ++ u'𠛆': 1, ++ u'铒': 1, ++ u'灕': 2, ++ u'赗': 1, ++ u'镧': 1, ++ u'致': 1, ++ u'絷': 1, ++ u'壺': 2, ++ u'闼': 1, ++ u'鶉': 2, ++ u'𦈌': 1, ++ u'辕': 1, ++ u'渔': 1, ++ u'鄖': 2, ++ u'鴞': 2, ++ u'枥': 1, ++ u'涩': 1, ++ u'輪': 2, ++ u'厭': 2, ++ u'鲳': 1, ++ u'徵': 2, ++ u'机': 1, ++ u'竇': 2, ++ u'鱈': 2, ++ u'曏': 2, ++ u'鯝': 2, ++ u'廟': 2, ++ u'镮': 1, ++ u'𠵾': 1, ++ u'鐃': 2, ++ u'𩨇': 1, ++ u'谓': 1, ++ u'殒': 1, ++ u'钘': 1, ++ u'骜': 1, ++ u'縟': 2, ++ u'肠': 1, ++ u'貨': 2, ++ u'倫': 2, ++ u'侪': 1, ++ u'嘯': 2, ++ u'餱': 2, ++ u'纴': 1, ++ u'𤈷': 1, ++ u'蔹': 1, ++ u'撸': 1, ++ u'𩧆': 2, ++ u'藎': 2, ++ u'诒': 1, ++ u'鉗': 2, ++ u'顛': 2, ++ u'矚': 2, ++ u'鹟': 1, ++ u'緞': 2, ++ u'諼': 2, ++ u'湿': 1, ++ u'邁': 2, ++ u'鲉': 1, ++ u'紈': 2, ++ u'躕': 2, ++ u'𩨅': 1, ++ u'阚': 1, ++ u'窝': 1, ++ u'沩': 1, ++ u'醫': 2, ++ u'踪': 1, ++ u'鞯': 1, ++ u'获': 1, ++ u'剂': 1, ++ u'靄': 2, ++ u'轔': 2, ++ u'铙': 1, ++ u'筜': 1, ++ u'胡': 1, ++ u'狭': 1, ++ u'驲': 1, ++ u'绵': 1, ++ u'聶': 2, ++ u'锃': 1, ++ u'纊': 2, ++ u'贓': 2, ++ u'傖': 2, ++ u'閘': 2, ++ u'鮜': 2, ++ u'缟': 1, ++ u'膠': 2, ++ u'攣': 2, ++ u'欧': 1, ++ u'趨': 2, ++ u'禰': 2, ++ u'鸵': 1, ++ u'䌷': 1, ++ u'殼': 2, ++ u'净': 1, ++ u'飆': 2, ++ u'諒': 2, ++ u'俔': 2, ++ u'呙': 1, ++ u'齟': 2, ++ u'糞': 2, ++ u'拢': 1, ++ u'滪': 1, ++ u'駰': 2, ++ u'絳': 2, ++ u'诼': 1, ++ u'潿': 2, ++ u'龉': 1, ++ u'縈': 2, ++ u'趕': 2, ++ u'气': 1, ++ u'嘘': 1, ++ u'锚': 1, ++ u'採': 2, ++ u'澩': 2, ++ u'銫': 2, ++ u'贪': 1, ++ u'钯': 1, ++ u'貿': 2, ++ u'鉀': 2, ++ u'鑄': 2, ++ u'𣿉': 2, ++ u'鹈': 1, ++ u'拋': 2, ++ u'𥵊': 2, ++ u'职': 1, ++ u'詐': 2, ++ u'𨱔': 1, ++ u'韙': 2, ++ u'癘': 2, ++ u'駝': 2, ++ u'硜': 2, ++ u'藥': 2, ++ u'迩': 1, ++ u'燭': 2, ++ u'偬': 1, ++ u'篱': 1, ++ u'饲': 1, ++ u'轾': 1, ++ u'阃': 1, ++ u'頇': 2, ++ u'䴕': 1, ++ u'喚': 2, ++ u'颜': 1, ++ u'從': 2, ++ u'别': 1, ++ u'鄭': 2, ++ u'启': 1, ++ u'鬱': 2, ++ u'帳': 2, ++ u'梼': 1, ++ u'獁': 2, ++ u'畅': 1, ++ u'鯆': 2, ++ u'廈': 2, ++ u'𪉋': 1, ++ u'鷊': 2, ++ u'慍': 2, ++ u'蟎': 2, ++ u'浕': 1, ++ u'遗': 1, ++ u'驛': 2, ++ u'鱟': 2, ++ u'淪': 2, ++ u'繳': 2, ++ u'鳴': 2, ++ u'钅': 1, ++ u'妇': 1, ++ u'缈': 1, ++ u'誑': 2, ++ u'團': 2, ++ u'鸞': 2, ++ u'抡': 1, ++ u'耢': 1, ++ u'撥': 2, ++ u'谪': 1, ++ u'傭': 2, ++ u'瘮': 2, ++ u'戶': 2, ++ u'讻': 1, ++ u'携': 1, ++ u'渾': 2, ++ u'鍀': 2, ++ u'镄': 1, ++ u'届': 1, ++ u'𪃍': 2, ++ u'赔': 1, ++ u'雙': 2, ++ u'蓥': 1, ++ u'热': 1, ++ u'𩙮': 1, ++ u'輓': 2, ++ u'庞': 1, ++ u'弳': 2, ++ u'鰵': 2, ++ u'綴': 2, ++ u'鳊': 1, ++ u'蛎': 1, ++ u'魛': 2, ++ u'瓚': 2, ++ u'绞': 1, ++ u'獫': 2, ++ u'泪': 1, ++ u'𨳕': 2, ++ u'𩾁': 1, ++ u'爄': 2, ++ u'𥺇': 1, ++ u'馉': 1, ++ u'讕': 2, ++ u'锖': 1, ++ u'錚': 2, ++ u'帜': 1, ++ u'餞': 2, ++ u'账': 1, ++ u'钫': 1, ++ u'垭': 1, ++ u'颳': 2, ++ u'缲': 1, ++ u'費': 2, ++ u'調': 2, ++ u'烃': 1, ++ u'坂': 1, ++ u'织': 1, ++ u'擋': 2, ++ u'豐': 2, ++ u'詔': 2, ++ u'釙': 2, ++ u'灘': 2, ++ u'𨏥': 2, ++ u'桨': 1, ++ u'緱': 2, ++ u'齲': 2, ++ u'婴': 1, ++ u'鸇': 2, ++ u'綆': 2, ++ u'瘗': 1, ++ u'稟': 2, ++ u'霭': 1, ++ u'脹': 2, ++ u'獅': 2, ++ u'壈': 2, ++ u'鯊': 2, ++ u'𪉏': 1, ++ u'浑': 1, ++ u'𠴢': 1, ++ u'痖': 1, ++ u'彝': 1, ++ u'驟': 2, ++ u'䥩': 2, ++ u'軼': 2, ++ u'钁': 2, ++ u'銅': 2, ++ u'颉': 1, ++ u'誕': 2, ++ u'儘': 2, ++ u'蘢': 2, ++ u'报': 1, ++ u'谦': 1, ++ u'閫': 2, ++ u'訪': 2, ++ u'鎯': 2, ++ u'馳': 2, ++ u'縲': 2, ++ u'搶': 2, ++ u'访': 1, ++ u'栾': 1, ++ u'镀': 1, ++ u'鍄': 2, ++ u'屆': 2, ++ u'饈': 2, ++ u'赐': 1, ++ u'楨': 2, ++ u'鹲': 1, ++ u'艺': 1, ++ u'茏': 1, ++ u'𧜗': 2, ++ u'紛': 2, ++ u'劚': 2, ++ u'龜': 2, ++ u'匯': 2, ++ u'鰱': 2, ++ u'綰': 2, ++ u'叄': 2, ++ u'鳆': 1, ++ u'𩧶': 1, ++ u'軒': 2, ++ u'魟': 2, ++ u'轧': 1, ++ u'畫': 2, ++ u'櫪': 2, ++ u'韬': 1, ++ u'𩷰': 2, ++ u'鯴': 2, ++ u'歿': 2, ++ u'劃': 2, ++ u'𡮉': 2, ++ u'稈': 2, ++ u'辑': 1, ++ u'渐': 1, ++ u'刘': 1, ++ u'輦': 2, ++ u'献': 1, ++ u'紲': 2, ++ u'𡶴': 1, ++ u'糇': 1, ++ u'櫓': 2, ++ u'衔': 1, ++ u'哗': 1, ++ u'牘': 2, ++ u'籜': 2, ++ u'壟': 2, ++ u'诩': 1, ++ u'鍮': 2, ++ u'鵲': 2, ++ u'譾': 2, ++ u'鈃': 2, ++ u'羆': 2, ++ u'蘋': 2, ++ u'訓': 2, ++ u'銘': 2, ++ u'縛': 2, ++ u'鲜': 1, ++ u'实': 1, ++ u'肤': 1, ++ u'侦': 1, ++ u'誨': 2, ++ u'锭': 1, ++ u'纰': 1, ++ u'贽': 1, ++ u'睁': 1, ++ u'囀': 2, ++ u'潑': 2, ++ u'鹛': 1, ++ u'嵝': 1, ++ u'癫': 1, ++ u'铬': 1, ++ u'灯': 1, ++ u'飴': 2, ++ u'購': 2, ++ u'桿': 2, ++ u'嶇': 2, ++ u'骉': 1, ++ u'𩨃': 1, ++ u'躑': 2, ++ u'阖': 1, ++ u'粝': 1, ++ u'檩': 1, ++ u'鮳': 2, ++ u'覿': 2, ++ u'呂': 2, ++ u'緇': 2, ++ u'塊': 2, ++ u'鋙': 2, ++ u'鳝': 1, ++ u'啬': 1, ++ u'绱': 1, ++ u'泽': 1, ++ u'鴇': 2, ++ u'脏': 1, ++ u'丑': 1, ++ u'沒': 2, ++ u'鎘': 2, ++ u'缛': 1, ++ u'挣': 1, ++ u'讨': 1, ++ u'疬': 1, ++ u'鸱': 1, ++ u'掸': 1, ++ u'涼': 2, ++ u'铂': 1, ++ u'苎': 1, ++ u'賒': 2, ++ u'镗': 1, ++ u'盖': 1, ++ u'竞': 1, ++ u'䙡': 2, ++ u'荣': 1, ++ u'滦': 1, ++ u'闬': 1, ++ u'𩧴': 1, ++ u'馁': 1, ++ u'砀': 1, ++ u'龅': 1, ++ u'劇': 2, ++ u'閉': 2, ++ u'亏': 1, ++ u'膑': 1, ++ u'餖': 2, ++ u'尘': 1, ++ u'锞': 1, ++ u'两': 1, ++ u'斩': 1, ++ u'钳': 1, ++ u'垵': 2, ++ u'𣘴': 1, ++ u'𩠈': 1, ++ u'鹄': 1, ++ u'擓': 2, ++ u'嫗': 2, ++ u'鷙': 2, ++ u'鏝': 2, ++ u'桠': 1, ++ u'鵮': 2, ++ u'噴': 2, ++ u'轺': 1, ++ u'揽': 1, ++ u'鰃': 2, ++ u'鈇': 2, ++ u'鲘': 1, ++ u'銜': 2, ++ u'氣': 2, ++ u'戧': 2, ++ u'吳': 2, ++ u'𩜵': 2, ++ u'费': 1, ++ u'廄': 2, ++ u'慑': 1, ++ u'驗': 2, ++ u'翚': 1, ++ u'佥': 1, ++ u'繯': 2, ++ u'恻': 1, ++ u'颁': 1, ++ u'缄': 1, ++ u'钉': 1, ++ u'認': 2, ++ u'蚕': 1, ++ u'鸚': 2, ++ u'訢': 2, ++ u'伤': 1, ++ u'龯': 2, ++ u'讷': 1, ++ u'螿': 2, ++ u'㻅': 1, ++ u'镈': 1, ++ u'構': 2, ++ u'鳙': 1, ++ u'凛': 1, ++ u'鋝': 2, ++ u'裡': 2, ++ u'潤': 2, ++ u'鱮': 2, ++ u'兰': 1, ++ u'蹺': 2, ++ u'鴃': 2, ++ u'帅': 1, ++ u'錇': 2, ++ u'鶘': 2, ++ u'騭': 2, ++ u'弯': 1, ++ u'阵': 1, ++ u'掼': 1, ++ u'硁': 1, ++ u'繅': 2, ++ u'晕': 1, ++ u'绚': 1, ++ u'剝': 2, ++ u'赣': 1, ++ u'荧': 1, ++ u'歷': 2, ++ u'跸': 1, ++ u'板': 1, ++ u'鮁': 2, ++ u'栌': 1, ++ u'𦈐': 1, ++ u'帘': 1, ++ u'殡': 1, ++ u'鲯': 1, ++ u'缮': 1, ++ u'芻': 2, ++ u'驀': 2, ++ u'练': 1, ++ u'奂': 1, ++ u'陈': 1, ++ u'勛': 2, ++ u'針': 2, ++ u'哟': 1, ++ u'诡': 1, ++ u'汤': 1, ++ u'蝾': 1, ++ u'𩸃': 2, ++ u'𫚈': 1, ++ u'疊': 2, ++ u'谏': 1, ++ u'憒': 2, ++ u'砗': 1, ++ u'爛': 2, ++ u'誠': 2, ++ u'𨊻': 2, ++ u'餭': 2, ++ u'锵': 1, ++ u'絅': 2, ++ u'峄': 1, ++ u'鏆': 2, ++ u'囈': 2, ++ u'闊': 2, ++ u'𢙓': 1, ++ u'彙': 2, ++ u'㻘': 1, ++ u'鉛': 2, ++ u'線': 2, ++ u'蹣': 2, ++ u'穫': 2, ++ u'鋰': 2, ++ u'铴': 1, ++ u'軸': 2, ++ u'骁': 1, ++ u'鲅': 1, ++ u'約': 2, ++ u'隉': 2, ++ u'攔': 2, ++ u'騖': 2, ++ u'炝': 1, ++ u'沥': 1, ++ u'鮫': 2, ++ u'鶯': 2, ++ u'縮': 2, ++ u'励': 1, ++ u'瀲': 2, ++ u'覷': 2, ++ u'显': 1, ++ u'靈': 2, ++ u'荐': 1, ++ u'𦈏': 1, ++ u'姗': 1, ++ u'俣': 1, ++ u'杨': 1, ++ u'鹮': 1, ++ u'狱': 1, ++ u'遲': 2, ++ u'啴': 1, ++ u'虾': 1, ++ u'贏': 2, ++ u'岚': 1, ++ u'醜': 2, ++ u'讠': 1, ++ u'漣': 2, ++ u'螨': 1, ++ u'頭': 2, ++ u'现': 1, ++ u'鐵': 2, ++ u'疴': 1, ++ u'䌻': 1, ++ u'癉': 2, ++ u'铊': 1, ++ u'扑': 1, ++ u'饗': 2, ++ u'竖': 1, ++ u'鍛': 2, ++ u'镟': 1, ++ u'盞': 2, ++ u'轣': 2, ++ u'拦': 1, ++ u'𩧬': 1, ++ u'鏰': 2, ++ u'间': 1, ++ u'𡓾': 2, ++ u'簀': 2, ++ u'嚇': 2, ++ u'辍': 1, ++ u'渌': 1, ++ u'䪏': 2, ++ u'戔': 2, ++ u'鬚': 2, ++ u'嘜': 2, ++ u'涡': 1, ++ u'蔦': 2, ++ u'鲫': 1, ++ u'骯': 2, ++ u'洶': 2, ++ u'愾': 2, ++ u'驄': 2, ++ u'蹌': 2, ++ u'駙': 2, ++ u'跡': 2, ++ u'该': 1, ++ u'幬': 2, ++ u'饮': 1, ++ u'剴': 2, ++ u'赶': 1, ++ u'柽': 1, ++ u'𪋿': 2, ++ u'腾': 1, ++ u'頃': 2, ++ u'阇': 1, ++ u'儉': 2, ++ u'𫂈': 1, ++ u'谋': 1, ++ u'縗': 2, ++ u'𨸘': 1, ++ u'题': 1, ++ u'負': 2, ++ u'誤': 2, ++ u'纬': 1, ++ u'锱': 1, ++ u'環': 2, ++ u'𥅴': 1, ++ u'闆': 2, ++ u'煉': 2, ++ u'潍': 1, ++ u'觎': 1, ++ u'鹗': 1, ++ u'坝': 1, ++ u'虧': 2, ++ u'铰': 1, ++ u'摻': 2, ++ u'鲁': 1, ++ u'紀': 2, ++ u'骅': 1, ++ u'𫐆': 1, ++ u'躍': 2, ++ u'碙': 2, ++ u'𩠅': 1, ++ u'騚': 2, ++ u'没': 1, ++ u'萦': 1, ++ u'瘲': 2, ++ u'樺': 2, ++ u'秃': 1, ++ u'幂': 1, ++ u'酈': 2, ++ u'志': 3, ++ u'飙': 1, ++ u'睜': 2, ++ u'賡': 2, ++ u'续': 1, ++ u'𤦀': 1, ++ u'啰': 1, ++ u'却': 1, ++ u'豶': 2, ++ u'䝼': 2, ++ u'聾': 2, ++ u'餃': 2, ++ u'娅': 1, ++ u'𩜇': 2, ++ u'倉': 2, ++ u'犊': 1, ++ u'謏': 2, ++ u'脓': 1, ++ u'缗': 1, ++ u'岖': 1, ++ u'𫘝': 1, ++ u'认': 1, ++ u'朧': 2, ++ u'鸭': 1, ++ u'籁': 1, ++ u'铆': 1, ++ u'凈': 2, ++ u'𢭏': 1, ++ u'摑': 2, ++ u'齗': 2, ++ u'镛': 1, ++ u'噝': 2, ++ u'㟜': 1, ++ u'滢': 1, ++ u'壮': 1, ++ u'闰': 1, ++ u'潷': 2, ++ u'觸': 2, ++ u'龁': 1, ++ u'馅': 1, ++ u'氌': 2, ++ u'膕': 2, ++ u'餚': 2, ++ u'财': 1, ++ u'颯': 2, ++ u'垱': 1, ++ u'銳': 2, ++ u'况': 1, ++ u'買': 2, ++ u'肿': 1, ++ u'挾': 2, ++ u'鹀': 1, ++ u'鉈': 2, ++ u'𨱌': 1, ++ u'联': 1, ++ u'桤': 1, ++ u'屬': 2, ++ u'镲': 1, ++ u'側': 2, ++ u'轶': 1, ++ u'騃': 2, ++ u'瞆': 1, ++ u'𨸋': 1, ++ u'𪚐': 1, ++ u'骘': 1, ++ u'钜': 1, ++ u'瀟': 2, ++ u'樣': 2, ++ u'師': 2, ++ u'堯': 2, ++ u'皰': 2, ++ u'謹': 2, ++ u'檸': 2, ++ u'鷂': 2, ++ u'㑇': 1, ++ u'释': 1, ++ u'浍': 1, ++ u'𪡏': 1, ++ u'诎': 1, ++ u'鱗': 2, ++ u'孙': 1, ++ u'詣': 2, ++ u'繫': 2, ++ u'硯': 2, ++ u'諸': 2, ++ u'缀': 1, ++ u'颅': 1, ++ u'礄': 2, ++ u'鈞': 2, ++ u'传': 1, ++ u'谢': 1, ++ u'岭': 1, ++ u'種': 2, ++ u'鎳': 2, ++ u'債': 2, ++ u'螻': 2, ++ u'膿': 2, ++ u'层': 1, ++ u'𩥄': 2, ++ u'症': 1, ++ u'鍈': 2, ++ u'赌': 1, ++ u'铝': 1, ++ u'裥': 1, ++ u'捨': 2, ++ u'驮': 1, ++ u'鑲': 2, ++ u'兴': 1, ++ u'擽': 2, ++ u'币': 1, ++ u'堅': 2, ++ u'锇': 1, ++ u'紗': 2, ++ u'办': 1, ++ u'䲢': 1, ++ u'鰭': 2, ++ u'綬': 2, ++ u'於': 2, ++ u'鳂': 1, ++ u'𩛆': 2, ++ u'绖': 1, ++ u'磚': 2, ++ u'狞': 1, ++ u'乡': 1, ++ u'𨳑': 2, ++ u'祯': 1, ++ u'诸': 1, ++ } ++ ++def detect_chinese_category(phrase): ++ ''' ++ New function using Unihan data to guess whether a text is ++ simplified Chinese, traditional Chinese, both, or something rare ++ like a mixture of exclusively simplified with exclusively traditional ++ characters. ++ ++ Meaning of the bits in the category value returned by this function: ++ 1 = 1 << 0 simplified Chinese ++ 2 = 1 << 1 traditional Chinese ++ 3 = (1 | 1 << 1) used both in simplified *and* traditional Chinese ++ 4 = 2 << 3 mixture of simplified and traditional Chinese ++ ''' ++ # make sure that we got a unicode string ++ if type(phrase) != type(u''): ++ phrase = phrase.decode('utf8') ++ if phrase in variants_table: ++ # the complete phrase is in variants_table, just return the ++ # value found: ++ return variants_table[phrase] ++ category = 0xFF; ++ for c in phrase: ++ if c in variants_table: ++ category &= variants_table[c] ++ else: ++ # If it is not listed in variants_table, assume it is ++ # both simplified and traditional Chinese. ++ # It could be something non-Chinese as well then, but ++ # if it is non-Chinese, it should also be allowed to ++ # occur in any Chinese text and thus classified as ++ # both simplified *and* traditional Chinese (the emoji ++ # table for example uses many non-Chinese characters) ++ category &= (1 | 1 << 1) ++ if category == 0: ++ # If category is 0 after binary & of the categories of all the ++ # characters in the phrase, it means that the phrase contained ++ # exclusively simplified *and* exclusively traditional ++ # characters at the same time. For example if the phrase is ++ # “乌烏” then “乌” gets category 1 (simplified Chinese) ++ # and “烏” gets category 2 (traditional Chinese), the result ++ # of the binary & is thus 0. In that case, classify it as ++ # category 4 which is for weird, excentric, rare stuff. If the ++ # user selects one of the modes “all characters but ++ # simplified Chinese first” or “all characters but ++ # traditional Chinese first”, phrases with category 4 will be ++ # shown but filtered to be shown only at the end of the ++ # candidate list. ++ category = 1 << 2 ++ return category +diff --git a/engine/tabsqlitedb.py b/engine/tabsqlitedb.py +index f2f1e30..78fa85d 100644 +--- a/engine/tabsqlitedb.py ++++ b/engine/tabsqlitedb.py +@@ -30,6 +30,7 @@ import tabdict + import uuid + import time + import re ++import chinese_variants + + patt_r = re.compile(r'c([ea])(\d):(.*)') + patt_p = re.compile(r'p(-{0,1}\d)(-{0,1}\d)') +@@ -487,52 +488,7 @@ class tabsqlitedb: + user_freq = 0 + # now we will set the category bits if this is chinese + if self._is_chinese: +- # this is the bitmask we will use, +- # from low to high, 1st bit is simplify Chinese, +- # 2nd bit is traditional Chinese, +- # 3rd bit means out of gbk +- category = 0 +- # make sure that we got a unicode string +- if type(phrase) != type(u''): +- phrase = phrase.decode('utf8') +- tmp_phrase = ''.join(re.findall(u'[' +- + u'\u4E00-\u9FCB' +- + u'\u3400-\u4DB5' +- + u'\uF900-\uFaFF' +- + u'\U00020000-\U0002A6D6' +- + u'\U0002A700-\U0002B734' +- + u'\U0002B740-\U0002B81D' +- + u'\U0002F800-\U0002FA1D' +- + u']+', +- phrase)) +- # first whether in gb2312 +- try: +- tmp_phrase.encode('gb2312') +- category |= 1 +- except: +- if '〇'.decode('utf8') in tmp_phrase: +- # we add '〇' into SC as well +- category |= 1 +- # second check big5-hkscs +- try: +- tmp_phrase.encode('big5hkscs') +- category |= 1 << 1 +- except: +- # then check whether in gbk, +- if category & 1: +- # already know in SC +- pass +- else: +- # need to check +- try: +- tmp_phrase.encode('gbk') +- category |= 1 +- except: +- # not in gbk +- pass +- # then set for 3rd bit, if not in SC and TC +- if not ( category & (1 | 1 << 1) ): +- category |= (1 << 2) ++ category = chinese_variants.detect_chinese_category(phrase) + try: + tbks = self.parse(tabkeys) + if len(tbks) != len(tabkeys): +diff --git a/tools/Unihan_Variants.txt b/tools/Unihan_Variants.txt +new file mode 100644 +index 0000000..f27c5f1 +--- /dev/null ++++ b/tools/Unihan_Variants.txt +@@ -0,0 +1,13329 @@ ++# ++# Unihan_Variants.txt ++# Date: 2011-08-08 22:10:53 GMT [JHJ] ++# Unicode version: 6.1.0 ++# ++# Unicode Character Database ++# Copyright (c) 1991-2011 Unicode, Inc. ++# For terms of use, see http://www.unicode.org/terms_of_use.html ++# For documentation, see http://www.unicode.org/reports/tr44/ ++# ++# This file contains data on the following fields from the Unihan database: ++# kCompatibilityVariant ++# kSemanticVariant ++# kSimplifiedVariant ++# kSpecializedSemanticVariant ++# kTraditionalVariant ++# kZVariant ++# ++# For details on the file format, see http://www.unicode.org/reports/tr38/ ++# ++U+3400 kSemanticVariant U+4E18 ++U+3405 kSemanticVariant U+4E94 ++# ++# 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 3.0 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 General Public License ++# along with this program. If not, see . ++ ++import re ++import logging ++import sys ++reload (sys) ++sys.setdefaultencoding('utf-8') ++ ++# Unihan_Variants.txt contains the following 2 lines: ++# ++# U+50DE kSimplifiedVariant U+4F2A ++# U+50DE kTraditionalVariant U+507D U+50DE ++# ++# This seems to be currently the only case in Unihan_Variants.txt where ++# a character which has entries for kTraditionalVariant and ++# the same character is listed again among the traditional variants ++# is *not* simplified Chinese. ++# ++# U+50DE 僞 is traditional Chinese. ++# U+507D 偽 is also traditional Chinese. ++# U+4F2A 伪 is simplified Chinese ++# ++# This does not cause a problem with the current parsing code ++# of Unihan_Variants.txt because the line ++# ++# U+50DE kSimplifiedVariant U+4F2A ++# ++# is read first and thus the character is already inserted in the ++# “variants_table_orig” dictionary as traditional Chinese, which is correct. ++# If a character is already in the dictionary and more lines for the ++# same character are read from Unihan_Variants.txt, these extra lines ++# are ignored. ++# ++# But maybe for some corner cases more tweaking of the code is ++# necessary. One can also add overrides manually to the ++# initial content of “variants_table_orig”. ++ ++variants_table_orig = { ++ # Meaning of the bits in the values: ++ # 1 = 1 << 0 simplified Chinese ++ # 2 = 1 << 1 traditional Chinese ++ # 3 = (1 | 1 << 1) used both in simplified *and* traditional Chinese ++ # 4 = 2 << 3 mixture of simplified and traditional Chinese ++ # ++ # overrides can be added manually here. For example the following ++ # line marks the 〇 character as used in both ++ # simplified and traditional Chinese: ++ u'〇': 3 # simplified *and* traditional Chinese ++ } ++ ++# keep the lines from Unihan_Variants.txt which were used for debugging ++variants_table_orig_unihan_variants_entry_used = {} ++ ++def read_unihan_variants(file): ++ for line in file: ++ line = line.strip() ++ if not re.match('^#', line): ++ if re.search('(kTraditionalVariant|kSimplifiedVariant)', line): ++ match = re.match(r'^U\+([0-9A-F]{4,5})', line) ++ if match: ++ char = unichr(int(match.group(1), 16)) ++ category = 0 # should never stay at this value ++ if re.match(re.escape(match.group(0)) ++ + r'.*' ++ + re.escape(match.group(0)), line): ++ # is both simplified and traditional ++ category = 1 | 1 << 1 ++ elif re.search('kTraditionalVariant', line): ++ category = 1 # simplified only ++ elif re.search('kSimplifiedVariant', line): ++ category = 1 << 1 # traditional only ++ logging.debug( ++ "char=%(char)s category=%(category)d line=%(line)s" ++ %{'char': char, 'category': category, 'line': line}) ++ if not char in variants_table_orig: ++ variants_table_orig[char] = category ++ if not char in variants_table_orig_unihan_variants_entry_used: ++ variants_table_orig_unihan_variants_entry_used[char] = line ++ ++def detect_chinese_category_old(phrase): ++ ''' ++ Old function using encoding conversion to guess whether ++ a text is simplified Chinese, traditional Chinese, both, ++ or unknown. Does not work well, is included here for reference ++ and for comparing with the results of the new, improved function ++ using the data from the Unihan database. ++ ''' ++ # this is the bitmask we will use, ++ # from low to high, 1st bit is simplified Chinese, ++ # 2nd bit is traditional Chinese, ++ # 3rd bit means out of gbk ++ category = 0 ++ # make sure that we got a unicode string ++ if type(phrase) != type(u''): ++ phrase = phrase.decode('utf8') ++ tmp_phrase = ''.join(re.findall(u'[' ++ + u'\u4E00-\u9FCB' ++ + u'\u3400-\u4DB5' ++ + u'\uF900-\uFaFF' ++ + u'\U00020000-\U0002A6D6' ++ + u'\U0002A700-\U0002B734' ++ + u'\U0002B740-\U0002B81D' ++ + u'\U0002F800-\U0002FA1D' ++ + u']+', ++ phrase)) ++ # first whether in gb2312 ++ try: ++ tmp_phrase.encode('gb2312') ++ category |= 1 ++ except: ++ if '〇'.decode('utf8') in tmp_phrase: ++ # we add '〇' into SC as well ++ category |= 1 ++ # second check big5-hkscs ++ try: ++ tmp_phrase.encode('big5hkscs') ++ category |= 1 << 1 ++ except: ++ # then check whether in gbk, ++ if category & 1: ++ # already know in SC ++ pass ++ else: ++ # need to check ++ try: ++ tmp_phrase.encode('gbk') ++ category |= 1 ++ except: ++ # not in gbk ++ pass ++ # then set for 3rd bit, if not in SC and TC ++ if not ( category & (1 | 1 << 1) ): ++ category |= (1 << 2) ++ return category ++ ++def write_variants_script(file): ++ file.write('''#!/usr/bin/python ++# vim:fileencoding=utf-8:sw=4:et ++ ++# auto-generated by “generate-chinese-variants.py”, do not edit here! ++# ++# Copyright (c) 2013 Mike FABIAN ++# ++# 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 3.0 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 General Public License ++# along with this program. If not, see . ++''') ++ ++ file.write(''' ++import sys ++reload (sys) ++sys.setdefaultencoding('utf-8') ++''') ++ ++ file.write(''' ++variants_table = { ++ # Meaning of the bits in the values: ++ # 1 = 1 << 0 simplified Chinese ++ # 2 = 1 << 1 traditional Chinese ++ # 3 = (1 | 1 << 1) used both in simplified *and* traditional Chinese ++ # 4 = 2 << 3 mixture of simplified and traditional Chinese ++''') ++ ++ for phrase in variants_table_orig: ++ file.write( ++ " u'" + phrase.encode('utf-8') + "': " ++ + "%s" %variants_table_orig[phrase] + ",\n") ++ ++ file.write(''' } ++''') ++ ++ file.write(''' ++def detect_chinese_category(phrase): ++ \'\'\' ++ New function using Unihan data to guess whether a text is ++ simplified Chinese, traditional Chinese, both, or something rare ++ like a mixture of exclusively simplified with exclusively traditional ++ characters. ++ ++ Meaning of the bits in the category value returned by this function: ++ 1 = 1 << 0 simplified Chinese ++ 2 = 1 << 1 traditional Chinese ++ 3 = (1 | 1 << 1) used both in simplified *and* traditional Chinese ++ 4 = 2 << 3 mixture of simplified and traditional Chinese ++ \'\'\' ++ # make sure that we got a unicode string ++ if type(phrase) != type(u''): ++ phrase = phrase.decode('utf8') ++ if phrase in variants_table: ++ # the complete phrase is in variants_table, just return the ++ # value found: ++ return variants_table[phrase] ++ category = 0xFF; ++ for c in phrase: ++ if c in variants_table: ++ category &= variants_table[c] ++ else: ++ # If it is not listed in variants_table, assume it is ++ # both simplified and traditional Chinese. ++ # It could be something non-Chinese as well then, but ++ # if it is non-Chinese, it should also be allowed to ++ # occur in any Chinese text and thus classified as ++ # both simplified *and* traditional Chinese (the emoji ++ # table for example uses many non-Chinese characters) ++ category &= (1 | 1 << 1) ++ if category == 0: ++ # If category is 0 after binary & of the categories of all the ++ # characters in the phrase, it means that the phrase contained ++ # exclusively simplified *and* exclusively traditional ++ # characters at the same time. For example if the phrase is ++ # “乌烏” then “乌” gets category 1 (simplified Chinese) ++ # and “烏” gets category 2 (traditional Chinese), the result ++ # of the binary & is thus 0. In that case, classify it as ++ # category 4 which is for weird, excentric, rare stuff. If the ++ # user selects one of the modes “all characters but ++ # simplified Chinese first” or “all characters but ++ # traditional Chinese first”, phrases with category 4 will be ++ # shown but filtered to be shown only at the end of the ++ # candidate list. ++ category = 1 << 2 ++ return category ++''') ++ ++test_data = { ++ # Meaning of the bits in the values: ++ # 1 = 1 << 0 simplified Chinese ++ # 2 = 1 << 1 traditional Chinese ++ # 3 = (1 | 1 << 1) used both in simplified *and* traditional Chinese ++ # 4 = 2 << 3 mixture of simplified and traditional Chinese ++ u'乌': 1, ++ u'烏': 2, ++ u'晞': 3, ++ u'䖷': 3, ++ u'乌烏': 4, ++ u'a☺α乌': 1, ++ u'a☺α烏': 2, ++ u'台': 3, ++ } ++ ++def test_detection(generated_script): ++ logging.info('Testing detection ...') ++ for phrase in test_data: ++ if generated_script.detect_chinese_category(phrase) != test_data[phrase]: ++ print 'phrase', phrase, repr(phrase), ++ print 'detected as', generated_script.detect_chinese_category(phrase), ++ print 'should have been', test_data[phrase], ++ print 'Test failed. exiting...' ++ exit (1) ++ else: ++ logging.info('phrase=%(p)s %(repr)s detected as %(det)d OK.' ++ %{'p': phrase, ++ 'repr': repr(phrase), ++ 'det': test_data[phrase]}) ++ logging.info('All tests passed.') ++ ++def compare_old_new_detection(phrase, generated_script): ++ ''' ++ Only for debugging. ++ ++ Compares results of the Chinese category detection using the ++ old and the new function. ++ ''' ++ if detect_chinese_category_old(phrase) != generated_script.detect_chinese_category(phrase): ++ logging.debug( ++ '%(p)s %(rp)s old=%(o)d new=%(n)d' ++ %{'p': phrase.encode('utf-8'), ++ 'rp': repr(phrase), ++ 'o': detect_chinese_category_old(phrase), ++ 'n': generated_script.detect_chinese_category(phrase)}) ++ if phrase in variants_table_orig_unihan_variants_entry_used: ++ logging.debug(variants_table_orig_unihan_variants_entry_used[phrase]) ++ ++def parse_args(): ++ import argparse ++ parser = argparse.ArgumentParser( ++ description='Generate a script containing a table and a function to check whether a string of Chinese characters is simplified or traditional') ++ parser.add_argument('-i', '--inputfilename', ++ nargs='?', ++ type=str, ++ default='./Unihan_Variants.txt', ++ help='input file, default is ./Unihan_Variants.txt') ++ parser.add_argument('-o', '--outputfilename', ++ nargs='?', ++ type=str, ++ default='./chinese-variants.py', ++ help='output file, default is ./chinese_variants.py') ++ parser.add_argument('-d', '--debug', ++ action='store_true', ++ help='print debugging output') ++ return parser.parse_args() ++ ++def main(): ++ args = parse_args() ++ log_level = logging.INFO ++ if args.debug: ++ log_level = logging.DEBUG ++ logging.basicConfig(format="%(levelname)s: %(message)s", level=log_level) ++ with open(args.inputfilename, 'r') as inputfile: ++ logging.info("input file=%s" %inputfile) ++ read_unihan_variants(inputfile) ++ with open(args.outputfilename, 'w') as outputfile: ++ logging.info("output file=%s" %outputfile) ++ write_variants_script(outputfile) ++ ++ import imp ++ generated_script = imp.load_source('dummy', args.outputfilename) ++ ++ test_detection(generated_script) ++ ++ for phrase in generated_script.variants_table: ++ compare_old_new_detection(phrase, generated_script) ++ ++if __name__ == '__main__': ++ main() ++ ++ +-- +1.7.11.7 + diff --git a/SOURCES/0002-When-tabcreatedb.py-is-called-without-any-options-pr.patch b/SOURCES/0002-When-tabcreatedb.py-is-called-without-any-options-pr.patch new file mode 100644 index 0000000..80baab4 --- /dev/null +++ b/SOURCES/0002-When-tabcreatedb.py-is-called-without-any-options-pr.patch @@ -0,0 +1,135 @@ +From 87cb7fb1ee81da34e0a6b40efba561236dff772a Mon Sep 17 00:00:00 2001 +From: Mike FABIAN +Date: Thu, 23 Jan 2014 23:26:57 +0100 +Subject: [PATCH 2/2] When tabcreatedb.py is called without any options, print + a usage message + +Do not just show a cryptic backtrace. + +Resolves: rhbz#1049760 +See: https://bugzilla.redhat.com/show_bug.cgi?id=1049760 +--- + engine/ibus-table-createdb.sgml | 8 ++++---- + engine/tabcreatedb.py | 43 +++++++++++++++++++++++++---------------- + 2 files changed, 30 insertions(+), 21 deletions(-) + +diff --git a/engine/ibus-table-createdb.sgml b/engine/ibus-table-createdb.sgml +index 6a1e439..e14ffb2 100644 +--- a/engine/ibus-table-createdb.sgml ++++ b/engine/ibus-table-createdb.sgml +@@ -108,7 +108,7 @@ manpage.1: manpage.sgml + + + +- database-file specifies the file which will contain the binary database for the IME. The default is ''. ++ database-file specifies the file name for the binary database for the IME. The default is ''. If the file name of the database is not specified, the file name of the source file before the first '.' will be appended with '.db' and that will be used as the file name of the database. + + + +@@ -125,7 +125,7 @@ manpage.1: manpage.sgml + + + +- extra-words-file specifies the file for the extra words for the IME. The default is ''. ++ extra-words-file specifies the file name for the extra words for the IME. The default is ''. + + + +@@ -134,7 +134,7 @@ manpage.1: manpage.sgml + + + +- pinyin-file specifies the source file for the pinyin. The default is /usr/share/ibus-table/data/pinyin_table.txt.bz2. ++ pinyin-file specifies the source file for the pinyin. The default is '/usr/share/ibus-table/data/pinyin_table.txt.bz2'. + + + +@@ -150,7 +150,7 @@ manpage.1: manpage.sgml + + + +- Only create an index for an existing database. ++ Only create an index for an existing database. Specifying the file name of the binary database with the -n or --name option is required when this option is used. + + + +diff --git a/engine/tabcreatedb.py b/engine/tabcreatedb.py +index 6694b13..fb6d7e2 100644 +--- a/engine/tabcreatedb.py ++++ b/engine/tabcreatedb.py +@@ -62,46 +62,55 @@ class InvalidTableName(Exception): + return 'Value of NAME attribute (%s) cannot contain any of %r and must be all ascii' % (self.table_name, _invalid_keyname_chars) + + # we use OptionParser to parse the cmd arguments :) +-opt_parser = OptionParser() ++usage = "usage: %prog [options]" ++opt_parser = OptionParser(usage=usage) + + opt_parser.add_option( '-n', '--name', +- action = 'store', dest='name',default = None, +- help = 'set the database name we will use, default is %default') ++ action = 'store', dest='name',default = '', ++ help = "specifies the file name for the binary database for the IME. The default is '%default'. If the file name of the database is not specified, the file name of the source file before the first '.' will be appended with '.db' and that will be used as the file name of the database.") + + opt_parser.add_option( '-s', '--source', +- action = 'store', dest='source', default = 'xingma.txt.bz2', +- help = 'specifies the file which contains the source file of the IME. The default is %default') ++ action = 'store', dest='source', default = '', ++ help = "specifies the file which contains the source of the IME. The default is '%default'.") + + opt_parser.add_option( '-e', '--extra', + action = 'store', dest='extra', default = '', +- help = 'specifies the file for the extra words for the IME. The default is %default') ++ help = "specifies the file name for the extra words for the IME. The default is '%default'.") + + opt_parser.add_option( '-p', '--pinyin', + action = 'store', dest='pinyin', default = '/usr/share/ibus-table/data/pinyin_table.txt.bz2', +- help = 'specifies the source file for the pinyin. The default is %default') ++ help = "specifies the source file for the pinyin. The default is '%default'.") + + opt_parser.add_option( '-o', '--no-create-index', + action = 'store_false', dest='index', default = True, +- help = 'do not create an index for a database (Only for distrubution purposes, a normal user should not use this flag!)') ++ help = 'Do not create an index for a database (Only for distrubution purposes, a normal user should not use this flag!)') + + opt_parser.add_option( '-i', '--create-index-only', + action = 'store_true', dest='only_index', default = False, +- help = 'only create an index for an existing database') ++ help = 'Only create an index for an existing database. Specifying the file name of the binary database with the -n or --name option is required when this option is used.') + + opt_parser.add_option( '-d', '--debug', + action = 'store_true', dest='debug', default = False, +- help = 'print extra debug messages') +- +- ++ help = 'Print extra debug messages.') + + opts,args = opt_parser.parse_args() +-if not opts.name and opts.only_index: +- print 'Please give me the database you want to create index on' +- sys.exit(2) +- +-if not opts.name: ++if opts.only_index: ++ if not opts.name: ++ opt_parser.print_help() ++ print('\nPlease specify the file name of the database you want to create an index on!') ++ sys.exit(2) ++ if not os.path.exists(opts.name) or not os.path.isfile(opts.name): ++ opt_parser.print_help() ++ print("\nThe database file '%s' does not exist." %opts.name) ++ sys.exit(2) ++ ++if not opts.name and opts.source: + opts.name = os.path.basename(opts.source).split('.')[0] + '.db' + ++if not opts.name: ++ opt_parser.print_help() ++ print '\nYou need to specify the file which contains the source of the IME!' ++ sys.exit(2) + + def main (): + def debug_print ( message ): +-- +1.8.4.2 + diff --git a/SOURCES/0003-Update-cmode-pproperty-in-chinese-mode-only.patch b/SOURCES/0003-Update-cmode-pproperty-in-chinese-mode-only.patch new file mode 100644 index 0000000..2dd7531 --- /dev/null +++ b/SOURCES/0003-Update-cmode-pproperty-in-chinese-mode-only.patch @@ -0,0 +1,25 @@ +From 2baa9c3ff258c0623b4777f2c537467339cdcef6 Mon Sep 17 00:00:00 2001 +From: bnauwelaerts +Date: Sat, 2 Feb 2013 17:22:40 +0100 +Subject: [PATCH 3/5] Update cmode pproperty in chinese mode only + +--- + engine/table.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/engine/table.py b/engine/table.py +index 4a10636..f0a8a61 100644 +--- a/engine/table.py ++++ b/engine/table.py +@@ -1304,7 +1304,7 @@ class tabengine (IBus.Engine): + self._set_property(self._cmode_property, 'tcb-mode.svg', _('Traditional Chinese First Big Charset Mode'), _('Switch to Big Charset Mode')) + elif self._editor._chinese_mode == 4: + self._set_property(self._cmode_property, 'cb-mode.svg', _('Big Chinese Mode'), _('Switch to Simplified Chinese Mode')) +- self.update_property(self._cmode_property) ++ self.update_property(self._cmode_property) + + def _set_property (self, property, icon, label, tooltip): + property.set_icon ( u'%s%s' % (self._icon_dir, icon ) ) +-- +1.7.11.7 + diff --git a/SOURCES/0003-add-engine-chinese_variants.py-to-engine-Makefile.am.patch b/SOURCES/0003-add-engine-chinese_variants.py-to-engine-Makefile.am.patch new file mode 100644 index 0000000..3e69dfb --- /dev/null +++ b/SOURCES/0003-add-engine-chinese_variants.py-to-engine-Makefile.am.patch @@ -0,0 +1,31 @@ +From 5b434df882093a3def36585582c84950ce7e3b52 Mon Sep 17 00:00:00 2001 +From: Mike FABIAN +Date: Mon, 28 Jan 2013 15:15:10 +0100 +Subject: [PATCH 3/3] add engine/chinese_variants.py to engine/Makefile.am + +Needed by + +commit f17e9b3aecea7b6646da689a466341936bce1ee3 +Author: Mike FABIAN +Date: Thu Jan 24 17:37:27 2013 +0100 + + Improve detection of simplified and traditional Chinese +--- + engine/Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/engine/Makefile.am b/engine/Makefile.am +index 082e177..f17afe3 100644 +--- a/engine/Makefile.am ++++ b/engine/Makefile.am +@@ -20,6 +20,7 @@ + # + + engine_table_PYTHON = \ ++ chinese_variants.py \ + factory.py \ + main.py \ + table.py \ +-- +1.7.11.7 + diff --git a/SOURCES/0004-Fall-back-to-auto_select-False-if-neither-dconf-nor-.patch b/SOURCES/0004-Fall-back-to-auto_select-False-if-neither-dconf-nor-.patch new file mode 100644 index 0000000..deb6d83 --- /dev/null +++ b/SOURCES/0004-Fall-back-to-auto_select-False-if-neither-dconf-nor-.patch @@ -0,0 +1,42 @@ +From 3d03bd8f8c558392db42897370cef65bdbad57bd Mon Sep 17 00:00:00 2001 +From: Mike FABIAN +Date: Tue, 5 Feb 2013 09:11:17 +0100 +Subject: [PATCH 4/5] Fall back to auto_select = False if neither dconf nor + the table have a value for auto_select + +--- + engine/table.py | 11 ++++++++--- + 1 file changed, 8 insertions(+), 3 deletions(-) + +diff --git a/engine/table.py b/engine/table.py +index f0a8a61..3999c35 100644 +--- a/engine/table.py ++++ b/engine/table.py +@@ -233,8 +233,10 @@ class editor(object): + self._config_section, + "AutoSelect")) + if self._auto_select == None: +- self._auto_select = self.db.get_ime_property('auto_select').lower() == u'true' +- ++ if self.db.get_ime_property('auto_select') != None: ++ self._auto_select = self.db.get_ime_property('auto_select').lower() == u'true' ++ else: ++ self._auto_select = False + + def init_select_keys(self): + # __select_keys: lookup table select keys/labels +@@ -1162,7 +1164,10 @@ class tabengine (IBus.Engine): + self._config_section, + "AutoSelect")) + if self._auto_select == None: +- self._auto_select = self.db.get_ime_property('auto_select').lower() == u'true' ++ if self.db.get_ime_property('auto_select') != None: ++ self._auto_select = self.db.get_ime_property('auto_select').lower() == u'true' ++ else: ++ self._auto_select = False + + # the commit phrases length + self._len_list = [0] +-- +1.7.11.7 + diff --git a/SOURCES/0005-Preedit-needs-to-be-updated-on-page-up-and-page-down.patch b/SOURCES/0005-Preedit-needs-to-be-updated-on-page-up-and-page-down.patch new file mode 100644 index 0000000..6aacc2a --- /dev/null +++ b/SOURCES/0005-Preedit-needs-to-be-updated-on-page-up-and-page-down.patch @@ -0,0 +1,66 @@ +From 3b7a3530c42766b801cded26b3bc269222c3fb0a Mon Sep 17 00:00:00 2001 +From: Mike FABIAN +Date: Thu, 14 Feb 2013 18:21:57 +0100 +Subject: [PATCH 5/5] Preedit needs to be updated on page-up and page-down + +When paging through the lookup table, the preedit needs to be updated +to show the phrase selected by the cursor in the lookup table. Before +this patch, the preedit was not updated and when commiting the +character selected in the lookup table suddenly replaced the character +in the preedit. This differed from the behaviour when moving through +the lookup table with the arrow-up and arrow-down keys. +Using page-up and page-down or the arrow icons at the bottom +of the lookup table should also update the preedit just like it +is done when the arrow-up and arrow-down keys are used. +--- + engine/table.py | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/engine/table.py b/engine/table.py +index 3999c35..58a8d4d 100644 +--- a/engine/table.py ++++ b/engine/table.py +@@ -1751,7 +1751,7 @@ class tabengine (IBus.Engine): + # on lookup page + if IBus.KEY_space in self._page_down_keys: + res = self._editor.page_down() +- self._update_lookup_table () ++ self._update_ui () + return res + else: + o_py = self._editor._py_mode +@@ -1826,13 +1826,13 @@ class tabengine (IBus.Engine): + elif key.code in self._page_down_keys \ + and self._editor._candidates[0]: + res = self._editor.page_down() +- self._update_lookup_table () ++ self._update_ui () + return res + + elif key.code in self._page_up_keys \ + and self._editor._candidates[0]: + res = self._editor.page_up () +- self._update_lookup_table () ++ self._update_ui () + return res + + elif keychar in self._editor.get_select_keys() and self._editor._candidates[0]: +@@ -1909,13 +1909,13 @@ class tabengine (IBus.Engine): + + def do_page_up (self): + if self._editor.page_up (): +- self._update_lookup_table () ++ self._update_ui () + return True + return False + + def do_page_down (self): + if self._editor.page_down (): +- self._update_lookup_table () ++ self._update_ui () + return True + return False + +-- +1.7.11.7 + diff --git a/SOURCES/0006-Add-man-page-for-ibus-table-createdb.patch b/SOURCES/0006-Add-man-page-for-ibus-table-createdb.patch new file mode 100644 index 0000000..4b0bba5 --- /dev/null +++ b/SOURCES/0006-Add-man-page-for-ibus-table-createdb.patch @@ -0,0 +1,298 @@ +From 99b16e2159ba4234f4f804fe10348c9f3b2a8000 Mon Sep 17 00:00:00 2001 +From: Mike FABIAN +Date: Thu, 18 Apr 2013 12:10:50 +0200 +Subject: [PATCH] Add man page for ibus-table-createdb + +See https://bugzilla.redhat.com/show_bug.cgi?id=948454 +--- + engine/Makefile.am | 12 +++ + engine/ibus-table-createdb.sgml | 206 ++++++++++++++++++++++++++++++++++++++++ + engine/tabcreatedb.py | 10 +- + 3 files changed, 223 insertions(+), 5 deletions(-) + create mode 100644 engine/ibus-table-createdb.sgml + +diff --git a/engine/Makefile.am b/engine/Makefile.am +index f17afe3..1fb070e 100644 +--- a/engine/Makefile.am ++++ b/engine/Makefile.am +@@ -19,6 +19,11 @@ + # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + # + ++DOC2MAN = docbook2man ++SGML = ibus-table-createdb.sgml ++BUILT_MANS = ibus-table-createdb.1 ++man_MANS = $(BUILT_MANS) ++ + engine_table_PYTHON = \ + chinese_variants.py \ + factory.py \ +@@ -43,6 +48,8 @@ EXTRA_DIST = \ + ibus-table-createdb.in \ + ibus-engine-table.in \ + table.xml.in \ ++ $(SGML) \ ++ $(BUILT_MANS) \ + $(NULL) + + CLEANFILES = \ +@@ -57,6 +64,11 @@ MAINTAINERCLEANFILES = \ + Makefile.in \ + $(NULL) + ++${man_MANS}: ${SGML} ++ $(AM_V_GEN) $(RM) $@; \ ++ $(DOC2MAN) ${SGML}; \ ++ $(RM) manpage.* ++ + table.xml: table.xml.in + ( \ + libexecdir=${libexecdir}; \ +diff --git a/engine/ibus-table-createdb.sgml b/engine/ibus-table-createdb.sgml +new file mode 100644 +index 0000000..86c8336 +--- /dev/null ++++ b/engine/ibus-table-createdb.sgml +@@ -0,0 +1,206 @@ ++ manpage.1'. You may view ++ the manual page with: `docbook-to-man manpage.sgml | nroff -man | ++ less'. A typical entry in a Makefile or Makefile.am is: ++ ++manpage.1: manpage.sgml ++ docbook-to-man $< > $@ ++ ++ ++ The docbook-to-man binary is found in the docbook-to-man package. ++ Please remember that if you create the nroff version in one of the ++ debian/rules file targets (such as build), you will need to include ++ docbook-to-man in your Build-Depends control field. ++ ++ --> ++ ++ ++ Mike"> ++ FABIAN"> ++ ++ Apr 18, 2013"> ++ ++ 1"> ++ mfabian@redhat.com"> ++ ++ ibus-table-createdb"> ++ ++ ++ Debian"> ++ GNU"> ++ GPL"> ++]> ++ ++ ++ ++
++ &dhemail; ++
++ ++ &dhfirstname; ++ &dhsurname; ++ ++ ++ 2013 ++ &dhusername; ++ ++ &dhdate; ++
++ ++ &dhucpackage; ++ ++ &dhsection; ++ ++ ++ &dhpackage; ++ ++ create ibus-table database from table source ++ ++ ++ ++ &dhpackage; ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ DESCRIPTION ++ ++ &dhpackage; creates a database for ++ ibus-table from a source table. ++ ++ ++ OPTIONS ++ ++ This program follows the usual &gnu; command line syntax, ++ with long options starting with two dashes (`-'). A summary of ++ options is included below. ++ ++ ++ ++ ++ ++ ++ ++ database-file specifies the file which will contain the binary database for the IME. The default is ''. ++ ++
++ ++ ++ ++ ++ ++ source-file specifies the file which contains the source of the IME. The default is ''. ++ ++ ++ ++ ++ ++ ++ ++ ++ extra-words-file specifies the file for the extra words for the IME. The default is ''. ++ ++ ++ ++ ++ ++ ++ ++ ++ pinyin-file specifies the source file for the pinyin. The default is /usr/share/ibus-table/data/pinyin_table.txt.bz2. ++ ++ ++ ++ ++ ++ ++ ++ Do not create an index for for a database (Only for distribution purposes, a normal user should not use this flag!) ++ ++ ++ ++ ++ ++ ++ ++ Only create an index for an existing database. ++ ++ ++ ++ ++ ++ ++ ++ Print extra debug messages. ++ ++ ++ ++ ++ ++ ++ EXAMPLES ++ ++ ++ ++ ibus-table-createdb -n ipa-x-sampa.db -s ipa-x-sampa.txt ++ Create the binary database ipa-x-sampa.db from the source file ipa-x-sampa.txt. ++ ++ ++ ibus-table-createdb -i -n ipa-x-sampa.db ++ Create an index for the database ipa-x-sampa.db. ++ ++ ++ ++ ++ ++ ++ AUTHOR ++ ++ This manual page was written by &dhusername; &dhemail;. ++ ++ ++ ++ ++ +diff --git a/engine/tabcreatedb.py b/engine/tabcreatedb.py +index 19ebacc..6694b13 100644 +--- a/engine/tabcreatedb.py ++++ b/engine/tabcreatedb.py +@@ -70,23 +70,23 @@ opt_parser.add_option( '-n', '--name', + + opt_parser.add_option( '-s', '--source', + action = 'store', dest='source', default = 'xingma.txt.bz2', +- help = 'tell me which file is the source file of IME, default is %default') ++ help = 'specifies the file which contains the source file of the IME. The default is %default') + + opt_parser.add_option( '-e', '--extra', + action = 'store', dest='extra', default = '', +- help = 'tell me which file is the extra words file for IME, default is %default') ++ help = 'specifies the file for the extra words for the IME. The default is %default') + + opt_parser.add_option( '-p', '--pinyin', + action = 'store', dest='pinyin', default = '/usr/share/ibus-table/data/pinyin_table.txt.bz2', +- help = 'tell me which file is the source file of pinyin, default is %default') ++ help = 'specifies the source file for the pinyin. The default is %default') + + opt_parser.add_option( '-o', '--no-create-index', + action = 'store_false', dest='index', default = True, +- help = 'do not create index on database, only for distrubution purpose, normal user should not invoke this flag!') ++ help = 'do not create an index for a database (Only for distrubution purposes, a normal user should not use this flag!)') + + opt_parser.add_option( '-i', '--create-index-only', + action = 'store_true', dest='only_index', default = False, +- help = 'only create index on exist database') ++ help = 'only create an index for an existing database') + + opt_parser.add_option( '-d', '--debug', + action = 'store_true', dest='debug', default = False, +-- +1.8.4.2 + diff --git a/SOURCES/0007-prebuilt-files-for-man-page-for-ibus-table-createdb.patch b/SOURCES/0007-prebuilt-files-for-man-page-for-ibus-table-createdb.patch new file mode 100644 index 0000000..95201d7 --- /dev/null +++ b/SOURCES/0007-prebuilt-files-for-man-page-for-ibus-table-createdb.patch @@ -0,0 +1,256 @@ +diff -Nru ibus-table-1.5.0.orig/engine/Makefile.in ibus-table-1.5.0/engine/Makefile.in +--- ibus-table-1.5.0.orig/engine/Makefile.in 2014-01-14 10:28:10.066194361 +0100 ++++ ibus-table-1.5.0/engine/Makefile.in 2014-01-14 10:28:33.371351530 +0100 +@@ -1,9 +1,8 @@ +-# Makefile.in generated by automake 1.11.6 from Makefile.am. ++# Makefile.in generated by automake 1.12.2 from Makefile.am. + # @configure_input@ + +-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +-# 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software +-# Foundation, Inc. ++# Copyright (C) 1994-2012 Free Software Foundation, Inc. ++ + # This Makefile.in is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, + # with or without modifications, as long as this notice is preserved. +@@ -76,7 +75,8 @@ + subdir = engine + DIST_COMMON = $(engine_table_PYTHON) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(srcdir)/ibus-engine-table.in \ +- $(srcdir)/ibus-table-createdb.in $(srcdir)/table.xml.in.in ++ $(srcdir)/ibus-table-createdb.in $(srcdir)/table.xml.in.in \ ++ $(top_srcdir)/py-compile + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ +@@ -117,8 +117,8 @@ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } + am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libexecdir)" \ +- "$(DESTDIR)$(engine_tabledir)" "$(DESTDIR)$(enginedir)" \ +- "$(DESTDIR)$(engine_tabledir)" ++ "$(DESTDIR)$(engine_tabledir)" "$(DESTDIR)$(man1dir)" \ ++ "$(DESTDIR)$(enginedir)" "$(DESTDIR)$(engine_tabledir)" + SCRIPTS = $(bin_SCRIPTS) $(libexec_SCRIPTS) + SOURCES = + DIST_SOURCES = +@@ -129,6 +129,9 @@ + esac + am__py_compile = PYTHON=$(PYTHON) $(SHELL) $(py_compile) + py_compile = $(top_srcdir)/py-compile ++man1dir = $(mandir)/man1 ++NROFF = nroff ++MANS = $(man_MANS) + DATA = $(engine_DATA) $(engine_table_DATA) + DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) + ACLOCAL = @ACLOCAL@ +@@ -253,6 +256,10 @@ + top_build_prefix = @top_build_prefix@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ ++DOC2MAN = docbook2man ++SGML = ibus-table-createdb.sgml ++BUILT_MANS = ibus-table-createdb.1 ++man_MANS = $(BUILT_MANS) + engine_table_PYTHON = \ + chinese_variants.py \ + factory.py \ +@@ -275,6 +282,8 @@ + ibus-table-createdb.in \ + ibus-engine-table.in \ + table.xml.in \ ++ $(SGML) \ ++ $(BUILT_MANS) \ + $(NULL) + + CLEANFILES = \ +@@ -436,6 +445,49 @@ + $(am__uninstall_files_from_dir) || st=$$?; \ + done; \ + exit $$st ++install-man1: $(man_MANS) ++ @$(NORMAL_INSTALL) ++ @list1=''; \ ++ list2='$(man_MANS)'; \ ++ test -n "$(man1dir)" \ ++ && test -n "`echo $$list1$$list2`" \ ++ || exit 0; \ ++ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \ ++ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \ ++ { for i in $$list1; do echo "$$i"; done; \ ++ if test -n "$$list2"; then \ ++ for i in $$list2; do echo "$$i"; done \ ++ | sed -n '/\.1[a-z]*$$/p'; \ ++ fi; \ ++ } | while read p; do \ ++ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ ++ echo "$$d$$p"; echo "$$p"; \ ++ done | \ ++ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ ++ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ ++ sed 'N;N;s,\n, ,g' | { \ ++ list=; while read file base inst; do \ ++ if test "$$base" = "$$inst"; then list="$$list $$file"; else \ ++ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \ ++ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \ ++ fi; \ ++ done; \ ++ for i in $$list; do echo "$$i"; done | $(am__base_list) | \ ++ while read files; do \ ++ test -z "$$files" || { \ ++ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \ ++ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \ ++ done; } ++ ++uninstall-man1: ++ @$(NORMAL_UNINSTALL) ++ @list=''; test -n "$(man1dir)" || exit 0; \ ++ files=`{ for i in $$list; do echo "$$i"; done; \ ++ l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ ++ sed -n '/\.1[a-z]*$$/p'; \ ++ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \ ++ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ ++ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir) + install-engineDATA: $(engine_DATA) + @$(NORMAL_INSTALL) + @list='$(engine_DATA)'; test -n "$(enginedir)" || list=; \ +@@ -484,8 +536,23 @@ + ctags: CTAGS + CTAGS: + ++cscope cscopelist: ++ + + distdir: $(DISTFILES) ++ @list='$(MANS)'; if test -n "$$list"; then \ ++ list=`for p in $$list; do \ ++ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ ++ if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ ++ if test -n "$$list" && \ ++ grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ ++ echo "error: found man pages containing the 'missing help2man' replacement text:" >&2; \ ++ grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ ++ echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ ++ echo " typically 'make maintainer-clean' will remove them" >&2; \ ++ exit 1; \ ++ else :; fi; \ ++ else :; fi + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ +@@ -517,9 +584,9 @@ + done + check-am: all-am + check: check-am +-all-am: Makefile $(SCRIPTS) $(DATA) ++all-am: Makefile $(SCRIPTS) $(MANS) $(DATA) + installdirs: +- for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(engine_tabledir)" "$(DESTDIR)$(enginedir)" "$(DESTDIR)$(engine_tabledir)"; do \ ++ for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(engine_tabledir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(enginedir)" "$(DESTDIR)$(engine_tabledir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done + install: install-am +@@ -575,7 +642,7 @@ + info-am: + + install-data-am: install-engineDATA install-engine_tableDATA \ +- install-engine_tablePYTHON ++ install-engine_tablePYTHON install-man + + install-dvi: install-dvi-am + +@@ -591,7 +658,7 @@ + + install-info-am: + +-install-man: ++install-man: install-man1 + + install-pdf: install-pdf-am + +@@ -621,7 +688,9 @@ + + uninstall-am: uninstall-binSCRIPTS uninstall-engineDATA \ + uninstall-engine_tableDATA uninstall-engine_tablePYTHON \ +- uninstall-libexecSCRIPTS ++ uninstall-libexecSCRIPTS uninstall-man ++ ++uninstall-man: uninstall-man1 + + .MAKE: install-am install-strip + +@@ -632,14 +701,19 @@ + install-engine_tableDATA install-engine_tablePYTHON \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-libexecSCRIPTS \ +- install-man install-pdf install-pdf-am install-ps \ ++ install-man install-man1 install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \ + uninstall-am uninstall-binSCRIPTS uninstall-engineDATA \ + uninstall-engine_tableDATA uninstall-engine_tablePYTHON \ +- uninstall-libexecSCRIPTS ++ uninstall-libexecSCRIPTS uninstall-man uninstall-man1 ++ + ++${man_MANS}: ${SGML} ++ $(AM_V_GEN) $(RM) $@; \ ++ $(DOC2MAN) ${SGML}; \ ++ $(RM) manpage.* + + table.xml: table.xml.in + ( \ +diff -Nru ibus-table-1.5.0.orig/engine/ibus-table-createdb.1 ibus-table-1.5.0/engine/ibus-table-createdb.1 +--- ibus-table-1.5.0.orig/engine/ibus-table-createdb.1 1970-01-01 01:00:00.000000000 +0100 ++++ ibus-table-1.5.0/engine/ibus-table-createdb.1 2014-01-14 09:26:33.652424633 +0100 +@@ -0,0 +1,48 @@ ++.\" auto-generated by docbook2man-spec from docbook-utils package ++.TH "IBUS-TABLE-CREATEDB" "1" "Apr 18, 2013" "" "" ++.SH NAME ++ibus-table-createdb \- create ibus-table database from table source ++.SH SYNOPSIS ++.sp ++\fBibus-table-createdb\fR [ \fB [ -n \fIname\fB ] [ --name \fIname\fB ] \fR ] [ \fB [ -s \fIsource\fB ] [ --source \fIsource\fB ] \fR ] [ \fB [ -e \fIextra\fB ] [ --extra \fIextra\fB ] \fR ] [ \fB [ -p \fIpinyin\fB ] [ --pinyin \fIpinyin\fB ] \fR ] [ \fB-o\fR ] [ \fB--no-create-index\fR ] [ \fB-i\fR ] [ \fB--create-index-only\fR ] [ \fB-d\fR ] [ \fB--debug\fR ] ++ ++.SH "DESCRIPTION" ++.PP ++\fBibus-table-createdb\fR creates a database for ++ibus-table from a source table. ++.SH "OPTIONS" ++.PP ++This program follows the usual GNU command line syntax, ++with long options starting with two dashes (`-'). A summary of ++options is included below. ++.TP ++\fB-n\fR ++\fIdatabase-file\fR specifies the file which will contain the binary database for the IME. The default is ''. ++.TP ++\fB-s\fR ++\fIsource-file\fR specifies the file which contains the source of the IME. The default is ''. ++.TP ++\fB-e\fR ++\fIextra-words-file\fR specifies the file for the extra words for the IME. The default is ''. ++.TP ++\fB-p\fR ++\fIpinyin-file\fR specifies the source file for the pinyin. The default is /usr/share/ibus-table/data/pinyin_table.txt.bz2. ++.TP ++\fB-o\fR ++Do not create an index for for a database (Only for distribution purposes, a normal user should not use this flag!) ++.TP ++\fB-i\fR ++Only create an index for an existing database. ++.TP ++\fB-d\fR ++Print extra debug messages. ++.SH "EXAMPLES" ++.TP ++\fBibus-table-createdb -n ipa-x-sampa.db -s ipa-x-sampa.txt\fR ++Create the binary database ``ipa-x-sampa.db'' from the source file ``ipa-x-sampa.txt''\&. ++.TP ++\fBibus-table-createdb -i -n ipa-x-sampa.db\fR ++Create an index for the database ``ipa-x-sampa.db''\&. ++.SH "AUTHOR" ++.PP ++This manual page was written by Mike FABIAN \&. diff --git a/SOURCES/0008-prebuilt-files-for-man-page-for-ibus-table-createdb.patch b/SOURCES/0008-prebuilt-files-for-man-page-for-ibus-table-createdb.patch new file mode 100644 index 0000000..e7c449e --- /dev/null +++ b/SOURCES/0008-prebuilt-files-for-man-page-for-ibus-table-createdb.patch @@ -0,0 +1,255 @@ +diff -Nru ibus-table-1.5.0.orig/engine/Makefile.in ibus-table-1.5.0/engine/Makefile.in +--- ibus-table-1.5.0.orig/engine/Makefile.in 2014-01-24 09:07:09.814525660 +0100 ++++ ibus-table-1.5.0/engine/Makefile.in 2014-01-24 09:07:34.954690472 +0100 +@@ -1,7 +1,7 @@ +-# Makefile.in generated by automake 1.12.2 from Makefile.am. ++# Makefile.in generated by automake 1.13.4 from Makefile.am. + # @configure_input@ + +-# Copyright (C) 1994-2012 Free Software Foundation, Inc. ++# Copyright (C) 1994-2013 Free Software Foundation, Inc. + + # This Makefile.in is free software; the Free Software Foundation + # gives unlimited permission to copy and/or distribute it, +@@ -37,23 +37,51 @@ + + + VPATH = @srcdir@ +-am__make_dryrun = \ +- { \ +- am__dry=no; \ ++am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' ++am__make_running_with_option = \ ++ case $${target_option-} in \ ++ ?) ;; \ ++ *) echo "am__make_running_with_option: internal error: invalid" \ ++ "target option '$${target_option-}' specified" >&2; \ ++ exit 1;; \ ++ esac; \ ++ has_opt=no; \ ++ sane_makeflags=$$MAKEFLAGS; \ ++ if $(am__is_gnu_make); then \ ++ sane_makeflags=$$MFLAGS; \ ++ else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ +- echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ +- | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ +- *) \ +- for am__flg in $$MAKEFLAGS; do \ +- case $$am__flg in \ +- *=*|--*) ;; \ +- *n*) am__dry=yes; break;; \ +- esac; \ +- done;; \ ++ bs=\\; \ ++ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ ++ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ +- test $$am__dry = yes; \ +- } ++ fi; \ ++ skip_next=no; \ ++ strip_trailopt () \ ++ { \ ++ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ ++ }; \ ++ for flg in $$sane_makeflags; do \ ++ test $$skip_next = yes && { skip_next=no; continue; }; \ ++ case $$flg in \ ++ *=*|--*) continue;; \ ++ -*I) strip_trailopt 'I'; skip_next=yes;; \ ++ -*I?*) strip_trailopt 'I';; \ ++ -*O) strip_trailopt 'O'; skip_next=yes;; \ ++ -*O?*) strip_trailopt 'O';; \ ++ -*l) strip_trailopt 'l'; skip_next=yes;; \ ++ -*l?*) strip_trailopt 'l';; \ ++ -[dEDm]) skip_next=yes;; \ ++ -[JT]) skip_next=yes;; \ ++ esac; \ ++ case $$flg in \ ++ *$$target_option*) has_opt=yes; break;; \ ++ esac; \ ++ done; \ ++ test $$has_opt = yes ++am__make_dryrun = (target_option=n; $(am__make_running_with_option)) ++am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) + pkgdatadir = $(datadir)/@PACKAGE@ + pkgincludedir = $(includedir)/@PACKAGE@ + pkglibdir = $(libdir)/@PACKAGE@ +@@ -73,10 +101,10 @@ + build_triplet = @build@ + host_triplet = @host@ + subdir = engine +-DIST_COMMON = $(engine_table_PYTHON) $(srcdir)/Makefile.am \ +- $(srcdir)/Makefile.in $(srcdir)/ibus-engine-table.in \ ++DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ ++ $(srcdir)/ibus-engine-table.in \ + $(srcdir)/ibus-table-createdb.in $(srcdir)/table.xml.in.in \ +- $(top_srcdir)/py-compile ++ $(engine_table_PYTHON) $(top_srcdir)/py-compile + ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 + am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \ +@@ -120,6 +148,18 @@ + "$(DESTDIR)$(engine_tabledir)" "$(DESTDIR)$(man1dir)" \ + "$(DESTDIR)$(enginedir)" "$(DESTDIR)$(engine_tabledir)" + SCRIPTS = $(bin_SCRIPTS) $(libexec_SCRIPTS) ++AM_V_P = $(am__v_P_@AM_V@) ++am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) ++am__v_P_0 = false ++am__v_P_1 = : ++AM_V_GEN = $(am__v_GEN_@AM_V@) ++am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) ++am__v_GEN_0 = @echo " GEN " $@; ++am__v_GEN_1 = ++AM_V_at = $(am__v_at_@AM_V@) ++am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) ++am__v_at_0 = @ ++am__v_at_1 = + SOURCES = + DIST_SOURCES = + am__can_run_installinfo = \ +@@ -128,14 +168,18 @@ + *) (install-info --version) >/dev/null 2>&1;; \ + esac + am__py_compile = PYTHON=$(PYTHON) $(SHELL) $(py_compile) ++am__pep3147_tweak = \ ++ sed -e 's|\.py$$||' -e 's|[^/]*$$|__pycache__/&.*.py|' + py_compile = $(top_srcdir)/py-compile + man1dir = $(mandir)/man1 + NROFF = nroff + MANS = $(man_MANS) + DATA = $(engine_DATA) $(engine_table_DATA) ++am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) + DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) + ACLOCAL = @ACLOCAL@ + AMTAR = @AMTAR@ ++AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ + AUTOCONF = @AUTOCONF@ + AUTOHEADER = @AUTOHEADER@ + AUTOMAKE = @AUTOMAKE@ +@@ -435,13 +479,23 @@ + uninstall-engine_tablePYTHON: + @$(NORMAL_UNINSTALL) + @list='$(engine_table_PYTHON)'; test -n "$(engine_tabledir)" || list=; \ +- files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ +- test -n "$$files" || exit 0; \ ++ py_files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ ++ test -n "$$py_files" || exit 0; \ + dir='$(DESTDIR)$(engine_tabledir)'; \ +- filesc=`echo "$$files" | sed 's|$$|c|'`; \ +- fileso=`echo "$$files" | sed 's|$$|o|'`; \ ++ pyc_files=`echo "$$py_files" | sed 's|$$|c|'`; \ ++ pyo_files=`echo "$$py_files" | sed 's|$$|o|'`; \ ++ py_files_pep3147=`echo "$$py_files" | $(am__pep3147_tweak)`; \ ++ echo "$$py_files_pep3147";\ ++ pyc_files_pep3147=`echo "$$py_files_pep3147" | sed 's|$$|c|'`; \ ++ pyo_files_pep3147=`echo "$$py_files_pep3147" | sed 's|$$|o|'`; \ + st=0; \ +- for files in "$$files" "$$filesc" "$$fileso"; do \ ++ for files in \ ++ "$$py_files" \ ++ "$$pyc_files" \ ++ "$$pyo_files" \ ++ "$$pyc_files_pep3147" \ ++ "$$pyo_files_pep3147" \ ++ ; do \ + $(am__uninstall_files_from_dir) || st=$$?; \ + done; \ + exit $$st +@@ -530,29 +584,14 @@ + @list='$(engine_table_DATA)'; test -n "$(engine_tabledir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(engine_tabledir)'; $(am__uninstall_files_from_dir) +-tags: TAGS +-TAGS: ++tags TAGS: + +-ctags: CTAGS +-CTAGS: ++ctags CTAGS: + + cscope cscopelist: + + + distdir: $(DISTFILES) +- @list='$(MANS)'; if test -n "$$list"; then \ +- list=`for p in $$list; do \ +- if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ +- if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \ +- if test -n "$$list" && \ +- grep 'ab help2man is required to generate this page' $$list >/dev/null; then \ +- echo "error: found man pages containing the 'missing help2man' replacement text:" >&2; \ +- grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \ +- echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \ +- echo " typically 'make maintainer-clean' will remove them" >&2; \ +- exit 1; \ +- else :; fi; \ +- else :; fi + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ +@@ -694,18 +733,19 @@ + + .MAKE: install-am install-strip + +-.PHONY: all all-am check check-am clean clean-generic distclean \ +- distclean-generic distdir dvi dvi-am html html-am info info-am \ +- install install-am install-binSCRIPTS install-data \ +- install-data-am install-dvi install-dvi-am install-engineDATA \ +- install-engine_tableDATA install-engine_tablePYTHON \ +- install-exec install-exec-am install-html install-html-am \ +- install-info install-info-am install-libexecSCRIPTS \ +- install-man install-man1 install-pdf install-pdf-am install-ps \ +- install-ps-am install-strip installcheck installcheck-am \ +- installdirs maintainer-clean maintainer-clean-generic \ +- mostlyclean mostlyclean-generic pdf pdf-am ps ps-am uninstall \ +- uninstall-am uninstall-binSCRIPTS uninstall-engineDATA \ ++.PHONY: all all-am check check-am clean clean-generic cscopelist-am \ ++ ctags-am distclean distclean-generic distdir dvi dvi-am html \ ++ html-am info info-am install install-am install-binSCRIPTS \ ++ install-data install-data-am install-dvi install-dvi-am \ ++ install-engineDATA install-engine_tableDATA \ ++ install-engine_tablePYTHON install-exec install-exec-am \ ++ install-html install-html-am install-info install-info-am \ ++ install-libexecSCRIPTS install-man install-man1 install-pdf \ ++ install-pdf-am install-ps install-ps-am install-strip \ ++ installcheck installcheck-am installdirs maintainer-clean \ ++ maintainer-clean-generic mostlyclean mostlyclean-generic pdf \ ++ pdf-am ps ps-am tags-am uninstall uninstall-am \ ++ uninstall-binSCRIPTS uninstall-engineDATA \ + uninstall-engine_tableDATA uninstall-engine_tablePYTHON \ + uninstall-libexecSCRIPTS uninstall-man uninstall-man1 + +diff -Nru ibus-table-1.5.0.orig/engine/ibus-table-createdb.1 ibus-table-1.5.0/engine/ibus-table-createdb.1 +--- ibus-table-1.5.0.orig/engine/ibus-table-createdb.1 2014-01-24 09:07:09.814525660 +0100 ++++ ibus-table-1.5.0/engine/ibus-table-createdb.1 2014-01-24 09:07:30.058658483 +0100 +@@ -17,22 +17,22 @@ + options is included below. + .TP + \fB-n\fR +-\fIdatabase-file\fR specifies the file which will contain the binary database for the IME. The default is ''. ++\fIdatabase-file\fR specifies the file name for the binary database for the IME. The default is ''. If the file name of the database is not specified, the file name of the source file before the first '.' will be appended with '.db' and that will be used as the file name of the database. + .TP + \fB-s\fR + \fIsource-file\fR specifies the file which contains the source of the IME. The default is ''. + .TP + \fB-e\fR +-\fIextra-words-file\fR specifies the file for the extra words for the IME. The default is ''. ++\fIextra-words-file\fR specifies the file name for the extra words for the IME. The default is ''. + .TP + \fB-p\fR +-\fIpinyin-file\fR specifies the source file for the pinyin. The default is /usr/share/ibus-table/data/pinyin_table.txt.bz2. ++\fIpinyin-file\fR specifies the source file for the pinyin. The default is '/usr/share/ibus-table/data/pinyin_table.txt.bz2'. + .TP + \fB-o\fR +-Do not create an index for for a database (Only for distribution purposes, a normal user should not use this flag!) ++Do not create an index for a database (Only for distribution purposes, a normal user should not use this flag!) + .TP + \fB-i\fR +-Only create an index for an existing database. ++Only create an index for an existing database. Specifying the file name of the binary database with the -n or --name option is required when this option is used. + .TP + \fB-d\fR + Print extra debug messages. diff --git a/SOURCES/add-engine-chinese_variants.py-to-engine-Makefile.in.patch b/SOURCES/add-engine-chinese_variants.py-to-engine-Makefile.in.patch new file mode 100644 index 0000000..32e912c --- /dev/null +++ b/SOURCES/add-engine-chinese_variants.py-to-engine-Makefile.in.patch @@ -0,0 +1,12 @@ +diff -ru ibus-table-1.5.0/engine/Makefile.in ibus-table-1.5.0/engine/Makefile.in +--- ibus-table-1.5.0/engine/Makefile.in 2013-01-28 15:43:30.000000000 +0100 ++++ ibus-table-1.5.0/engine/Makefile.in 2013-01-28 17:10:33.749435024 +0100 +@@ -254,6 +254,7 @@ + top_builddir = @top_builddir@ + top_srcdir = @top_srcdir@ + engine_table_PYTHON = \ ++ chinese_variants.py \ + factory.py \ + main.py \ + table.py \ + diff --git a/SOURCES/ibus-table-1.3.9.20110827-uppercase-umlauts.patch b/SOURCES/ibus-table-1.3.9.20110827-uppercase-umlauts.patch new file mode 100644 index 0000000..6f542d5 --- /dev/null +++ b/SOURCES/ibus-table-1.3.9.20110827-uppercase-umlauts.patch @@ -0,0 +1,16 @@ +diff -ru ibus-table-1.3.9.20120904.orig/engine/tabdict.py ibus-table-1.3.9.20120904/engine/tabdict.py +--- ibus-table-1.3.9.20120904.orig/engine/tabdict.py 2012-09-03 16:51:59.000000000 +0200 ++++ ibus-table-1.3.9.20120904/engine/tabdict.py 2012-09-04 14:50:32.186626109 +0200 +@@ -54,7 +54,10 @@ + # for translit + gen_uni('ä'):95, + gen_uni('ö'):96, +- gen_uni('ü'):97 ++ gen_uni('ü'):97, ++ gen_uni('Ä'):98, ++ gen_uni('Ö'):99, ++ gen_uni('Ü'):100 + } + + tab_key_list = tab_dict.keys() +ibus-table-1.3.9.20120904/engineだけに発見: tabdict.py.~1~ diff --git a/SPECS/ibus-table.spec b/SPECS/ibus-table.spec new file mode 100644 index 0000000..41d84fd --- /dev/null +++ b/SPECS/ibus-table.spec @@ -0,0 +1,347 @@ +Name: ibus-table +Version: 1.5.0 +Release: 5%{?dist} +Summary: The Table engine for IBus platform +License: LGPLv2+ +Group: System Environment/Libraries +URL: http://code.google.com/p/ibus/ +Source0: http://mfabian.fedorapeople.org/ibus-table/%{name}-%{version}.tar.gz +Patch1: ibus-table-1.3.9.20110827-uppercase-umlauts.patch +Patch2: 0001-Changes-in-dconf-values-now-get-applied-immediately.patch +Patch3: 0001-Make-comments-about-_chinese_mode-clearer.patch +Patch4: 0002-Improve-detection-of-simplified-and-traditional-Chin.patch +Patch5: 0003-add-engine-chinese_variants.py-to-engine-Makefile.am.patch +Patch6: add-engine-chinese_variants.py-to-engine-Makefile.in.patch +Patch7: 0001-Fix-typo-thanks-to-Mathieu-Bridon.patch +Patch8: 0002-Add-auto_select-functionality-to-select-the-first-ph.patch +Patch9: 0003-Update-cmode-pproperty-in-chinese-mode-only.patch +Patch10: 0004-Fall-back-to-auto_select-False-if-neither-dconf-nor-.patch +Patch11: 0005-Preedit-needs-to-be-updated-on-page-up-and-page-down.patch +Patch12: 0006-Add-man-page-for-ibus-table-createdb.patch +Patch13: 0007-prebuilt-files-for-man-page-for-ibus-table-createdb.patch +Patch14: 0001-Fix-typo-in-ibus-table-createdb-man-page.patch +Patch15: 0002-When-tabcreatedb.py-is-called-without-any-options-pr.patch +Patch16: 0008-prebuilt-files-for-man-page-for-ibus-table-createdb.patch + +Requires: ibus > 1.3.0 +BuildRequires: ibus-devel > 1.3.0 + +Obsoletes: ibus-table-additional < 1.2.0.20100111-5 + +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildArch: noarch + +%description +The Table engine for IBus platform. + +%package -n %{name}-devel +Summary: Development files for %{name} +Group: Development/Libraries +Requires: %{name} = %{version}-%{release}, pkgconfig + +%description -n %{name}-devel +Development files for %{name}. + +%prep +%setup -q +%patch1 -p1 -b .uppercase-umlauts +%patch2 -p1 -b .apply-dconf-changes +%patch3 -p1 -b .make-comments-about-chinese-mode-clearer +%patch4 -p1 -b .improve-detection-of-simplified-and-traditional-chinese +%patch5 -p1 -b .fix-makefile-am +%patch6 -p1 -b .fix-makefile-in +%patch7 -p1 -b .fix-typo +%patch8 -p1 -b .add-auto-select +%patch9 -p1 -b .update-cmode-in-chinese-mode-only +%patch10 -p1 -b .fall-back-to-auto-select-false-by-default +%patch11 -p1 -b .preedit-needs-to-be-updated-when-paging +%patch12 -p1 -b .Add-man-page-for-ibus-table-createdb +%patch13 -p1 -b .prebuilt-files-for-man-page-for-ibus-table-createdb +%patch14 -p1 -b .Fix-typo-in-ibus-table-createdb-man-page +%patch15 -p1 -b .When-tabcreatedb.py-is-called-without-any-options-pr +%patch16 -p1 -b .prebuilt-files-for-man-page-for-ibus-table-createdb + +%build +%configure --disable-static --disable-additional +%__make %{?_smp_mflags} + +%install +%__rm -rf $RPM_BUILD_ROOT +%__make DESTDIR=${RPM_BUILD_ROOT} NO_INDEX=true install pkgconfigdir=%{_datadir}/pkgconfig + +%find_lang %{name} + +%clean +%__rm -rf $RPM_BUILD_ROOT + + +%files -f %{name}.lang +%defattr(-,root,root,-) +%doc AUTHORS COPYING README +%dir %{_datadir}/%{name} +%dir %{_datadir}/%{name}/engine +%dir %{_datadir}/%{name}/tables +%dir %{_datadir}/%{name}/icons +%dir %{_datadir}/%{name}/data +%{_datadir}/ibus/component/table.xml +%{_datadir}/%{name}/icons/%{name}.svg +%{_datadir}/%{name}/icons/full-letter.svg +%{_datadir}/%{name}/icons/full-punct.svg +%{_datadir}/%{name}/icons/half-letter.svg +%{_datadir}/%{name}/icons/half-punct.svg +%{_datadir}/%{name}/icons/onechar.svg +%{_datadir}/%{name}/icons/phrase.svg +%{_datadir}/%{name}/icons/py-mode.svg +%{_datadir}/%{name}/icons/tab-mode.svg +%{_datadir}/%{name}/icons/chinese.svg +%{_datadir}/%{name}/icons/acommit.svg +%{_datadir}/%{name}/icons/english.svg +%{_datadir}/%{name}/icons/ncommit.svg +%{_datadir}/%{name}/icons/cb-mode.svg +%{_datadir}/%{name}/icons/sc-mode.svg +%{_datadir}/%{name}/icons/scb-mode.svg +%{_datadir}/%{name}/icons/tc-mode.svg +%{_datadir}/%{name}/icons/tcb-mode.svg +%{_datadir}/%{name}/data/pinyin_table.txt.bz2 +%{_datadir}/%{name}/engine/chinese_variants.py +%{_datadir}/%{name}/engine/chinese_variants.pyc +%{_datadir}/%{name}/engine/chinese_variants.pyo +%{_datadir}/%{name}/engine/factory.py +%{_datadir}/%{name}/engine/factory.pyc +%{_datadir}/%{name}/engine/factory.pyo +%{_datadir}/%{name}/engine/main.py +%{_datadir}/%{name}/engine/main.pyc +%{_datadir}/%{name}/engine/main.pyo +%{_datadir}/%{name}/engine/tabcreatedb.py +%{_datadir}/%{name}/engine/tabcreatedb.pyc +%{_datadir}/%{name}/engine/tabcreatedb.pyo +%{_datadir}/%{name}/engine/tabdict.py +%{_datadir}/%{name}/engine/tabdict.pyc +%{_datadir}/%{name}/engine/tabdict.pyo +%{_datadir}/%{name}/engine/table.py +%{_datadir}/%{name}/engine/table.pyc +%{_datadir}/%{name}/engine/table.pyo +%{_datadir}/%{name}/engine/tabsqlitedb.py +%{_datadir}/%{name}/engine/tabsqlitedb.pyc +%{_datadir}/%{name}/engine/tabsqlitedb.pyo +%{_datadir}/%{name}/tables/template.txt +%{_bindir}/%{name}-createdb +%{_libexecdir}/ibus-engine-table +%{_mandir}/man1/* + +%files devel +%defattr(-, root, root, -) +%{_datadir}/pkgconfig/%{name}.pc + +%changelog +* Fri Jan 24 2014 Mike FABIAN - 1.5.0-5 +- Resolves: rhbz#1049760 - [ALL LANG] Traceback produced when run ibus-table-createdb from terminal. +- When tabcreatedb.py is called without any options, print a usage message. Do not just show a cryptic backtrace. + +* Tue Jan 14 2014 Mike FABIAN - 1.5.0-4 +- Resolves: rhbz#948454 - Man page scan results for ibus-table + +* Fri Dec 27 2013 Daniel Mach - 1.5.0-3 +- Mass rebuild 2013-12-27 + +* Thu Feb 14 2013 Mike FABIAN - 1.5.0-2 +- Resolves: #911487 - Non-Chinese tables from the ibus-table-other package do not work +- Add auto_select functionality to select the first phrase when typing. + Useful for Cyrillic transliteration +- Update cmode property in chinese mode only +- Fall back to auto_select = False if neither dconf nor the table + have a value for auto_select +- Preedit needs to be updated on page-up and page-down + +* Mon Jan 28 2013 Mike FABIAN - 1.5.0-1 +- update to latest upstream 1.5.0 from Caius ‘kaio’ Chance’s repository +- add patches for better simplified/traditional Chinese detection +- Resolves: #857967 - simplified/traditional Chinese detection in ibus-table does not work well + +* Thu Jan 10 2013 Mike FABIAN - 1.4.99.20130110-1 +- Resolves: #513901 ibus-table setup does not store config settings +- update to latest upstream 1.4.99.20130110 from Caius ‘kaio’ Chance’s repository, 1.5.0 branch +- When detecting the Chinese mode from the environment, also check LC_ALL +- Fix typo in self._chinese_mode variable (The typo broke the SC/TC property) +- Make cursor in lookup table always visible (became invisible after the port to GObjectIntrospection) +- apply changes in values of dconf keys immediately + +* Tue Jan 08 2013 Mike FABIAN - 1.4.99.20130108-1 +- update to latest upstream 1.4.99.20130108 from Caius ‘kaio’ Chance’s repository, 1.5.0 branch +- includes port to GObjectIntrospection now + +* Thu Jan 03 2013 Mike FABIAN - 1.4.99.20130103-1 +- update to latest upstream 1.4.99.20130103 from Caius ‘kaio’ Chance’s repository, 1.5.0 branch + +* Tue Nov 13 2012 Mike FABIAN - 1.4.99.20121113-1 +- update to latest upstream 1.4.99.20121113 from Caius ‘kaio’ Chance’s repository, using rel20121101 git tag +- remove ibus-table-1.4.99.20120907-improve-chinese-category-check.patch (included upstream) +- remove fix-ipa-x-sampa-table-and-phrases-containing-spaces.patch (included upstream) +- Fix marking of translatable strings for gettext +- update zh_??.po files +- Add German translation +- Do not fail if the ~/.ibus/byo-tables/ directory does not exist + +* Thu Sep 13 2012 Mike FABIAN - 1.4.99.20120907-3 +- Resolves: #856903 +- Fix ipa-x-sampa table and phrases containing spaces in emoji-table + Currently there is a regular expression which filters out several + lines defining valid phrases. The emoji-table for example has phrases + containing spaces which are currently filtered out and the ipa-x-sampa + table has trailing comments which are filtered out as well. + +* Tue Sep 11 2012 Mike FABIAN - 1.4.99.20120907-2 +- Resolves: #856320 +- Improve check whether a phrase is simplified or traditional Chinese + The improvement is to ignore all non-Han characters when + doing the check. + This is to avoid classifying a simplified Chinese string as + traditional just because it happens to include some non-Chinese + characters, for example box drawing characters, which cannot be + converted to gb2312 but happen to be convertible to big5hkscs. + This fixes the problem in the emoji-table input method that most + phrases cannot be input at all. + +* Fri Sep 07 2012 Mike FABIAN - 1.4.99.20120907-1 +- Relates: #855250 +- see comment#1 in #855250 +- update to latest upstream 1.4.99.20120907 from Caius 'kaio' Chance's repository +- remove ibus-table-1.3.9.20110827-add-some-keys-for-translit.patch (included upstream) +- remove ibus-table-1.3.9.20110827-enable-non-ascii.patch (included upstream) + +* Wed Sep 05 2012 Mike FABIAN - 1.3.9.20110827-4 +- Resolves: #845798 +- add ibus-table-1.3.9.20110827-add-some-keys-for-translit.patch (from Yuwei YU, upstream) +- add ibus-table-1.3.9.20110827-enable-non-ascii.patch (from Yuwei YU, upstream) +- add ibus-table-1.3.9.20110827-uppercase-umlauts.patch to allow uppercase as well in translit + +* Thu Jul 19 2012 Fedora Release Engineering - 1.3.9.20110827-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Fri Jan 13 2012 Fedora Release Engineering - 1.3.9.20110827-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Wed Aug 31 2011 Caius 'kaio' Chance - 1.3.9.20110827-1 +- Updated to upstream. + +* Wed Feb 09 2011 Fedora Release Engineering - 1.3.0.20100621-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Fri Nov 19 2010 Ding-Yi Chen - 1.3.0.20100621-4 +- Rebuild for ibus-1.4 + +* Wed Sep 1 2010 Jens Petersen - 1.3.0.20100621-3 +- remove the redundant post and postun scripts (#625330) + +* Wed Aug 11 2010 David Malcolm - 1.3.0.20100621-2 +- recompiling .py files against Python 2.7 (rhbz#623320) + +* Mon Jun 21 2010 Caius Chance - 1.2.0.20100621-1 +- Updated from upstream which tarball was rebuilt with IBus 1.3. + +* Wed Mar 10 2010 Caius 'kaio' Chance - 1.2.0.20100111-7 +- Add template.txt in files. + +* Wed Mar 10 2010 Caius 'kaio' Chance - 1.2.0.20100111-6 +- Disable -additional. + +* Wed Mar 10 2010 Caius 'kaio' Chance - 1.2.0.20100111-5 +- Remove -additional for obsoletion by ibus-table-latin and ibus-table-code. + +* Mon Feb 15 2010 Caius 'kaio' Chance - 1.2.0.20100111-4.fc13 +- Fixed latex.svg location. + +* Fri Jan 29 2010 Caius 'kaio' Chance - 1.2.0.20100111-3.fc13 +- Split .pc to -devel subpackage. + +* Thu Jan 14 2010 Caius 'kaio' Chance - 1.2.0.20100111-2.fc13 +- Temporary keep files of additional available in ibus-table until + ibus-table-{code,latin} packages are ready in repository. + +* Mon Jan 11 2010 Caius 'kaio' Chance - 1.2.0.20100111-1.fc13 +- Updated source from upstream. +- Migreate tables from ibus-table-additional to ibus-table-latin and ibus-table-code. + +* Wed Jan 06 2010 Caius 'kaio' Chance - 1.2.0.20090912-3.fc13 +- Apply parsing equal sign patch. + +* Wed Nov 11 2009 Caius 'kaio' Chance - 1.2.0.20090912-2.fc13 +- Fix crashing caused by speedmeter. + +* Fri Sep 04 2009 Caius 'kaio' Chance - 1.2.0.20090912-1.fc12 +- Upgraded to upstream source. + +* Fri Sep 04 2009 Caius 'kaio' Chance - 1.2.0.20090904-1.fc12 +- Updated source with additional tables separated. + +* Thu Sep 03 2009 Caius 'kaio' Chance - 1.2.0.20090902-2.fc12 +- Rebuilt. + +* Wed Sep 02 2009 Caius 'kaio' Chance - 1.2.0.20090902-1.fc12 +- Updated source. + +* Tue Aug 04 2009 Caius 'kaio' Chance - 1.2.0.20090804-1.fc12 +- Cleaned up unused dcommit contents. + +* Tue Aug 03 2009 Caius 'kaio' Chance - 1.2.0.20090803-1.fc12 +- Updated to upstream. + +* Fri Jul 24 2009 Fedora Release Engineering - 1.2.0.20090625-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Wed Jul 01 2009 Caius 'kaio' Chance - 1.2.0.20090625-2.fc12 +- Rebuilt. + +* Wed Jul 01 2009 Caius 'kaio' Chance - 1.2.0.20090625-1.fc12 +- Updated source from upstream, which released for IBus 1.2 and so on. + +* Wed May 27 2009 Caius 'kaio' Chance - 1.1.0.20090527-1.fc12 +- Updated source from upstream, which with candidate order fix. + +* Mon Mar 16 2009 Caius Chance - 1.1.0.20090316-1.fc11 +- Resolves: rhbz#490396 +- Updated source tarball. +- Disabled speedmeter until config option is implemented. + +* Fri Mar 6 2009 Jens Petersen - 1.1.0.20090220-5 +- make pkgconfig noarch with ibus-table-pkgconfig-noarch.patch +- fix license field: actually LGPL +- drop gettext-devel BR +- require ibus > 1.1.0 + +* Mon Mar 02 2009 Caius Chance - 1.1.0.20090220-4.fc11 +- Rebuilt. + +* Mon Mar 02 2009 Caius Chance - 1.1.0.20090220-3.fc11 +- Rebuilt. + +* Mon Mar 02 2009 Caius Chance - 1.1.0.20090220-2.fc11 +- Rebuilt. + +* Mon Mar 02 2009 Caius Chance - 1.1.0.20090220-1.fc11 +- Resolves: rhbz#484650 +- Updated to latest upstream release. +- Splitted chinese input methods into modules. + +* Tue Feb 24 2009 Fedora Release Engineering - 0.1.1.20081014-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Wed Feb 04 2009 Caius Chance - 0.1.1.20081014-4 +- Resolves: rhbz#466430 rhbz#466844 +- Added wildcard features. +- Added preedit clearance on refocus. + +* Mon Dec 01 2008 Ignacio Vazquez-Abrams - 0.1.1.20081014-3 +- Rebuild for Python 2.6 + +* Mon Dec 1 2008 Peng Huang - 0.1.1.20081014-2 +- Modified spec file to own all directories created by ibus-table. + +* Fri Oct 14 2008 Peng Huang - 0.1.1.20081014-1 +- Update to 0.1.1.20081014. + +* Mon Sep 01 2008 Peng Huang - 0.1.1.20080901-1 +- Update to 0.1.1.20080901. + +* Wed Aug 19 2008 Yu Yuwei - 0.1.1.20080829-1 +- The first version.