pax_global_header00006660000000000000000000000064124447305060014517gustar00rootroot0000000000000052 comment=0a835bd0abadb38b8e2ffab4ce7b110247a55964 libkkc-0.3.5/000077500000000000000000000000001244473050600127635ustar00rootroot00000000000000libkkc-0.3.5/.dir-locals.el000066400000000000000000000002221244473050600154100ustar00rootroot00000000000000((c++-mode . ((indent-tabs-mode . nil))) (vala-mode . ((indent-tabs-mode . nil))) (sh-mode . ((indent-tabs-mode . nil) (sh-basic-offset . 2)))) libkkc-0.3.5/.travis.yml000066400000000000000000000020031244473050600150670ustar00rootroot00000000000000language: c env: matrix: - VALAC=valac-0.24 before_install: - sudo pip install cpp-coveralls install: - if [ "$VALAC" = "valac-0.24" ]; then sudo add-apt-repository -y ppa:vala-team && sudo apt-get update -qq && sudo apt-get install -qq autotools-dev gnome-common gobject-introspection intltool libgee-0.8-dev libgirepository1.0-dev libjson-glib-dev python-dev "$VALAC"; fi script: - wget https://marisa-trie.googlecode.com/files/marisa-0.2.4.tar.gz && tar xf marisa-0.2.4.tar.gz && (cd marisa-0.2.4 && ./configure --prefix=$PWD/../install && make && make install && cd bindings/python && CFLAGS=-I$PWD/../../../install/include LDFLAGS=-L$PWD/../../../install/lib python setup.py build && python setup.py install --user) - export PKG_CONFIG_PATH=$PWD/install/lib/pkgconfig - export LD_LIBRARY_PATH=$PWD/install/lib - ./autogen.sh --enable-code-coverage && make && make check after_success: - coveralls --exclude lib --exclude tests --gcov-options '\-lp' libkkc-0.3.5/AUTHORS000066400000000000000000000000001244473050600140210ustar00rootroot00000000000000libkkc-0.3.5/COPYING000066400000000000000000001045131244473050600140220ustar00rootroot00000000000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . libkkc-0.3.5/Makefile.am000066400000000000000000000042531244473050600150230ustar00rootroot00000000000000# Copyright (C) 2011-2014 Daiki Ueno # Copyright (C) 2011-2014 Red Hat, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . SUBDIRS = marisa-glib libkkc data tools tests po DISTCHECK_CONFIGURE_FLAGS = --enable-docs ACLOCAL_AMFLAGS = -I m4 if HAVE_VALADOC SUBDIRS += docs endif GITIGNOREFILES = \ INSTALL \ aclocal.m4 \ compile \ config.guess \ config.h.in \ config.sub \ depcomp \ install-sh \ ltmain.sh \ missing \ mkinstalldirs \ `find "m4" -type f -name "*.m4" ! -name "vala.m4" -print` \ $(top_builddir)/lcov.html/* \ $(NULL) distclean-local: if test "x$(srcdir)" = "x."; then :; else \ rm -f ChangeLog; \ fi MAINTAINERCLEANFILES = \ $(top_builddir)/lcov.info \ $(srcdir)/ChangeLog \ $(NULL) EXTRA_DIST = autogen.sh lcov.mk maintainer-clean-local: maintainer-clean-local-lcov maintainer-clean-local-lcov: rm -rf $(top_builddir)/lcov.html .PHONY: maintainer-clean-local-lcov ChangeLog: @echo Creating $@ @if test -d "$(srcdir)/.git"; then \ (GIT_DIR=$(top_srcdir)/.git ./missing --run git log --stat) | fmt --split-only > $@.tmp \ && mv -f $@.tmp $@ \ || ($(RM) $@.tmp; \ echo Failed to generate ChangeLog, your ChangeLog may be outdated >&2; \ (test -f $@ || echo git-log is required to generate this file >> $@)); \ else \ test -f $@ || \ (echo A git checkout and git-log is required to generate ChangeLog >&2 && \ echo A git checkout and git-log is required to generate this file >> $@); \ fi .PHONY: ChangeLog # Code coverage support include $(top_srcdir)/lcov.mk -include $(top_srcdir)/git.mk libkkc-0.3.5/NEWS000066400000000000000000000000001244473050600134500ustar00rootroot00000000000000libkkc-0.3.5/README000066400000000000000000000037361244473050600136540ustar00rootroot00000000000000libkkc - Japanese Kana Kanji conversion library -*- coding: utf-8 -*- * What's this? libkkc provides a converter from Kana-string to Kana-Kanji-mixed-string. It was named after kkc.el in GNU Emacs, a simple Kana Kanji converter, while libkkc tries to convert sentences in a bit more complex way using N-gram language models. * Install 1. compile and install marisa-trie 0.2.1 https://code.google.com/p/marisa-trie/ 2. compile and install $ ./autogen.sh $ make $ make install 3. run kkc program $ kkc Type kana sentence in the following form: SENTENCE [N-BEST [SEGMENT-BOUNDARY...]] >> わたしのなまえはなかのです 0: <わたし/わたし><の/の><名前/なまえ><は/は><中野/なかの><で/で><す/す> # get 3 matches instead of 1 >> わたしのなまえはなかのです 3 0: <わたし/わたし><の/の><名前/なまえ><は/は><中野/なかの><で/で><す/す> 1: <私/わたし><の/の><名前/なまえ><は/は><中野/なかの><で/で><す/す> 2: <わたし/わたし><の/の><名前/なまえ><は/は><中野/なかの><デス/です> # enlarge the second segment (の -> のな) >> わたしのなまえはなかのです 1 3 5 0: <わたし/わたし><のな/のな><前/まえ><は/は><中野/なかの><で/で><す/す> # shrink the fourth segment (なかの -> なか) >> わたしのなまえはなかのです 1 3 4 7 8 10 0: <わたし/わたし><の/の><名前/なまえ><は/は><中/なか><の/の><で/で><す/す> License: GPLv3+ Copyright (C) 2011-2014 Daiki Ueno Copyright (C) 2011-2014 Red Hat, Inc. This file is free software; as a special exception the author gives unlimited permission to copy and/or distribute it, with or without modifications, as long as this notice is preserved. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY, to the extent permitted by law; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libkkc-0.3.5/README.md000066400000000000000000000042621244473050600142460ustar00rootroot00000000000000libkkc - Japanese Kana Kanji conversion library ====== [![Build Status](https://travis-ci.org/ueno/libkkc.svg?branch=master)](https://travis-ci.org/ueno/libkkc) [![Coverage Status](https://img.shields.io/coveralls/ueno/libkkc.svg)](https://coveralls.io/r/ueno/libkkc) What's this? ------ libkkc provides a converter from Kana-string to Kana-Kanji-mixed-string. It was named after kkc.el in GNU Emacs, a simple Kana Kanji converter, while libkkc tries to convert sentences in a bit more complex way using N-gram language models. Install ------ 1. compile and install [marisa-trie](https://code.google.com/p/marisa-trie/) 2. compile and install ``` $ ./autogen.sh $ make $ make install ``` 3. run kkc program ``` $ kkc Type kana sentence in the following form: SENTENCE [N-BEST [SEGMENT-BOUNDARY...]] >> わたしのなまえはなかのです 0: <わたし/わたし><の/の><名前/なまえ><は/は><中野/なかの><で/で><す/す> # get 3 matches instead of 1 >> わたしのなまえはなかのです 3 0: <わたし/わたし><の/の><名前/なまえ><は/は><中野/なかの><で/で><す/す> 1: <私/わたし><の/の><名前/なまえ><は/は><中野/なかの><で/で><す/す> 2: <わたし/わたし><の/の><名前/なまえ><は/は><中野/なかの><デス/です> # enlarge the second segment (の -> のな) >> わたしのなまえはなかのです 1 3 5 0: <わたし/わたし><のな/のな><前/まえ><は/は><中野/なかの><で/で><す/す> # shrink the fourth segment (なかの -> なか) >> わたしのなまえはなかのです 1 3 4 7 8 10 0: <わたし/わたし><の/の><名前/なまえ><は/は><中/なか><の/の><で/で><す/す> ``` License ------ ``` GPLv3+ Copyright (C) 2011-2014 Daiki Ueno Copyright (C) 2011-2014 Red Hat, Inc. This file is free software; as a special exception the author gives unlimited permission to copy and/or distribute it, with or without modifications, as long as this notice is preserved. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY, to the extent permitted by law; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ```libkkc-0.3.5/autogen.sh000077500000000000000000000010531244473050600147630ustar00rootroot00000000000000#!/bin/sh # Run this to generate all the initial makefiles, etc. srcdir=`dirname $0` test -z "$srcdir" && srcdir=. PKG_NAME="libkkc" (test -f $srcdir/configure.ac \ && test -f $srcdir/README ) || { echo -n "**Error**: Directory "\`$srcdir\'" does not look like the" echo " top-level $PKG_NAME directory" exit 1 } which gnome-autogen.sh || { echo "You need to install gnome-common from the GNOME CVS" exit 1 } ACLOCAL_FLAGS="$ACLOCAL_FLAGS -I m4" REQUIRED_AUTOMAKE_VERSION=1.11 REQUIRED_AUTOCONF_VERSION=2.63 . gnome-autogen.sh libkkc-0.3.5/configure.ac000066400000000000000000000137661244473050600152660ustar00rootroot00000000000000# Copyright (C) 2012-2014 Daiki Ueno # Copyright (C) 2012-2014 Red Hat, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . AC_PREREQ(2.63) AC_CONFIG_MACRO_DIR([m4]) AC_INIT([libkkc], [0.3.5], [ueno@gnu.org]) KKC_API_VERSION=1.0 KKC_API_MAJOR_VERSION=1 KKC_API_MINOR_VERSION=0 KKC_API_PC_VERSION=1.0 KKC_LIBRARY_SUFFIX="-$KKC_API_VERSION" AC_SUBST([KKC_API_VERSION]) AC_SUBST([KKC_API_MAJOR_VERSION]) AC_SUBST([KKC_API_MINOR_VERSION]) AC_SUBST([KKC_API_PC_VERSION]) AC_SUBST([KKC_LIBRARY_SUFFIX]) AC_SUBST([KKC_LIBRARY_SUFFIX_U],[AS_TR_SH([$KKC_LIBRARY_SUFFIX])]) dnl Init automake AM_INIT_AUTOMAKE([1.11.1 parallel-tests]) AM_SILENT_RULES([yes]) AM_MAINTAINER_MODE([enable]) AC_GNU_SOURCE dnl Check for programs AC_PROG_CC AM_PROG_CC_C_O AC_PROG_CC_STDC AC_PROG_CXX AC_PROG_INSTALL IT_PROG_INTLTOOL dnl Check python for tests AM_PATH_PYTHON # define PACKAGE_VERSION_* variables AM_DISABLE_STATIC AC_ISC_POSIX AC_HEADER_STDC LT_INIT # If library source has changed since last release, increment revision # If public symbols have been added, removed or changed since last release, # increment current and set revision to 0 # If public symbols have been added since last release, increment age # If public symbols have been removed since last release, set age to 0 m4_define([libkkc_lt_current], [2]) m4_define([libkkc_lt_revision], [0]) m4_define([libkkc_lt_age], [0]) LT_CURRENT=libkkc_lt_current LT_REVISION=libkkc_lt_revision LT_AGE=libkkc_lt_age AC_SUBST([LT_CURRENT]) AC_SUBST([LT_REVISION]) AC_SUBST([LT_AGE]) # check gio PKG_CHECK_MODULES([GIO], [gio-2.0], , [AC_MSG_ERROR([can't find gio-2.0])]) # check gee PKG_CHECK_MODULES([GEE], [gee-0.8], , [AC_MSG_ERROR([can't find gee-0.8])]) # check json-glib PKG_CHECK_MODULES([JSON_GLIB], [json-glib-1.0], , [AC_MSG_ERROR([can't find json-glib-1.0])]) # check marisa PKG_CHECK_MODULES([MARISA], [marisa], , [AC_MSG_ERROR([can't find marisa])]) # libstdc++ needs to be linked with libmarisa-glib.a MARISA_GLIB_STATIC_DEPENDENCIES="$postdeps_CXX" AC_SUBST(MARISA_GLIB_STATIC_DEPENDENCIES) LIBKKC_CFLAGS="$GIO_CFLAGS $GEE_CFLAGS $JSON_GLIB_CFLAGS" AC_SUBST(LIBKKC_CFLAGS) LIBKKC_LIBS="$GIO_LIBS $GEE_LIBS $JSON_GLIB_LIBS" AC_SUBST(LIBKKC_LIBS) GOBJECT_INTROSPECTION_CHECK([0.9.0]) # check vapigen VAPIGEN_CHECK # check valac AM_PROG_VALAC([0.16.0]) AC_SUBST(VALAC) # check glib GLIB_REQUIRED=2.24 VALAFLAGS="${VALAFLAGS:+$VALAFLAGS }--target-glib=$GLIB_REQUIRED" AC_SUBST(VALAFLAGS) # define GETTEXT_* variables GETTEXT_PACKAGE=libkkc AC_SUBST(GETTEXT_PACKAGE) AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Define to the read-only architecture-independent data directory.]) AC_ARG_ENABLE([docs], AS_HELP_STRING([--enable-docs],[Enable documentation generation]), [enable_docs=$enableval], [enable_docs=no]) AM_CONDITIONAL([ENABLE_DOCS], [test x$enable_docs = xyes]) VALADOC_REQUIRED=0.3.1 have_valadoc=no if test x$enable_docs = xyes; then # make sure the library is new enough and the program exists PKG_CHECK_MODULES([VALADOC], [valadoc-1.0 >= $VALADOC_REQUIRED]) AC_PATH_PROG([VALADOC], [valadoc], [:]) AS_IF([test "$VALADOC" != :], have_valadoc=yes) fi AM_CONDITIONAL([HAVE_VALADOC], [test x$have_valadoc = xyes]) if test "x$enable_docs" = "xyes" -a "x$have_valadoc" != "xyes"; then AC_MSG_ERROR([Doc building requested but valadoc not installed.]) fi AC_ARG_ENABLE([code-coverage], AS_HELP_STRING([--enable-code-coverage], [compile with code coverage code]), [enable_code_coverage=$enableval], [enable_code_coverage=no]) # Only enable code coverage if this isn't a release. if test "x$enable_code_coverage" = "xyes"; then CODE_COVERAGE_CFLAGS="-fprofile-arcs -ftest-coverage -O0 -ggdb" CODE_COVERAGE_LDFLAGS="-lgcov" fi AC_SUBST([CODE_COVERAGE_CFLAGS]) AC_SUBST([CODE_COVERAGE_LDFLAGS]) AC_ARG_ENABLE([valgrind-tests], AS_HELP_STRING([--enable-valgrind-tests], [run self tests under valgrind]), [enable_valgrind_tests=$enableval], [enable_valgrind_tests=no]) # Run self-tests under valgrind? if test "x$enable_valgrind_tests" = "xyes"; then AC_CHECK_PROGS(VALGRIND, valgrind) fi if test -n "$VALGRIND"; then VALGRIND_OPTS="--leak-check=full --show-reachable=no --gen-suppressions=all --num-callers=20 --error-exitcode=0 --log-file=valgrind.log.%p" AC_SUBST(VALGRIND_OPTS) fi # check vapigen AC_ARG_ENABLE([vapigen], AS_HELP_STRING([--enable-vapigen], [Enable vapi generation]), [enable_vapigen=$enableval], [enable_vapigen=auto]) if test "x$found_introspection" = "xyes" -a "x$enable_vapigen" != "xno"; then AC_PATH_PROG([VAPIGEN], [vapigen], [false]) if test "x$VAPIGEN" != "xfalse"; then enable_vapigen=yes fi AC_SUBST(VAPIGEN) fi AM_CONDITIONAL(ENABLE_VAPIGEN, [test "x$enable_vapigen" = "xyes"]) AC_CONFIG_HEADERS([config.h]) AC_CONFIG_FILES([Makefile marisa-glib/Makefile libkkc/Makefile libkkc/kkc-1.0.pc tools/Makefile tests/Makefile tests/lib/Makefile data/Makefile data/rules/Makefile data/rules/default/Makefile data/rules/act/Makefile data/rules/azik/Makefile data/rules/azik-jp106/Makefile data/rules/kzik/Makefile data/rules/tutcode/Makefile data/rules/tutcode-touch16x/Makefile data/rules/nicola/Makefile data/rules/tcode/Makefile data/rules/trycode/Makefile data/rules/kana/Makefile data/templates/Makefile docs/Makefile po/Makefile.in]) AC_CONFIG_FILES([tools/kkc-package-data], [chmod a+x tools/kkc-package-data]) AC_OUTPUT libkkc-0.3.5/data/000077500000000000000000000000001244473050600136745ustar00rootroot00000000000000libkkc-0.3.5/data/Makefile.am000066400000000000000000000014171244473050600157330ustar00rootroot00000000000000# Copyright (C) 2011-2014 Daiki Ueno # Copyright (C) 2011-2014 Red Hat, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . SUBDIRS = rules templates -include $(top_srcdir)/git.mk libkkc-0.3.5/data/rules/000077500000000000000000000000001244473050600150265ustar00rootroot00000000000000libkkc-0.3.5/data/rules/Makefile.am000066400000000000000000000017531244473050600170700ustar00rootroot00000000000000# Copyright (C) 2011-2014 Daiki Ueno # Copyright (C) 2011-2014 Red Hat, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . SUBDIRS = \ default \ act \ azik \ azik-jp106 \ kzik \ tutcode \ tutcode-touch16x \ nicola \ tcode \ trycode \ kana \ $(NULL) EXTRA_DIST = \ README.rules \ rule.mk \ $(NULL) -include $(top_srcdir)/git.mk libkkc-0.3.5/data/rules/README.rules000066400000000000000000000103041244473050600170350ustar00rootroot00000000000000* Rules overview libkkc supports various typing rules such as AZIK, ACT, TUT-Code, which define keyboard shortcuts and romaji-to-kana conversion table. Rules are normally read from ~/.config/libkkc/rules and /usr/share/libkkc/rules. * Rule directory structure A rule consists of the following directory structure: metadata.json keymap/ ... rom-kana/ ... * Rule metadata Each rule must have metadata.json in the top level directory, with the following content: { "name": , "description": , "filter": } * Format of map files Each file under keymaps/ and rom-kana/ directories is used to define some key-value mappings. They are in the following format: { "include": [ , ... ], "define": { : { : , ... }, ... } } The value associated with "include" is an array of parent map files, which will be included before evaluating the map file itself. The value associated with "define" is an object which binds some variables to values. ** Path name resolution Each element in "include" may be either a relative or absolute path. A relative path does not include "/" while absolute one does. If path is relative, the map file is located under the same directory of the current map file. Otherwise, libkkc looks for the map file outside of the diretory where the current map file is located. Example: If the current map file is /foo/rom-kana/foo.json and it contains: "include": [ "default" ] it looks for /foo/rom-kana/default.json. If the current map file is /foo/rom-kana/bar.json and it contains: "include": [ "default/default" ] it looks for /default/rom-kana/default.json. ** Format of keymap rule files The map name "keymap" is used to associate a key event to a command name. Example: { "include": [ "default" ], "define": { "keymap": { "Q": null, "C-@": "start-preedit" } } } This map file includes "default" map file first, replace mapping of "start-preedit" from "Q" to "C-@" (control + "@"). The current available commands are: abort commit complete delete quote register insert-kana- next-candidate previous-candidate purge-candidate next-segment previous-segment expand-segment shrink-segment set-input-mode- ** Format of rom-kana map files The map name "rom-kana" is used to define romaji-to-kana conversion tables. The value is an object which maps a string to either an array or null. If the value is an array, a new mapping is defined. In that case each array can contain 2 to 5 elements. The first two elements are and . is a string which will be added to preedit after the transition (for example, when "bb" is typed, "b" is which will be added to the next preedit). is an output in hiragana. The optional 3rd element is , which will be an output when input mode is katakana. The optional 4th element is , which will be an output when the input is incompletely finished (for example, when "nk" is typed, "ん" will be output and the next preedit will be "k"). The optional 5th element is , katakana version of . If the value is null, existing mapping of the corresponding key is removed from the parent map file. Example: { "include": [ "default" ], "define": { "rom-kana": { "xka": [ "", "か", "ヵ" ], "b.": [ "", "ぶ" ], "dha": null } } } This map file includes "default" map file first, defines new mappings for "xka" and "b.", and removes a mapping "dha" from the current map file. Copyright (C) 2011-2014 Daiki Ueno Copyright (C) 2011-2014 Red Hat, Inc. This file is free software; as a special exception the author gives unlimited permission to copy and/or distribute it, with or without modifications, as long as this notice is preserved. This file is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY, to the extent permitted by law; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. libkkc-0.3.5/data/rules/act/000077500000000000000000000000001244473050600155755ustar00rootroot00000000000000libkkc-0.3.5/data/rules/act/Makefile.am000066400000000000000000000010611244473050600176270ustar00rootroot00000000000000rulesdir = $(pkgdatadir)/rules/act files = \ keymap/default.json \ keymap/hankaku-katakana.json \ keymap/hiragana.json \ keymap/katakana.json \ keymap/latin.json \ keymap/wide-latin.json \ rom-kana/default.json \ $(NULL) metadata_in = \ metadata.json.in \ $(NULL) nobase_rules_DATA = \ $(files) \ $(metadata_in:.in=) \ $(NULL) EXTRA_DIST = \ $(files) \ $(metadata_in) \ $(NULL) CLEANFILES = \ metadata.json \ $(NULL) -include $(top_srcdir)/data/rules/rule.mk -include $(top_srcdir)/git.mk libkkc-0.3.5/data/rules/act/keymap/000077500000000000000000000000001244473050600170635ustar00rootroot00000000000000libkkc-0.3.5/data/rules/act/keymap/default.json000066400000000000000000000000561244473050600214030ustar00rootroot00000000000000{ "include": [ "default/default" ] } libkkc-0.3.5/data/rules/act/keymap/hankaku-katakana.json000066400000000000000000000002161244473050600231500ustar00rootroot00000000000000{ "include": [ "default" ], "define": { "keymap": { "\\": "set-input-mode-hiragana" } } } libkkc-0.3.5/data/rules/act/keymap/hiragana.json000066400000000000000000000002161244473050600215270ustar00rootroot00000000000000{ "include": [ "default" ], "define": { "keymap": { "\\": "set-input-mode-katakana" } } } libkkc-0.3.5/data/rules/act/keymap/katakana.json000066400000000000000000000002161244473050600215300ustar00rootroot00000000000000{ "include": [ "default" ], "define": { "keymap": { "\\": "set-input-mode-hiragana" } } } libkkc-0.3.5/data/rules/act/keymap/latin.json000066400000000000000000000000551244473050600210650ustar00rootroot00000000000000{ "include": [ "default" ] } libkkc-0.3.5/data/rules/act/keymap/wide-latin.json000066400000000000000000000000551244473050600220130ustar00rootroot00000000000000{ "include": [ "default" ] } libkkc-0.3.5/data/rules/act/metadata.json.in000066400000000000000000000003511244473050600206540ustar00rootroot00000000000000{ "name": _("ACT"), "description": _("Extended romaji input method based on AZIK for Dvorak keyboard layout, developed by Kiyoshi Kimura "), "priority": 10 } libkkc-0.3.5/data/rules/act/rom-kana/000077500000000000000000000000001244473050600173025ustar00rootroot00000000000000libkkc-0.3.5/data/rules/act/rom-kana/default.json000066400000000000000000000567741244473050600216440ustar00rootroot00000000000000{ "include": [ "default/default" ], "define": { "rom-kana": { "bb": null, "cc": null, "dd": null, "ff": null, "gg": null, "jj": null, "kk": null, "pp": null, "rr": null, "ss": null, "tt": null, "vv": null, "ww": null, "xx": null, "yy": null, "zz": null, "cha": null, "che": null, "chi": null, "cho": null, "chu": null, "dha": null, "dhe": null, "dhi": null, "dho": null, "dhu": null, "ja": null, "je": null, "ji": null, "jo": null, "ju": null, "jya": null, "jye": null, "jyi": null, "jyo": null, "jyu": null, "ka": null, "ke": null, "ki": null, "ko": null, "ku": null, "kya": null, "kye": null, "kyi": null, "kyo": null, "kyu": null, "tsu": null, "tha": null, "the": null, "thi": null, "tho": null, "thu": null, "xa": null, "xe": null, "xi": null, "xo": null, "xu": null, "xka": null, "xke": null, "xtsu": null, "xtu": null, "xwa": null, "xwe": null, "xwi": null, "xya": null, "xyo": null, "xyu": null, "`|": [ "", "|" ], "'": [ "", "っ" ], "`'": [ "", "'" ], "`;": [ "", ";" ], "`:": [ "", ":" ], "`\"": [ "", "\"" ], "`a": [ "", "ぁ" ], "`i": [ "", "ぃ" ], "`u": [ "", "ぅ" ], "`e": [ "", "ぇ" ], "`o": [ "", "ぉ" ], "`ca": [ "", "か", "ヵ" ], "`ce": [ "", "け", "ヶ" ], "`wa": [ "", "ゎ" ], "`we": [ "", "ゑ" ], "`wi": [ "", "ゐ" ], "`ya": [ "", "ゃ" ], "`yo": [ "", "ょ" ], "`yu": [ "", "ゅ" ], "`ys": [ "", "ゃ" ], "`yn": [ "", "ょ" ], "`yh": [ "", "ゅ" ], "`,": [ "", "‥" ], "`-": [ "", "〜" ], "`.": [ "", "…" ], "`/": [ "", "・" ], "`[": [ "", "『" ], "`]": [ "", "』" ], "`d": [ "", "←" ], "`h": [ "", "↓" ], "`t": [ "", "↑" ], "`n": [ "", "→" ], "ca": [ "", "か" ], "ci": [ "", "き" ], "cu": [ "", "く" ], "ce": [ "", "け" ], "co": [ "", "こ" ], ";": [ "", "あん" ], "x": [ "", "いん" ], "k": [ "", "うん" ], "j": [ "", "えん" ], "q": [ "", "おん" ], "c;": [ "", "かん" ], "cx": [ "", "きん" ], "ck": [ "", "くん" ], "cj": [ "", "けん" ], "cq": [ "", "こん" ], "c'": [ "", "かい" ], "cp": [ "", "くう" ], "c.": [ "", "けい" ], "c,": [ "", "こう" ], "s;": [ "", "さん" ], "sx": [ "", "しん" ], "sk": [ "", "すん" ], "sj": [ "", "せん" ], "sq": [ "", "そん" ], "s'": [ "", "さい" ], "sp": [ "", "すう" ], "s.": [ "", "せい" ], "s,": [ "", "そう" ], "t;": [ "", "たん" ], "tx": [ "", "ちん" ], "tk": [ "", "つん" ], "tj": [ "", "てん" ], "tq": [ "", "とん" ], "t'": [ "", "たい" ], "tp": [ "", "つう" ], "t.": [ "", "てい" ], "t,": [ "", "とう" ], "n;": [ "", "なん" ], "nx": [ "", "にん" ], "nk": [ "", "ぬん" ], "nj": [ "", "ねん" ], "nq": [ "", "のん" ], "n'": [ "", "ない" ], "np": [ "", "ぬう" ], "n.": [ "", "ねい" ], "n,": [ "", "のう" ], "h;": [ "", "はん" ], "hx": [ "", "ひん" ], "hk": [ "", "ふん" ], "hj": [ "", "へん" ], "hq": [ "", "ほん" ], "h'": [ "", "はい" ], "hp": [ "", "ふう" ], "h.": [ "", "へい" ], "h,": [ "", "ほう" ], "m;": [ "", "まん" ], "mx": [ "", "みん" ], "mk": [ "", "むん" ], "mj": [ "", "めん" ], "mq": [ "", "もん" ], "m'": [ "", "まい" ], "mp": [ "", "むう" ], "m.": [ "", "めい" ], "m,": [ "", "もう" ], "y;": [ "", "やん" ], "yk": [ "", "ゆん" ], "yq": [ "", "よん" ], "y'": [ "", "やい" ], "yp": [ "", "ゆう" ], "y.": [ "", "いう" ], "y,": [ "", "よう" ], "r;": [ "", "らん" ], "rx": [ "", "りん" ], "rk": [ "", "るん" ], "rj": [ "", "れん" ], "rq": [ "", "ろん" ], "r'": [ "", "らい" ], "rp": [ "", "るう" ], "r.": [ "", "れい" ], "r,": [ "", "ろう" ], "w;": [ "", "わん" ], "wx": [ "", "うぃん" ], "wk": [ "", "うん" ], "wj": [ "", "うぇん" ], "wq": [ "", "うぉん" ], "w'": [ "", "わい" ], "wp": [ "", "うぅ" ], "w.": [ "", "うぇい" ], "w,": [ "", "うぉー" ], "g;": [ "", "がん" ], "gx": [ "", "ぎん" ], "gk": [ "", "ぐん" ], "gj": [ "", "げん" ], "gq": [ "", "ごん" ], "g'": [ "", "がい" ], "gp": [ "", "ぐう" ], "g.": [ "", "げい" ], "g,": [ "", "ごう" ], "z;": [ "", "ざん" ], "zx": [ "", "じん" ], "zk": [ "", "ずん" ], "zj": [ "", "ぜん" ], "zq": [ "", "ぞん" ], "z'": [ "", "ざい" ], "zp": [ "", "ずう" ], "z.": [ "", "ぜい" ], "z,": [ "", "ぞう" ], "d;": [ "", "だん" ], "dx": [ "", "ぢん" ], "dk": [ "", "づん" ], "dj": [ "", "でん" ], "dq": [ "", "どん" ], "d'": [ "", "だい" ], "dp": [ "", "づう" ], "d.": [ "", "でい" ], "d,": [ "", "どう" ], "b;": [ "", "ばん" ], "bx": [ "", "びん" ], "bk": [ "", "ぶん" ], "bj": [ "", "べん" ], "bq": [ "", "ぼん" ], "b'": [ "", "ばい" ], "bp": [ "", "ぶう" ], "b.": [ "", "べい" ], "b,": [ "", "ぼう" ], "p;": [ "", "ぱん" ], "px": [ "", "ぴん" ], "pk": [ "", "ぷん" ], "pj": [ "", "ぺん" ], "pq": [ "", "ぽん" ], "p'": [ "", "ぱい" ], "pp": [ "", "ぷう" ], "p.": [ "", "ぺい" ], "p,": [ "", "ぽう" ], "cga": [ "", "きゃ" ], "cgi": [ "", "きぃ" ], "cgu": [ "", "きゅ" ], "cge": [ "", "きぇ" ], "cgo": [ "", "きょ" ], "cg;": [ "", "きゃん" ], "cgx": [ "", "きぃん" ], "cgk": [ "", "きゅん" ], "cgj": [ "", "きぇん" ], "cgq": [ "", "きょん" ], "cg'": [ "", "きゃい" ], "cgp": [ "", "きゅう" ], "cg.": [ "", "きぇい" ], "cg,": [ "", "きょう" ], "sha": [ "", "しゃ" ], "shi": [ "", "しぃ" ], "shu": [ "", "しゅ" ], "she": [ "", "しぇ" ], "sho": [ "", "しょ" ], "sh;": [ "", "しゃん" ], "shx": [ "", "しぃん" ], "shk": [ "", "しゅん" ], "shj": [ "", "しぇん" ], "shq": [ "", "しょん" ], "sh'": [ "", "しゃい" ], "shp": [ "", "しゅう" ], "sh.": [ "", "しぇい" ], "sh,": [ "", "しょう" ], "tha": [ "", "ちゃ" ], "thi": [ "", "ちぃ" ], "thu": [ "", "ちゅ" ], "the": [ "", "ちぇ" ], "tho": [ "", "ちょ" ], "th;": [ "", "ちゃん" ], "thx": [ "", "ちぃん" ], "thk": [ "", "ちゅん" ], "thj": [ "", "ちぇん" ], "thq": [ "", "ちょん" ], "th'": [ "", "ちゃい" ], "thp": [ "", "ちゅう" ], "th.": [ "", "ちぇい" ], "th,": [ "", "ちょう" ], "nha": [ "", "にゃ" ], "nhi": [ "", "にぃ" ], "nhu": [ "", "にゅ" ], "nhe": [ "", "にぇ" ], "nho": [ "", "にょ" ], "nh;": [ "", "にゃん" ], "nhx": [ "", "にぃん" ], "nhk": [ "", "にゅん" ], "nhj": [ "", "にぇん" ], "nhq": [ "", "にょん" ], "nh'": [ "", "にゃい" ], "nhp": [ "", "にゅう" ], "nh.": [ "", "にぇい" ], "nh,": [ "", "にょう" ], "hna": [ "", "ひゃ" ], "hni": [ "", "ひぃ" ], "hnu": [ "", "ひゅ" ], "hne": [ "", "ひぇ" ], "hno": [ "", "ひょ" ], "hn;": [ "", "ひゃん" ], "hnx": [ "", "ひぃん" ], "hnk": [ "", "ひゅん" ], "hnj": [ "", "ひぇん" ], "hnq": [ "", "ひょん" ], "hn'": [ "", "ひゃい" ], "hnp": [ "", "ひゅう" ], "hn.": [ "", "ひぇい" ], "hn,": [ "", "ひょう" ], "mva": [ "", "みゃ" ], "mvi": [ "", "みぃ" ], "mvu": [ "", "みゅ" ], "mve": [ "", "みぇ" ], "mvo": [ "", "みょ" ], "mv;": [ "", "みゃん" ], "mvx": [ "", "みぃん" ], "mvk": [ "", "みゅん" ], "mvj": [ "", "みぇん" ], "mvq": [ "", "みょん" ], "mv'": [ "", "みゃい" ], "mvp": [ "", "みゅう" ], "mv.": [ "", "みぇい" ], "mv,": [ "", "みょう" ], "rga": [ "", "りゃ" ], "rgi": [ "", "りぃ" ], "rgu": [ "", "りゅ" ], "rge": [ "", "りぇ" ], "rgo": [ "", "りょ" ], "rg;": [ "", "りゃん" ], "rgx": [ "", "りぃん" ], "rgk": [ "", "りゅん" ], "rgj": [ "", "りぇん" ], "rgq": [ "", "りょん" ], "rg'": [ "", "りゃい" ], "rgp": [ "", "りゅう" ], "rg.": [ "", "りぇい" ], "rg,": [ "", "りょう" ], "gra": [ "", "ぎゃ" ], "gri": [ "", "ぎぃ" ], "gru": [ "", "ぎゅ" ], "gre": [ "", "ぎぇ" ], "gro": [ "", "ぎょ" ], "gr;": [ "", "ぎゃん" ], "grx": [ "", "ぎぃん" ], "grk": [ "", "ぎゅん" ], "grj": [ "", "ぎぇん" ], "grq": [ "", "ぎょん" ], "gr'": [ "", "ぎゃい" ], "grp": [ "", "ぎゅう" ], "gr.": [ "", "ぎぇい" ], "gr,": [ "", "ぎょう" ], "zma": [ "", "じゃ" ], "zmi": [ "", "じぃ" ], "zmu": [ "", "じゅ" ], "zme": [ "", "じぇ" ], "zmo": [ "", "じょ" ], "zm;": [ "", "じゃん" ], "zmx": [ "", "じぃん" ], "zmk": [ "", "じゅん" ], "zmj": [ "", "じぇん" ], "zmq": [ "", "じょん" ], "zm'": [ "", "じゃい" ], "zmp": [ "", "じゅう" ], "zm.": [ "", "じぇい" ], "zm,": [ "", "じょう" ], "dna": [ "", "ぢゃ" ], "dni": [ "", "ぢぃ" ], "dnu": [ "", "ぢゅ" ], "dne": [ "", "ぢぇ" ], "dno": [ "", "ぢょ" ], "dn;": [ "", "ぢゃん" ], "dnx": [ "", "ぢぃん" ], "dnk": [ "", "ぢゅん" ], "dnj": [ "", "ぢぇん" ], "dnq": [ "", "ぢょん" ], "dn'": [ "", "ぢゃい" ], "dnp": [ "", "ぢゅう" ], "dn.": [ "", "ぢぇい" ], "dn,": [ "", "ぢょう" ], "bva": [ "", "びゃ" ], "bvi": [ "", "びぃ" ], "bvu": [ "", "びゅ" ], "bve": [ "", "びぇ" ], "bvo": [ "", "びょ" ], "bv;": [ "", "びゃん" ], "bvx": [ "", "びぃん" ], "bvk": [ "", "びゅん" ], "bvj": [ "", "びぇん" ], "bvq": [ "", "びょん" ], "bv'": [ "", "びゃい" ], "bvp": [ "", "びゅう" ], "bv.": [ "", "びぇい" ], "bv,": [ "", "びょう" ], "pna": [ "", "ぴゃ" ], "pni": [ "", "ぴぃ" ], "pnu": [ "", "ぴゅ" ], "pne": [ "", "ぴぇ" ], "pno": [ "", "ぴょ" ], "pn;": [ "", "ぴゃん" ], "pnx": [ "", "ぴぃん" ], "pnk": [ "", "ぴゅん" ], "pnj": [ "", "ぴぇん" ], "pnq": [ "", "ぴょん" ], "pn'": [ "", "ぴゃい" ], "pnp": [ "", "ぴゅう" ], "pn.": [ "", "ぴぇい" ], "pn,": [ "", "ぴょう" ], "f;": [ "", "ふぁん" ], "fx": [ "", "ふぃん" ], "fk": [ "", "ふん" ], "fj": [ "", "ふぇん" ], "fq": [ "", "ふぉん" ], "f'": [ "", "ふぁい" ], "fp": [ "", "ふう" ], "f.": [ "", "ふぇい" ], "f,": [ "", "ふぉー" ], "v;": [ "", "う゛ぁん" ], "vx": [ "", "う゛ぃん" ], "vk": [ "", "う゛ん" ], "vj": [ "", "う゛ぇん" ], "vq": [ "", "う゛ぉん" ], "v'": [ "", "う゛ぁい" ], "vp": [ "", "う゛ー" ], "v.": [ "", "う゛ぇい" ], "v,": [ "", "う゛ぉー" ], "pc": [ "", "ぴゅう" ], "pl": [ "", "ぴょう" ], "fc": [ "", "ふゅー" ], "fl": [ "", "ふぉー" ], "gc": [ "", "ぎゅう" ], "gl": [ "", "ぎょう" ], "cc": [ "", "きゅう" ], "cl": [ "", "きょう" ], "rc": [ "", "りゅう" ], "rl": [ "", "りょう" ], "ht": [ "", "ひゅう" ], "hs": [ "", "ひょう" ], "tt": [ "", "ちゅう" ], "ts": [ "", "ちょう" ], "nt": [ "", "にゅう" ], "ns": [ "", "にょう" ], "st": [ "", "しゅう" ], "ss": [ "", "しょう" ], "bw": [ "", "びゅう" ], "bz": [ "", "びょう" ], "mw": [ "", "みゅー" ], "mz": [ "", "みょう" ], "wz": [ "", "うぉー" ], "vw": [ "", "う゛ゅー" ], "vz": [ "", "う゛ぉー" ], "zw": [ "", "じゅう" ], "zz": [ "", "じょう" ], "grr": [ "", "ぎょく" ], "grl": [ "", "ぎゃく" ], "cgr": [ "", "きょく" ], "cgl": [ "", "きゃく" ], "rgr": [ "", "りょく" ], "rgl": [ "", "りゃく" ], "hns": [ "", "ひゃく" ], "thn": [ "", "ちょく" ], "ths": [ "", "ちゃく" ], "nhn": [ "", "にょく" ], "nhs": [ "", "にゃく" ], "shn": [ "", "しょく" ], "shs": [ "", "しゃく" ], "sht": [ "", "しゅつ" ], "pns": [ "", "ぴゃく" ], "bvv": [ "", "びょく" ], "bvz": [ "", "びゃく" ], "mvv": [ "", "みょく" ], "mvz": [ "", "みゃく" ], "zmv": [ "", "じょく" ], "zmz": [ "", "じゃく" ], "zmw": [ "", "じゅつ" ], "shh": [ "", "しゅく" ], "zmm": [ "", "じゅく" ], "yh": [ "", "ゆ" ], "yg": [ "", "ゆう" ], "yz": [ "", "やん" ], "ym": [ "", "ゆん" ], "yv": [ "", "よん" ], "ps": [ "", "ぱ" ], "pd": [ "", "ぴ" ], "ph": [ "", "ぷ" ], "pt": [ "", "ぺ" ], "pz": [ "", "ぱん" ], "pb": [ "", "ぴん" ], "pm": [ "", "ぷん" ], "pw": [ "", "ぺん" ], "pv": [ "", "ぽん" ], "yy": [ "", "いう" ], "yf": [ "", "より" ], "yc": [ "", "いう" ], "yr": [ "", "よる" ], "yl": [ "", "やる" ], "yd": [ "", "よい" ], "yt": [ "", "よって" ], "yn": [ "", "よく" ], "ys": [ "", "やく" ], "yb": [ "", "ゆび" ], "yw": [ "", "いわれ" ], "ff": [ "", "ふり" ], "fg": [ "", "ふる" ], "fr": [ "", "ふる" ], "fn": [ "", "ふぁん" ], "fm": [ "", "ふむ" ], "gt": [ "", "ごと" ], "gn": [ "", "ごく" ], "gs": [ "", "がく" ], "cr": [ "", "から" ], "cd": [ "", "かた" ], "ct": [ "", "こと" ], "cb": [ "", "かんがえ" ], "cn": [ "", "こく" ], "cs": [ "", "かく" ], "rr": [ "", "られ" ], "rn": [ "", "らん" ], "dg": [ "", "だが" ], "dc": [ "", "でき" ], "dr": [ "", "である" ], "dl": [ "", "でしょう" ], "dd": [ "", "ので" ], "dt": [ "", "だち" ], "ds": [ "", "です" ], "dm": [ "", "でも" ], "hg": [ "", "ふる" ], "hc": [ "", "ひゅう" ], "hr": [ "", "ひとり" ], "hl": [ "", "ひょう" ], "hd": [ "", "ほど" ], "hh": [ "", "ひと" ], "hz": [ "", "ひじょう" ], "tf": [ "", "とり" ], "tg": [ "", "として" ], "tc": [ "", "ついて" ], "tr": [ "", "ところ" ], "tl": [ "", "とく" ], "td": [ "", "という" ], "tn": [ "", "との" ], "tb": [ "", "たび" ], "tm": [ "", "ため" ], "tv": [ "", "とき" ], "tz": [ "", "てき" ], "nf": [ "", "なり" ], "nc": [ "", "について" ], "nr": [ "", "なる" ], "nl": [ "", "なった" ], "nd": [ "", "など" ], "nb": [ "", "なければ" ], "nm": [ "", "なくても" ], "nw": [ "", "なくては" ], "nz": [ "", "なく" ], "sf": [ "", "さり" ], "sg": [ "", "され" ], "sc": [ "", "した" ], "sr": [ "", "する" ], "sd": [ "", "され" ], "sm": [ "", "しも" ], "snb": [ "", "しなければ" ], "snm": [ "", "しなくても" ], "snt": [ "", "しなくて" ], "snw": [ "", "しなくては" ], "sz": [ "", "それぞれ" ], "bc": [ "", "びゅう" ], "br": [ "", "ばら" ], "bl": [ "", "びょう" ], "bh": [ "", "ぶつ" ], "bt": [ "", "べつ" ], "mc": [ "", "みゅー" ], "mr": [ "", "まる" ], "ml": [ "", "みょう" ], "md": [ "", "まで" ], "mt": [ "", "また" ], "mn": [ "", "もの" ], "ms": [ "", "ます" ], "mm": [ "", "おも" ], "wr": [ "", "われ" ], "wt": [ "", "わたし" ], "wn": [ "", "われわれ" ], "vm": [ "", "ことな" ], "vv": [ "", "おなじ" ], "zc": [ "", "じゅう" ], "zr": [ "", "ざる" ], "zt": [ "", "ずつ" ], "zn": [ "", "ぞく" ], "zs": [ "", "ざく" ], "pf": [ "", "ぷり" ], "pg": [ "", "ぷる" ], "pr": [ "", "ぷろ" ], "twa": [ "", "てゃ" ], "twi": [ "", "てぃ" ], "twu": [ "", "てゅ" ], "twe": [ "", "てぇ" ], "two": [ "", "てょ" ], "tw;": [ "", "てゃん" ], "twx": [ "", "てぃん" ], "twk": [ "", "てゅん" ], "twj": [ "", "てぇん" ], "twq": [ "", "てょん" ], "tw'": [ "", "てゃう" ], "twp": [ "", "てゅう" ], "tw.": [ "", "てぇい" ], "tw,": [ "", "てょう" ], "dba": [ "", "でゃ" ], "dbi": [ "", "でぃ" ], "dbu": [ "", "でゅ" ], "dbe": [ "", "でぇ" ], "dbo": [ "", "でょ" ], "db;": [ "", "でゃん" ], "dbx": [ "", "でぃん" ], "dbk": [ "", "でゅん" ], "dbj": [ "", "でぇん" ], "dbq": [ "", "でょん" ], "db'": [ "", "でゃう" ], "dbp": [ "", "でゅう" ], "db.": [ "", "でぇい" ], "db,": [ "", "でょう" ], "wma": [ "", "うぁ" ], "wmi": [ "", "うぃ" ], "wmu": [ "", "うぅ" ], "wme": [ "", "うぇ" ], "wmo": [ "", "うぉ" ], "wm;": [ "", "うぁん" ], "wmx": [ "", "うぃん" ], "wmk": [ "", "うぅん" ], "wmj": [ "", "うぇん" ], "wmq": [ "", "うぉん" ], "wm'": [ "", "うぁう" ], "wmp": [ "", "うぅう" ], "wm.": [ "", "うぇい" ], "wm,": [ "", "うぉう" ], "cy": [ "", "くい" ], "sy": [ "", "すい" ], "ty": [ "", "つい" ], "ny": [ "", "ぬい" ], "hy": [ "", "ふい" ], "my": [ "", "むい" ], "yy": [ "", "ゆい" ], "ry": [ "", "るい" ], "wy": [ "", "うい" ], "gy": [ "", "ぐい" ], "zy": [ "", "ずい" ], "dy": [ "", "づい" ], "by": [ "", "ぶい" ], "py": [ "", "ぷい" ], "cgy": [ "", "きゅい" ], "shy": [ "", "しゅい" ], "thy": [ "", "ちゅい" ], "nhy": [ "", "にゅい" ], "hny": [ "", "ひゅい" ], "mvy": [ "", "みゅい" ], "rgy": [ "", "りゅい" ], "gry": [ "", "ぎゅい" ], "zmy": [ "", "じゅい" ], "dny": [ "", "ぢゅい" ], "bvy": [ "", "びゅい" ], "pny": [ "", "ぴゅい" ], "fy": [ "", "ふい" ], "vy": [ "", "う゛い" ], "twy": [ "", "てゅい" ], "dby": [ "", "でゅい" ], "wmy": [ "", "うぅい" ] }, "option": { "downcase": { "\"": "'", ":": ";" } } } } libkkc-0.3.5/data/rules/azik-jp106/000077500000000000000000000000001244473050600166225ustar00rootroot00000000000000libkkc-0.3.5/data/rules/azik-jp106/Makefile.am000066400000000000000000000010701244473050600206540ustar00rootroot00000000000000rulesdir = $(pkgdatadir)/rules/azik-jp106 files = \ keymap/default.json \ keymap/hankaku-katakana.json \ keymap/hiragana.json \ keymap/katakana.json \ keymap/latin.json \ keymap/wide-latin.json \ rom-kana/default.json \ $(NULL) metadata_in = \ metadata.json.in \ $(NULL) nobase_rules_DATA = \ $(files) \ $(metadata_in:.in=) \ $(NULL) EXTRA_DIST = \ $(files) \ $(metadata_in) \ $(NULL) CLEANFILES = \ metadata.json \ $(NULL) -include $(top_srcdir)/data/rules/rule.mk -include $(top_srcdir)/git.mk libkkc-0.3.5/data/rules/azik-jp106/keymap/000077500000000000000000000000001244473050600201105ustar00rootroot00000000000000libkkc-0.3.5/data/rules/azik-jp106/keymap/default.json000066400000000000000000000000651244473050600224300ustar00rootroot00000000000000{ "include": [ "default/default" ] } libkkc-0.3.5/data/rules/azik-jp106/keymap/hankaku-katakana.json000066400000000000000000000000651244473050600241770ustar00rootroot00000000000000{ "include": [ "default/default" ] } libkkc-0.3.5/data/rules/azik-jp106/keymap/hiragana.json000066400000000000000000000002531244473050600225550ustar00rootroot00000000000000{ "include": [ "default/default" ] "define": { "keymap": { "[": null, "@": "set-input-mode-katakana" } } } libkkc-0.3.5/data/rules/azik-jp106/keymap/katakana.json000066400000000000000000000002541244473050600225570ustar00rootroot00000000000000{ "include": [ "default/default" ], "define": { "keymap": { "[": null, "@": "set-input-mode-hiragana" } } } libkkc-0.3.5/data/rules/azik-jp106/keymap/latin.json000066400000000000000000000000651244473050600221130ustar00rootroot00000000000000{ "include": [ "default/default" ] } libkkc-0.3.5/data/rules/azik-jp106/keymap/wide-latin.json000066400000000000000000000000651244473050600230410ustar00rootroot00000000000000{ "include": [ "default/default" ] } libkkc-0.3.5/data/rules/azik-jp106/metadata.json.in000066400000000000000000000003241244473050600217010ustar00rootroot00000000000000{ "name": _("AZIK (Japanese 106 keyboard)"), "description": _("Extended romaji input method developed by Kiyoshi Kimura "), "priority": 10 } libkkc-0.3.5/data/rules/azik-jp106/rom-kana/000077500000000000000000000000001244473050600203275ustar00rootroot00000000000000libkkc-0.3.5/data/rules/azik-jp106/rom-kana/default.json000066400000000000000000000424601244473050600226540ustar00rootroot00000000000000{ "include": [ "default/default" ], "define": { "rom-kana": { ";": ["", "っ" ], "b.": ["", "ぶ" ], "bd": ["", "べん" ], "bh": ["", "ぶう" ], "bj": ["", "ぶん" ], "bk": ["", "びん" ], "bl": ["", "ぼん" ], "bn": ["", "ばん" ], "bp": ["", "ぼう" ], "bq": ["", "ばい" ], "br": ["", "ばら" ], "bt": ["", "びと" ], "bw": ["", "べい" ], "bx": ["", "べい" ], "byd": ["", "びぇん" ], "byh": ["", "びゅう" ], "byj": ["", "びゅん" ], "byl": ["", "びょん" ], "byn": ["", "びゃん" ], "byp": ["", "びょう" ], "byq": ["", "びゃい" ], "byw": ["", "びぇい" ], "byz": ["", "びゃん" ], "bz": ["", "ばん" ], "ca": ["", "ちゃ" ], "cc": ["", "ちゃ" ], "cd": ["", "ちぇん" ], "ce": ["", "ちぇ" ], "cf": ["", "ちぇ" ], "ch": ["", "ちゅう" ], "cha": null, "che": null, "chi": null, "cho": null, "chu": null, "ci": ["", "ち" ], "cj": ["", "ちゅん" ], "ck": ["", "ちん" ], "cl": ["", "ちょん" ], "cn": ["", "ちゃん" ], "co": ["", "ちょ" ], "cp": ["", "ちょう" ], "cq": ["", "ちゃい" ], "cu": ["", "ちゅ" ], "cv": ["", "ちゃい" ], "cw": ["", "ちぇい" ], "cx": ["", "ちぇい" ], "cz": ["", "ちゃん" ], "dch": ["", "でゅー" ], "dci": ["", "でぃ" ], "dck": ["", "でぃん" ], "dcp": ["", "どぅー" ], "dcu": ["", "でゅ" ], "dd": ["", "でん" ], "df": ["", "で" ], "dg": ["", "だが" ], "dh": ["", "づう" ], "dha": null, "dhe": null, "dhi": null, "dho": null, "dhu": null, "dj": ["", "づん" ], "dk": ["", "ぢん" ], "dl": ["", "どん" ], "dm": ["", "でも" ], "dn": ["", "だん" ], "dp": ["", "どう" ], "dq": ["", "だい" ], "dr": ["", "である" ], "ds": ["", "です" ], "dt": ["", "だち" ], "dv": ["", "でん" ], "dw": ["", "でい" ], "dy": ["", "でぃ" ], "dz": ["", "だん" ], "fd": ["", "ふぇん" ], "fh": ["", "ふう" ], "fj": ["", "ふん" ], "fk": ["", "ふぃん" ], "fl": ["", "ふぉん" ], "fm": ["", "ふむ" ], "fn": ["", "ふぁん" ], "fp": ["", "ふぉー" ], "fq": ["", "ふぁい" ], "fr": ["", "ふる" ], "fs": ["", "ふぁい" ], "fw": ["", "ふぇい" ], "fz": ["", "ふぁん" ], "gd": ["", "げん" ], "gh": ["", "ぐう" ], "gj": ["", "ぐん" ], "gk": ["", "ぎん" ], "gl": ["", "ごん" ], "gn": ["", "がん" ], "gp": ["", "ごう" ], "gq": ["", "がい" ], "gr": ["", "がら" ], "gt": ["", "ごと" ], "gw": ["", "げい" ], "gyd": ["", "ぎぇん" ], "gyh": ["", "ぎゅう" ], "gyj": ["", "ぎゅん" ], "gyl": ["", "ぎょん" ], "gyn": ["", "ぎゃん" ], "gyp": ["", "ぎょう" ], "gyq": ["", "ぎゃい" ], "gyw": ["", "ぎぇい" ], "gyz": ["", "ぎゃん" ], "gz": ["", "がん" ], "hd": ["", "へん" ], "hf": ["", "ふ" ], "hga": ["", "ひゃ" ], "hgd": ["", "ひぇん" ], "hge": ["", "ひぇ" ], "hgh": ["", "ひゅう" ], "hgj": ["", "ひゅん" ], "hgl": ["", "ひょん" ], "hgn": ["", "ひゃん" ], "hgo": ["", "ひょ" ], "hgp": ["", "ひょう" ], "hgq": ["", "ひゃい" ], "hgu": ["", "ひゅ" ], "hgw": ["", "ひぇい" ], "hgz": ["", "ひゃん" ], "hh": ["", "ふう" ], "hj": ["", "ふん" ], "hk": ["", "ひん" ], "hl": ["", "ほん" ], "hn": ["", "はん" ], "hp": ["", "ほう" ], "hq": ["", "はい" ], "ht": ["", "ひと" ], "hw": ["", "へい" ], "hyd": ["", "ひぇん" ], "hyh": ["", "ひゅう" ], "hyl": ["", "ひょん" ], "hyp": ["", "ひょう" ], "hyq": ["", "ひゃい" ], "hyw": ["", "ひぇい" ], "hyz": ["", "ひゃん" ], "hz": ["", "はん" ], "jd": ["", "じぇん" ], "jf": ["", "じゅ" ], "jh": ["", "じゅう" ], "jj": ["", "じゅん" ], "jk": ["", "じん" ], "jl": ["", "じょん" ], "jn": ["", "じゃん" ], "jp": ["", "じょう" ], "jq": ["", "じゃい" ], "jv": ["", "じゅう" ], "jw": ["", "じぇい" ], "jz": ["", "じゃん" ], "kA": ["", "ヵ" ], "kE": ["", "ヶ" ], "kd": ["", "けん" ], "kf": ["", "き" ], "kga": ["", "きゃ" ], "kgd": ["", "きぇん" ], "kge": ["", "きぇ" ], "kgh": ["", "きゅう" ], "kgl": ["", "きょん" ], "kgn": ["", "きゃん" ], "kgo": ["", "きょ" ], "kgp": ["", "きょう" ], "kgq": ["", "きゃい" ], "kgu": ["", "きゅ" ], "kgw": ["", "きぇい" ], "kgz": ["", "きゃん" ], "kh": ["", "くう" ], "kj": ["", "くん" ], "kk": ["", "きん" ], "kl": ["", "こん" ], "km": ["", "かも" ], "kn": ["", "かん" ], "kp": ["", "こう" ], "kq": ["", "かい" ], "kr": ["", "から" ], "kt": ["", "こと" ], "kv": ["", "きん" ], "kw": ["", "けい" ], "kyd": ["", "きぇん" ], "kyh": ["", "きゅう" ], "kyj": ["", "きゅん" ], "kyl": ["", "きょん" ], "kyn": ["", "きゃん" ], "kyp": ["", "きょう" ], "kyq": ["", "きゃい" ], "kyw": ["", "きぇい" ], "kyz": ["", "きゃん" ], "kz": ["", "かん" ], "m.": ["", "む" ], "md": ["", "めん" ], "mf": ["", "む" ], "mga": ["", "みゃ" ], "mgd": ["", "みぇん" ], "mge": ["", "みぇ" ], "mgh": ["", "みゅう" ], "mgj": ["", "みゅん" ], "mgl": ["", "みょん" ], "mgn": ["", "みゃん" ], "mgo": ["", "みょ" ], "mgp": ["", "みょう" ], "mgq": ["", "みゃい" ], "mgu": ["", "みゅ" ], "mgw": ["", "みぇい" ], "mgz": ["", "みゃん" ], "mh": ["", "むう" ], "mj": ["", "むん" ], "mk": ["", "みん" ], "ml": ["", "もん" ], "mn": ["", "もの" ], "mp": ["", "もう" ], "mq": ["", "まい" ], "mr": ["", "まる" ], "ms": ["", "ます" ], "mt": ["", "また" ], "mv": ["", "むん" ], "mw": ["", "めい" ], "myd": ["", "みぇん" ], "myh": ["", "みゅう" ], "myj": ["", "みゅん" ], "myl": ["", "みょん" ], "myn": ["", "みゃん" ], "myp": ["", "みょう" ], "myq": ["", "みゃい" ], "myw": ["", "みぇい" ], "myz": ["", "みゃん" ], "mz": ["", "まん" ], "n.": ["", "ぬ" ], "nb": ["", "ねば" ], "nd": ["", "ねん" ], "nf": ["", "ぬ" ], "nga": ["", "にゃ" ], "ngd": ["", "にぇん" ], "nge": ["", "にぇ" ], "ngh": ["", "にゅう" ], "ngj": ["", "にゅん" ], "ngl": ["", "にょん" ], "ngn": ["", "にゃん" ], "ngo": ["", "にょ" ], "ngp": ["", "にょう" ], "ngq": ["", "にゃい" ], "ngu": ["", "にゅ" ], "ngw": ["", "にぇい" ], "ngz": ["", "にゃん" ], "nh": ["", "ぬう" ], "nj": ["", "ぬん" ], "nk": ["", "にん" ], "nl": ["", "のん" ], "np": ["", "のう" ], "nq": ["", "ない" ], "nr": ["", "なる" ], "nt": ["", "にち" ], "nv": ["", "ぬん" ], "nw": ["", "ねい" ], "nyd": ["", "にぇん" ], "nyh": ["", "にゅう" ], "nyj": ["", "にゅん" ], "nyl": ["", "にょん" ], "nyn": ["", "にゃん" ], "nyp": ["", "にょう" ], "nyq": ["", "にゃい" ], "nyw": ["", "にぇい" ], "nyz": ["", "にゃん" ], "nz": ["", "なん" ], "pd": ["", "ぺん" ], "pf": ["", "ぽん" ], "pga": ["", "ぴゃ" ], "pgd": ["", "ぴぇん" ], "pge": ["", "ぴぇ" ], "pgh": ["", "ぴゅう" ], "pgj": ["", "ぴゅん" ], "pgl": ["", "ぴょん" ], "pgn": ["", "ぴゃん" ], "pgo": ["", "ぴょ" ], "pgp": ["", "ぴょう" ], "pgq": ["", "ぴゃい" ], "pgu": ["", "ぴゅ" ], "pgw": ["", "ぴぇい" ], "pgz": ["", "ぴゃん" ], "ph": ["", "ぷう" ], "pj": ["", "ぷん" ], "pk": ["", "ぴん" ], "pl": ["", "ぽん" ], "pn": ["", "ぱん" ], "pp": ["", "ぽう" ], "pq": ["", "ぱい" ], "pv": ["", "ぽう" ], "pw": ["", "ぺい" ], "pyd": ["", "ぴぇん" ], "pyh": ["", "ぴゅう" ], "pyj": ["", "ぴゅん" ], "pyl": ["", "ぴょん" ], "pyn": ["", "ぴゃん" ], "pyp": ["", "ぴょう" ], "pyq": ["", "ぴゃい" ], "pyw": ["", "ぴぇい" ], "pyz": ["", "ぴゃん" ], "pz": ["", "ぱん" ], "q": ["", "ん" ], "rd": ["", "れん" ], "rh": ["", "るう" ], "rj": ["", "るん" ], "rk": ["", "りん" ], "rl": ["", "ろん" ], "rn": ["", "らん" ], "rp": ["", "ろう" ], "rq": ["", "らい" ], "rr": ["", "られ" ], "rw": ["", "れい" ], "ryd": ["", "りぇん" ], "ryh": ["", "りゅう" ], "ryj": ["", "りゅん" ], "ryk": ["", "りょく" ], "ryl": ["", "りょん" ], "ryn": ["", "りゃん" ], "ryp": ["", "りょう" ], "ryq": ["", "りゃい" ], "ryw": ["", "りぇい" ], "ryz": ["", "りゃん" ], "rz": ["", "らん" ], "sd": ["", "せん" ], "sf": ["", "さい" ], "sh": ["", "すう" ], "sha": null, "she": null, "shi": null, "sho": null, "shu": null, "sj": ["", "すん" ], "sk": ["", "しん" ], "sl": ["", "そん" ], "sm": ["", "しも" ], "sn": ["", "さん" ], "sp": ["", "そう" ], "sq": ["", "さい" ], "sr": ["", "する" ], "ss": ["", "せい" ], "st": ["", "した" ], "sv": ["", "さい" ], "sw": ["", "せい" ], "syd": ["", "しぇん" ], "syh": ["", "しゅう" ], "syj": ["", "しゅん" ], "syl": ["", "しょん" ], "syp": ["", "しょう" ], "syq": ["", "しゃい" ], "syw": ["", "しぇい" ], "syz": ["", "しゃん" ], "sz": ["", "さん" ], "tU": ["", "っ" ], "tb": ["", "たび" ], "td": ["", "てん" ], "tgh": ["", "てゅー" ], "tgi": ["", "てぃ" ], "tgk": ["", "てぃん" ], "tgp": ["", "とぅー" ], "tgu": ["", "てゅ" ], "th": ["", "つう" ], "tha": null, "the": null, "thi": null, "tho": null, "thu": null, "tj": ["", "つん" ], "tk": ["", "ちん" ], "tl": ["", "とん" ], "tm": ["", "ため" ], "tn": ["", "たん" ], "tp": ["", "とう" ], "tq": ["", "たい" ], "tr": ["", "たら" ], "tsU": ["", "っ" ], "tsa": ["", "つぁ" ], "tse": ["", "つぇ" ], "tsi": ["", "つぃ" ], "tso": ["", "つぉ" ], "tt": ["", "たち" ], "tw": ["", "てい" ], "tyd": ["", "ちぇん" ], "tyh": ["", "ちゅう" ], "tyj": ["", "ちゅん" ], "tyl": ["", "ちょん" ], "tyn": ["", "ちゃん" ], "typ": ["", "ちょう" ], "tyq": ["", "ちゃい" ], "tyw": ["", "ちぇい" ], "tyz": ["", "ちゃん" ], "tz": ["", "たん" ], "vd": ["", "う゛ぇん" ], "vk": ["", "う゛ぃん" ], "vl": ["", "う゛ぉん" ], "vn": ["", "う゛ぁん" ], "vp": ["", "う゛ぉー" ], "vq": ["", "う゛ぁい" ], "vw": ["", "う゛ぇい" ], "vya": ["", "う゛ゃ" ], "vye": ["", "う゛ぇ" ], "vyo": ["", "う゛ょ" ], "vyu": ["", "う゛ゅ" ], "vz": ["", "う゛ぁん" ], "wA": ["", "ゎ" ], "wd": ["", "うぇん" ], "wf": ["", "わい" ], "wha": ["", "うぁ" ], "whe": ["", "うぇ" ], "whi": ["", "うぃ" ], "who": ["", "うぉ" ], "whu": ["", "う" ], "wk": ["", "うぃん" ], "wl": ["", "うぉん" ], "wn": ["", "わん" ], "wp": ["", "うぉー" ], "wq": ["", "わい" ], "wr": ["", "われ" ], "wso": ["", "うぉ" ], "wt": ["", "わた" ], "wz": ["", "わん" ], "x;": ["", ";" ], "xa": ["", "しゃ" ], "xc": ["", "しゃ" ], "xd": ["", "しぇん" ], "xe": ["", "しぇ" ], "xf": ["", "しぇい" ], "xh": ["", "しゅう" ], "xi": ["", "し" ], "xj": ["", "しゅん" ], "xk": ["", "しん" ], "xl": ["", "しょん" ], "xn": ["", "しゃん" ], "xo": ["", "しょ" ], "xp": ["", "しょう" ], "xq": ["", "しゃい" ], "xt": ["", "しゅつ" ], "xu": ["", "しゅ" ], "xv": ["", "しゃい" ], "xw": ["", "しぇい" ], "xxa": ["", "ぁ" ], "xxe": ["", "ぇ" ], "xxh": ["", "←" ], "xxi": ["", "ぃ" ], "xxj": ["", "↓" ], "xxk": ["", "↑" ], "xxl": ["", "→" ], "xxo": ["", "ぉ" ], "xxu": ["", "ぅ" ], "xz": ["", "しゃん" ], "y<": ["", "←" ], "y>": ["", "→" ], "y^": ["", "↑" ], "yf": ["", "ゆ" ], "yh": ["", "ゆう" ], "yi": ["", "ゐ" ], "yj": ["", "ゆん" ], "yl": ["", "よん" ], "yn": ["", "やん" ], "yp": ["", "よう" ], "yq": ["", "やい" ], "yr": ["", "よる" ], "yv": ["", "ゆう" ], "yz": ["", "やん" ], "z.": ["", "ず" ], "zc": ["", "ざ" ], "zd": ["", "ぜん" ], "zf": ["", "ぜ" ], "zh": ["", "ずう" ], "zj": ["", "ずん" ], "zk": ["", "じん" ], "zl": ["", "ぞん" ], "zn": ["", "ざん" ], "zp": ["", "ぞう" ], "zq": ["", "ざい" ], "zr": ["", "ざる" ], "zv": ["", "ざい" ], "zw": ["", "ぜい" ], "zx": ["", "ぜい" ], "zyd": ["", "じぇん" ], "zyh": ["", "じゅう" ], "zyj": ["", "じゅん" ], "zyl": ["", "じょん" ], "zyn": ["", "じゃん" ], "zyp": ["", "じょう" ], "zyq": ["", "じゃい" ], "zyw": ["", "じぇい" ], "zyz": ["", "じゃん" ], "zz": ["", "ざん" ] } } } libkkc-0.3.5/data/rules/azik/000077500000000000000000000000001244473050600157645ustar00rootroot00000000000000libkkc-0.3.5/data/rules/azik/Makefile.am000066400000000000000000000010621244473050600200170ustar00rootroot00000000000000rulesdir = $(pkgdatadir)/rules/azik files = \ keymap/default.json \ keymap/hankaku-katakana.json \ keymap/hiragana.json \ keymap/katakana.json \ keymap/latin.json \ keymap/wide-latin.json \ rom-kana/default.json \ $(NULL) metadata_in = \ metadata.json.in \ $(NULL) nobase_rules_DATA = \ $(files) \ $(metadata_in:.in=) \ $(NULL) EXTRA_DIST = \ $(files) \ $(metadata_in) \ $(NULL) CLEANFILES = \ metadata.json \ $(NULL) -include $(top_srcdir)/data/rules/rule.mk -include $(top_srcdir)/git.mk libkkc-0.3.5/data/rules/azik/keymap/000077500000000000000000000000001244473050600172525ustar00rootroot00000000000000libkkc-0.3.5/data/rules/azik/keymap/default.json000066400000000000000000000002051244473050600215660ustar00rootroot00000000000000{ "include": [ "default/default" ], "define": { "keymap": { ":": "upper-;" } } } libkkc-0.3.5/data/rules/azik/keymap/hankaku-katakana.json000066400000000000000000000002161244473050600233370ustar00rootroot00000000000000{ "include": [ "default" ], "define": { "keymap": { "\\": "set-input-mode-hiragana" } } } libkkc-0.3.5/data/rules/azik/keymap/hiragana.json000066400000000000000000000002151244473050600217150ustar00rootroot00000000000000{ "include": [ "default" ], "define": { "keymap": { "[": "set-input-mode-katakana" } } } libkkc-0.3.5/data/rules/azik/keymap/katakana.json000066400000000000000000000002151244473050600217160ustar00rootroot00000000000000{ "include": [ "default" ], "define": { "keymap": { "[": "set-input-mode-hiragana" } } } libkkc-0.3.5/data/rules/azik/keymap/latin.json000066400000000000000000000000551244473050600212540ustar00rootroot00000000000000{ "include": [ "default" ] } libkkc-0.3.5/data/rules/azik/keymap/wide-latin.json000066400000000000000000000000551244473050600222020ustar00rootroot00000000000000{ "include": [ "default" ] } libkkc-0.3.5/data/rules/azik/metadata.json.in000066400000000000000000000002741244473050600210470ustar00rootroot00000000000000{ "name": _("AZIK"), "description": _("Extended romaji input method developed by Kiyoshi Kimura "), "priority": 10 } libkkc-0.3.5/data/rules/azik/rom-kana/000077500000000000000000000000001244473050600174715ustar00rootroot00000000000000libkkc-0.3.5/data/rules/azik/rom-kana/default.json000066400000000000000000000424601244473050600220160ustar00rootroot00000000000000{ "include": [ "default/default" ], "define": { "rom-kana": { ";": ["", "っ" ], "b.": ["", "ぶ" ], "bd": ["", "べん" ], "bh": ["", "ぶう" ], "bj": ["", "ぶん" ], "bk": ["", "びん" ], "bl": ["", "ぼん" ], "bn": ["", "ばん" ], "bp": ["", "ぼう" ], "bq": ["", "ばい" ], "br": ["", "ばら" ], "bt": ["", "びと" ], "bw": ["", "べい" ], "bx": ["", "べい" ], "byd": ["", "びぇん" ], "byh": ["", "びゅう" ], "byj": ["", "びゅん" ], "byl": ["", "びょん" ], "byn": ["", "びゃん" ], "byp": ["", "びょう" ], "byq": ["", "びゃい" ], "byw": ["", "びぇい" ], "byz": ["", "びゃん" ], "bz": ["", "ばん" ], "ca": ["", "ちゃ" ], "cc": ["", "ちゃ" ], "cd": ["", "ちぇん" ], "ce": ["", "ちぇ" ], "cf": ["", "ちぇ" ], "ch": ["", "ちゅう" ], "cha": null, "che": null, "chi": null, "cho": null, "chu": null, "ci": ["", "ち" ], "cj": ["", "ちゅん" ], "ck": ["", "ちん" ], "cl": ["", "ちょん" ], "cn": ["", "ちゃん" ], "co": ["", "ちょ" ], "cp": ["", "ちょう" ], "cq": ["", "ちゃい" ], "cu": ["", "ちゅ" ], "cv": ["", "ちゃい" ], "cw": ["", "ちぇい" ], "cx": ["", "ちぇい" ], "cz": ["", "ちゃん" ], "dch": ["", "でゅー" ], "dci": ["", "でぃ" ], "dck": ["", "でぃん" ], "dcp": ["", "どぅー" ], "dcu": ["", "でゅ" ], "dd": ["", "でん" ], "df": ["", "で" ], "dg": ["", "だが" ], "dh": ["", "づう" ], "dha": null, "dhe": null, "dhi": null, "dho": null, "dhu": null, "dj": ["", "づん" ], "dk": ["", "ぢん" ], "dl": ["", "どん" ], "dm": ["", "でも" ], "dn": ["", "だん" ], "dp": ["", "どう" ], "dq": ["", "だい" ], "dr": ["", "である" ], "ds": ["", "です" ], "dt": ["", "だち" ], "dv": ["", "でん" ], "dw": ["", "でい" ], "dy": ["", "でぃ" ], "dz": ["", "だん" ], "fd": ["", "ふぇん" ], "fh": ["", "ふう" ], "fj": ["", "ふん" ], "fk": ["", "ふぃん" ], "fl": ["", "ふぉん" ], "fm": ["", "ふむ" ], "fn": ["", "ふぁん" ], "fp": ["", "ふぉー" ], "fq": ["", "ふぁい" ], "fr": ["", "ふる" ], "fs": ["", "ふぁい" ], "fw": ["", "ふぇい" ], "fz": ["", "ふぁん" ], "gd": ["", "げん" ], "gh": ["", "ぐう" ], "gj": ["", "ぐん" ], "gk": ["", "ぎん" ], "gl": ["", "ごん" ], "gn": ["", "がん" ], "gp": ["", "ごう" ], "gq": ["", "がい" ], "gr": ["", "がら" ], "gt": ["", "ごと" ], "gw": ["", "げい" ], "gyd": ["", "ぎぇん" ], "gyh": ["", "ぎゅう" ], "gyj": ["", "ぎゅん" ], "gyl": ["", "ぎょん" ], "gyn": ["", "ぎゃん" ], "gyp": ["", "ぎょう" ], "gyq": ["", "ぎゃい" ], "gyw": ["", "ぎぇい" ], "gyz": ["", "ぎゃん" ], "gz": ["", "がん" ], "hd": ["", "へん" ], "hf": ["", "ふ" ], "hga": ["", "ひゃ" ], "hgd": ["", "ひぇん" ], "hge": ["", "ひぇ" ], "hgh": ["", "ひゅう" ], "hgj": ["", "ひゅん" ], "hgl": ["", "ひょん" ], "hgn": ["", "ひゃん" ], "hgo": ["", "ひょ" ], "hgp": ["", "ひょう" ], "hgq": ["", "ひゃい" ], "hgu": ["", "ひゅ" ], "hgw": ["", "ひぇい" ], "hgz": ["", "ひゃん" ], "hh": ["", "ふう" ], "hj": ["", "ふん" ], "hk": ["", "ひん" ], "hl": ["", "ほん" ], "hn": ["", "はん" ], "hp": ["", "ほう" ], "hq": ["", "はい" ], "ht": ["", "ひと" ], "hw": ["", "へい" ], "hyd": ["", "ひぇん" ], "hyh": ["", "ひゅう" ], "hyl": ["", "ひょん" ], "hyp": ["", "ひょう" ], "hyq": ["", "ひゃい" ], "hyw": ["", "ひぇい" ], "hyz": ["", "ひゃん" ], "hz": ["", "はん" ], "jd": ["", "じぇん" ], "jf": ["", "じゅ" ], "jh": ["", "じゅう" ], "jj": ["", "じゅん" ], "jk": ["", "じん" ], "jl": ["", "じょん" ], "jn": ["", "じゃん" ], "jp": ["", "じょう" ], "jq": ["", "じゃい" ], "jv": ["", "じゅう" ], "jw": ["", "じぇい" ], "jz": ["", "じゃん" ], "kA": ["", "ヵ" ], "kE": ["", "ヶ" ], "kd": ["", "けん" ], "kf": ["", "き" ], "kga": ["", "きゃ" ], "kgd": ["", "きぇん" ], "kge": ["", "きぇ" ], "kgh": ["", "きゅう" ], "kgl": ["", "きょん" ], "kgn": ["", "きゃん" ], "kgo": ["", "きょ" ], "kgp": ["", "きょう" ], "kgq": ["", "きゃい" ], "kgu": ["", "きゅ" ], "kgw": ["", "きぇい" ], "kgz": ["", "きゃん" ], "kh": ["", "くう" ], "kj": ["", "くん" ], "kk": ["", "きん" ], "kl": ["", "こん" ], "km": ["", "かも" ], "kn": ["", "かん" ], "kp": ["", "こう" ], "kq": ["", "かい" ], "kr": ["", "から" ], "kt": ["", "こと" ], "kv": ["", "きん" ], "kw": ["", "けい" ], "kyd": ["", "きぇん" ], "kyh": ["", "きゅう" ], "kyj": ["", "きゅん" ], "kyl": ["", "きょん" ], "kyn": ["", "きゃん" ], "kyp": ["", "きょう" ], "kyq": ["", "きゃい" ], "kyw": ["", "きぇい" ], "kyz": ["", "きゃん" ], "kz": ["", "かん" ], "m.": ["", "む" ], "md": ["", "めん" ], "mf": ["", "む" ], "mga": ["", "みゃ" ], "mgd": ["", "みぇん" ], "mge": ["", "みぇ" ], "mgh": ["", "みゅう" ], "mgj": ["", "みゅん" ], "mgl": ["", "みょん" ], "mgn": ["", "みゃん" ], "mgo": ["", "みょ" ], "mgp": ["", "みょう" ], "mgq": ["", "みゃい" ], "mgu": ["", "みゅ" ], "mgw": ["", "みぇい" ], "mgz": ["", "みゃん" ], "mh": ["", "むう" ], "mj": ["", "むん" ], "mk": ["", "みん" ], "ml": ["", "もん" ], "mn": ["", "もの" ], "mp": ["", "もう" ], "mq": ["", "まい" ], "mr": ["", "まる" ], "ms": ["", "ます" ], "mt": ["", "また" ], "mv": ["", "むん" ], "mw": ["", "めい" ], "myd": ["", "みぇん" ], "myh": ["", "みゅう" ], "myj": ["", "みゅん" ], "myl": ["", "みょん" ], "myn": ["", "みゃん" ], "myp": ["", "みょう" ], "myq": ["", "みゃい" ], "myw": ["", "みぇい" ], "myz": ["", "みゃん" ], "mz": ["", "まん" ], "n.": ["", "ぬ" ], "nb": ["", "ねば" ], "nd": ["", "ねん" ], "nf": ["", "ぬ" ], "nga": ["", "にゃ" ], "ngd": ["", "にぇん" ], "nge": ["", "にぇ" ], "ngh": ["", "にゅう" ], "ngj": ["", "にゅん" ], "ngl": ["", "にょん" ], "ngn": ["", "にゃん" ], "ngo": ["", "にょ" ], "ngp": ["", "にょう" ], "ngq": ["", "にゃい" ], "ngu": ["", "にゅ" ], "ngw": ["", "にぇい" ], "ngz": ["", "にゃん" ], "nh": ["", "ぬう" ], "nj": ["", "ぬん" ], "nk": ["", "にん" ], "nl": ["", "のん" ], "np": ["", "のう" ], "nq": ["", "ない" ], "nr": ["", "なる" ], "nt": ["", "にち" ], "nv": ["", "ぬん" ], "nw": ["", "ねい" ], "nyd": ["", "にぇん" ], "nyh": ["", "にゅう" ], "nyj": ["", "にゅん" ], "nyl": ["", "にょん" ], "nyn": ["", "にゃん" ], "nyp": ["", "にょう" ], "nyq": ["", "にゃい" ], "nyw": ["", "にぇい" ], "nyz": ["", "にゃん" ], "nz": ["", "なん" ], "pd": ["", "ぺん" ], "pf": ["", "ぽん" ], "pga": ["", "ぴゃ" ], "pgd": ["", "ぴぇん" ], "pge": ["", "ぴぇ" ], "pgh": ["", "ぴゅう" ], "pgj": ["", "ぴゅん" ], "pgl": ["", "ぴょん" ], "pgn": ["", "ぴゃん" ], "pgo": ["", "ぴょ" ], "pgp": ["", "ぴょう" ], "pgq": ["", "ぴゃい" ], "pgu": ["", "ぴゅ" ], "pgw": ["", "ぴぇい" ], "pgz": ["", "ぴゃん" ], "ph": ["", "ぷう" ], "pj": ["", "ぷん" ], "pk": ["", "ぴん" ], "pl": ["", "ぽん" ], "pn": ["", "ぱん" ], "pp": ["", "ぽう" ], "pq": ["", "ぱい" ], "pv": ["", "ぽう" ], "pw": ["", "ぺい" ], "pyd": ["", "ぴぇん" ], "pyh": ["", "ぴゅう" ], "pyj": ["", "ぴゅん" ], "pyl": ["", "ぴょん" ], "pyn": ["", "ぴゃん" ], "pyp": ["", "ぴょう" ], "pyq": ["", "ぴゃい" ], "pyw": ["", "ぴぇい" ], "pyz": ["", "ぴゃん" ], "pz": ["", "ぱん" ], "q": ["", "ん" ], "rd": ["", "れん" ], "rh": ["", "るう" ], "rj": ["", "るん" ], "rk": ["", "りん" ], "rl": ["", "ろん" ], "rn": ["", "らん" ], "rp": ["", "ろう" ], "rq": ["", "らい" ], "rr": ["", "られ" ], "rw": ["", "れい" ], "ryd": ["", "りぇん" ], "ryh": ["", "りゅう" ], "ryj": ["", "りゅん" ], "ryk": ["", "りょく" ], "ryl": ["", "りょん" ], "ryn": ["", "りゃん" ], "ryp": ["", "りょう" ], "ryq": ["", "りゃい" ], "ryw": ["", "りぇい" ], "ryz": ["", "りゃん" ], "rz": ["", "らん" ], "sd": ["", "せん" ], "sf": ["", "さい" ], "sh": ["", "すう" ], "sha": null, "she": null, "shi": null, "sho": null, "shu": null, "sj": ["", "すん" ], "sk": ["", "しん" ], "sl": ["", "そん" ], "sm": ["", "しも" ], "sn": ["", "さん" ], "sp": ["", "そう" ], "sq": ["", "さい" ], "sr": ["", "する" ], "ss": ["", "せい" ], "st": ["", "した" ], "sv": ["", "さい" ], "sw": ["", "せい" ], "syd": ["", "しぇん" ], "syh": ["", "しゅう" ], "syj": ["", "しゅん" ], "syl": ["", "しょん" ], "syp": ["", "しょう" ], "syq": ["", "しゃい" ], "syw": ["", "しぇい" ], "syz": ["", "しゃん" ], "sz": ["", "さん" ], "tU": ["", "っ" ], "tb": ["", "たび" ], "td": ["", "てん" ], "tgh": ["", "てゅー" ], "tgi": ["", "てぃ" ], "tgk": ["", "てぃん" ], "tgp": ["", "とぅー" ], "tgu": ["", "てゅ" ], "th": ["", "つう" ], "tha": null, "the": null, "thi": null, "tho": null, "thu": null, "tj": ["", "つん" ], "tk": ["", "ちん" ], "tl": ["", "とん" ], "tm": ["", "ため" ], "tn": ["", "たん" ], "tp": ["", "とう" ], "tq": ["", "たい" ], "tr": ["", "たら" ], "tsU": ["", "っ" ], "tsa": ["", "つぁ" ], "tse": ["", "つぇ" ], "tsi": ["", "つぃ" ], "tso": ["", "つぉ" ], "tt": ["", "たち" ], "tw": ["", "てい" ], "tyd": ["", "ちぇん" ], "tyh": ["", "ちゅう" ], "tyj": ["", "ちゅん" ], "tyl": ["", "ちょん" ], "tyn": ["", "ちゃん" ], "typ": ["", "ちょう" ], "tyq": ["", "ちゃい" ], "tyw": ["", "ちぇい" ], "tyz": ["", "ちゃん" ], "tz": ["", "たん" ], "vd": ["", "う゛ぇん" ], "vk": ["", "う゛ぃん" ], "vl": ["", "う゛ぉん" ], "vn": ["", "う゛ぁん" ], "vp": ["", "う゛ぉー" ], "vq": ["", "う゛ぁい" ], "vw": ["", "う゛ぇい" ], "vya": ["", "う゛ゃ" ], "vye": ["", "う゛ぇ" ], "vyo": ["", "う゛ょ" ], "vyu": ["", "う゛ゅ" ], "vz": ["", "う゛ぁん" ], "wA": ["", "ゎ" ], "wd": ["", "うぇん" ], "wf": ["", "わい" ], "wha": ["", "うぁ" ], "whe": ["", "うぇ" ], "whi": ["", "うぃ" ], "who": ["", "うぉ" ], "whu": ["", "う" ], "wk": ["", "うぃん" ], "wl": ["", "うぉん" ], "wn": ["", "わん" ], "wp": ["", "うぉー" ], "wq": ["", "わい" ], "wr": ["", "われ" ], "wso": ["", "うぉ" ], "wt": ["", "わた" ], "wz": ["", "わん" ], "x;": ["", ";" ], "xa": ["", "しゃ" ], "xc": ["", "しゃ" ], "xd": ["", "しぇん" ], "xe": ["", "しぇ" ], "xf": ["", "しぇい" ], "xh": ["", "しゅう" ], "xi": ["", "し" ], "xj": ["", "しゅん" ], "xk": ["", "しん" ], "xl": ["", "しょん" ], "xn": ["", "しゃん" ], "xo": ["", "しょ" ], "xp": ["", "しょう" ], "xq": ["", "しゃい" ], "xt": ["", "しゅつ" ], "xu": ["", "しゅ" ], "xv": ["", "しゃい" ], "xw": ["", "しぇい" ], "xxa": ["", "ぁ" ], "xxe": ["", "ぇ" ], "xxh": ["", "←" ], "xxi": ["", "ぃ" ], "xxj": ["", "↓" ], "xxk": ["", "↑" ], "xxl": ["", "→" ], "xxo": ["", "ぉ" ], "xxu": ["", "ぅ" ], "xz": ["", "しゃん" ], "y<": ["", "←" ], "y>": ["", "→" ], "y^": ["", "↑" ], "yf": ["", "ゆ" ], "yh": ["", "ゆう" ], "yi": ["", "ゐ" ], "yj": ["", "ゆん" ], "yl": ["", "よん" ], "yn": ["", "やん" ], "yp": ["", "よう" ], "yq": ["", "やい" ], "yr": ["", "よる" ], "yv": ["", "ゆう" ], "yz": ["", "やん" ], "z.": ["", "ず" ], "zc": ["", "ざ" ], "zd": ["", "ぜん" ], "zf": ["", "ぜ" ], "zh": ["", "ずう" ], "zj": ["", "ずん" ], "zk": ["", "じん" ], "zl": ["", "ぞん" ], "zn": ["", "ざん" ], "zp": ["", "ぞう" ], "zq": ["", "ざい" ], "zr": ["", "ざる" ], "zv": ["", "ざい" ], "zw": ["", "ぜい" ], "zx": ["", "ぜい" ], "zyd": ["", "じぇん" ], "zyh": ["", "じゅう" ], "zyj": ["", "じゅん" ], "zyl": ["", "じょん" ], "zyn": ["", "じゃん" ], "zyp": ["", "じょう" ], "zyq": ["", "じゃい" ], "zyw": ["", "じぇい" ], "zyz": ["", "じゃん" ], "zz": ["", "ざん" ] } } } libkkc-0.3.5/data/rules/default/000077500000000000000000000000001244473050600164525ustar00rootroot00000000000000libkkc-0.3.5/data/rules/default/Makefile.am000066400000000000000000000011151244473050600205040ustar00rootroot00000000000000rulesdir = $(pkgdatadir)/rules/default files = \ keymap/default.json \ keymap/hankaku-katakana.json \ keymap/hiragana.json \ keymap/katakana.json \ keymap/latin.json \ keymap/wide-latin.json \ keymap/direct.json \ rom-kana/default.json \ $(NULL) metadata_in = \ metadata.json.in \ $(NULL) nobase_rules_DATA = \ $(files) \ $(metadata_in:.in=) \ $(NULL) EXTRA_DIST = \ $(files) \ $(metadata_in) \ $(NULL) CLEANFILES = \ metadata.json \ $(NULL) -include $(top_srcdir)/data/rules/rule.mk -include $(top_srcdir)/git.mk libkkc-0.3.5/data/rules/default/keymap/000077500000000000000000000000001244473050600177405ustar00rootroot00000000000000libkkc-0.3.5/data/rules/default/keymap/default.json000066400000000000000000000030001244473050600222500ustar00rootroot00000000000000{ "define": { "keymap": { "C-g": "abort", "C-c": "abort", "Escape": "abort", "Return": "commit", "C-m": "commit", "C-h": "delete", "BackSpace": "delete", "C-d": "delete-forward", "Delete": "delete-forward", "C-q": "quote", "A-r": "register", "Tab": "complete", "Henkan_Mode": "next-candidate", "space": "next-candidate", "Down": "next-candidate", "C-x": "previous-candidate", "S-space": "previous-candidate", "C-BackSpace": "purge-candidate", "Up": "previous-candidate", "Muhenkan": "original-candidate", "Right": "next-segment", "Left": "previous-segment", "C-f": "next-segment", "Home": "first-segment", "End": "last-segment", "C-Right": "expand-segment", "C-Left": "shrink-segment", "S-Right": "expand-segment", "S-Left": "shrink-segment", "C-o": "expand-segment", "C-i": "shrink-segment", "A-@": "set-input-mode-direct", "A-`": "set-input-mode-direct", "Zenkaku_Hankaku": "set-input-mode-direct", "F6": "convert-hiragana", "F7": "convert-katakana", "F8": "convert-hankaku-katakana", "F9": "convert-wide-latin", "F10": "convert-latin" } } } libkkc-0.3.5/data/rules/default/keymap/direct.json000066400000000000000000000004741244473050600221120ustar00rootroot00000000000000{ "define": { "keymap": { "Hiragana_Katakana": "set-input-mode-hiragana", "A-@": "set-input-mode-hiragana", "A-`": "set-input-mode-hiragana", "Zenkaku_Hankaku": "set-input-mode-hiragana", "Eisu_toggle": "set-input-mode-latin" } } } libkkc-0.3.5/data/rules/default/keymap/hankaku-katakana.json000066400000000000000000000004511244473050600240260ustar00rootroot00000000000000{ "include": [ "default" ], "define": { "keymap": { "Hiragana_Katakana": "set-input-mode-hiragana", "A-k": "set-input-mode-hiragana", "Eisu_toggle": "set-input-mode-latin", "A-l": "set-input-mode-latin" } } } libkkc-0.3.5/data/rules/default/keymap/hiragana.json000066400000000000000000000004511244473050600224050ustar00rootroot00000000000000{ "include": [ "default" ], "define": { "keymap": { "Hiragana_Katakana": "set-input-mode-katakana", "A-k": "set-input-mode-katakana", "Eisu_toggle": "set-input-mode-latin", "A-l": "set-input-mode-latin" } } } libkkc-0.3.5/data/rules/default/keymap/katakana.json000066400000000000000000000004611244473050600224070ustar00rootroot00000000000000{ "include": [ "default" ], "define": { "keymap": { "Hiragana_Katakana": "set-input-mode-hiragana", "A-k": "set-input-mode-hankaku-katakana", "Eisu_toggle": "set-input-mode-latin", "A-l": "set-input-mode-latin" } } } libkkc-0.3.5/data/rules/default/keymap/latin.json000066400000000000000000000003731244473050600217450ustar00rootroot00000000000000{ "include": [ "default" ], "define": { "keymap": { "Hiragana_Katakana": "set-input-mode-hiragana", "A-k": "set-input-mode-hiragana", "A-l": "set-input-mode-wide-latin" } } } libkkc-0.3.5/data/rules/default/keymap/wide-latin.json000066400000000000000000000003661244473050600226750ustar00rootroot00000000000000{ "include": [ "default" ], "define": { "keymap": { "Hiragana_Katakana": "set-input-mode-hiragana", "A-k": "set-input-mode-hiragana", "A-l": "set-input-mode-latin" } } } libkkc-0.3.5/data/rules/default/metadata.json.in000066400000000000000000000001361244473050600215320ustar00rootroot00000000000000{ "name": _("Default"), "description": _("Default typing rule"), "priority": 99 } libkkc-0.3.5/data/rules/default/rom-kana/000077500000000000000000000000001244473050600201575ustar00rootroot00000000000000libkkc-0.3.5/data/rules/default/rom-kana/default.json000066400000000000000000000220121244473050600224730ustar00rootroot00000000000000{ "define": { "rom-kana": { "a": ["", "あ" ], "bb": ["b", "っ" ], "ba": ["", "ば" ], "be": ["", "べ" ], "bi": ["", "び" ], "bo": ["", "ぼ" ], "bu": ["", "ぶ" ], "bya": ["", "びゃ" ], "bye": ["", "びぇ" ], "byi": ["", "びぃ" ], "byo": ["", "びょ" ], "byu": ["", "びゅ" ], "cc": ["c", "っ" ], "cha": ["", "ちゃ" ], "che": ["", "ちぇ" ], "chi": ["", "ち" ], "cho": ["", "ちょ" ], "chu": ["", "ちゅ" ], "cya": ["", "ちゃ" ], "cye": ["", "ちぇ" ], "cyi": ["", "ちぃ" ], "cyo": ["", "ちょ" ], "cyu": ["", "ちゅ" ], "dd": ["d", "っ" ], "da": ["", "だ" ], "de": ["", "で" ], "dha": ["", "でゃ" ], "dhe": ["", "でぇ" ], "dhi": ["", "でぃ" ], "dho": ["", "でょ" ], "dhu": ["", "でゅ" ], "di": ["", "ぢ" ], "do": ["", "ど" ], "du": ["", "づ" ], "dya": ["", "ぢゃ" ], "dye": ["", "ぢぇ" ], "dyi": ["", "ぢぃ" ], "dyo": ["", "ぢょ" ], "dyu": ["", "ぢゅ" ], "e": ["", "え" ], "ff": ["f", "っ" ], "fa": ["", "ふぁ" ], "fe": ["", "ふぇ" ], "fi": ["", "ふぃ" ], "fo": ["", "ふぉ" ], "fu": ["", "ふ" ], "fya": ["", "ふゃ" ], "fye": ["", "ふぇ" ], "fyi": ["", "ふぃ" ], "fyo": ["", "ふょ" ], "fyu": ["", "ふゅ" ], "gg": ["g", "っ" ], "ga": ["", "が" ], "ge": ["", "げ" ], "gi": ["", "ぎ" ], "go": ["", "ご" ], "gu": ["", "ぐ" ], "gya": ["", "ぎゃ" ], "gye": ["", "ぎぇ" ], "gyi": ["", "ぎぃ" ], "gyo": ["", "ぎょ" ], "gyu": ["", "ぎゅ" ], "ha": ["", "は" ], "he": ["", "へ" ], "hh": ["h", "っ" ], "hi": ["", "ひ" ], "ho": ["", "ほ" ], "hu": ["", "ふ" ], "hya": ["", "ひゃ" ], "hye": ["", "ひぇ" ], "hyi": ["", "ひぃ" ], "hyo": ["", "ひょ" ], "hyu": ["", "ひゅ" ], "i": ["", "い" ], "jj": ["j", "っ" ], "ja": ["", "じゃ" ], "je": ["", "じぇ" ], "ji": ["", "じ" ], "jo": ["", "じょ" ], "ju": ["", "じゅ" ], "jya": ["", "じゃ" ], "jye": ["", "じぇ" ], "jyi": ["", "じぃ" ], "jyo": ["", "じょ" ], "jyu": ["", "じゅ" ], "kk": ["k", "っ" ], "ka": ["", "か" ], "ke": ["", "け" ], "ki": ["", "き" ], "ko": ["", "こ" ], "ku": ["", "く" ], "la": ["", "ぁ"], "li": ["", "ぃ"], "lu": ["", "ぅ"], "le": ["", "ぇ"], "lo": ["", "ぉ"], "lya": ["", "ゃ"], "lyi": ["", "ぃ"], "lyu": ["", "ゅ"], "lye": ["", "ぇ"], "lyo": ["", "ょ"], "kya": ["", "きゃ" ], "kye": ["", "きぇ" ], "kyi": ["", "きぃ" ], "kyo": ["", "きょ" ], "kyu": ["", "きゅ" ], "ma": ["", "ま" ], "me": ["", "め" ], "mi": ["", "み" ], "mm": ["m", "っ" ], "mo": ["", "も" ], "mu": ["", "む" ], "mya": ["", "みゃ" ], "mye": ["", "みぇ" ], "myi": ["", "みぃ" ], "myo": ["", "みょ" ], "myu": ["", "みゅ" ], "n": ["", "n", "n", "ん", "ン" ], "n\'": ["", "ん" ], "na": ["", "な" ], "ne": ["", "ね" ], "ni": ["", "に" ], "nn": ["", "ん" ], "no": ["", "の" ], "nu": ["", "ぬ" ], "nya": ["", "にゃ" ], "nye": ["", "にぇ" ], "nyi": ["", "にぃ" ], "nyo": ["", "にょ" ], "nyu": ["", "にゅ" ], "o": ["", "お" ], "pp": ["p", "っ" ], "pa": ["", "ぱ" ], "pe": ["", "ぺ" ], "pi": ["", "ぴ" ], "po": ["", "ぽ" ], "pu": ["", "ぷ" ], "pya": ["", "ぴゃ" ], "pye": ["", "ぴぇ" ], "pyi": ["", "ぴぃ" ], "pyo": ["", "ぴょ" ], "pyu": ["", "ぴゅ" ], "rr": ["r", "っ" ], "ra": ["", "ら" ], "re": ["", "れ" ], "ri": ["", "り" ], "ro": ["", "ろ" ], "ru": ["", "る" ], "rya": ["", "りゃ" ], "rye": ["", "りぇ" ], "ryi": ["", "りぃ" ], "ryo": ["", "りょ" ], "ryu": ["", "りゅ" ], "ss": ["s", "っ" ], "sa": ["", "さ" ], "se": ["", "せ" ], "sha": ["", "しゃ" ], "she": ["", "しぇ" ], "shi": ["", "し" ], "sho": ["", "しょ" ], "shu": ["", "しゅ" ], "si": ["", "し" ], "so": ["", "そ" ], "su": ["", "す" ], "sya": ["", "しゃ" ], "sye": ["", "しぇ" ], "syi": ["", "しぃ" ], "syo": ["", "しょ" ], "syu": ["", "しゅ" ], "tt": ["t", "っ" ], "ta": ["", "た" ], "te": ["", "て" ], "tha": ["", "てぁ" ], "the": ["", "てぇ" ], "thi": ["", "てぃ" ], "tho": ["", "てょ" ], "thu": ["", "てゅ" ], "ti": ["", "ち" ], "to": ["", "と" ], "tsu": ["", "つ" ], "tu": ["", "つ" ], "tya": ["", "ちゃ" ], "tye": ["", "ちぇ" ], "tyi": ["", "ちぃ" ], "tyo": ["", "ちょ" ], "tyu": ["", "ちゅ" ], "u": ["", "う" ], "vv": ["v", "っ" ], "va": ["", "う゛ぁ" ], "ve": ["", "う゛ぇ" ], "vi": ["", "う゛ぃ" ], "vo": ["", "う゛ぉ" ], "vu": ["", "う゛" ], "ww": ["w", "っ" ], "wa": ["", "わ" ], "we": ["", "うぇ" ], "wi": ["", "うぃ" ], "wo": ["", "を" ], "wu": ["", "う" ], "xx": ["x", "っ" ], "xa": ["", "ぁ" ], "xe": ["", "ぇ" ], "xi": ["", "ぃ" ], "xka": [ "", "か", "ヵ" ], "xke": [ "", "け", "ヶ" ], "xo": ["", "ぉ" ], "xtsu": ["", "っ" ], "xtu": ["", "っ" ], "xu": ["", "ぅ" ], "xwa": ["", "ゎ" ], "xwe": ["", "ゑ" ], "xwi": ["", "ゐ" ], "xya": ["", "ゃ" ], "xyo": ["", "ょ" ], "xyu": ["", "ゅ" ], "yy": ["y", "っ" ], "ya": ["", "や" ], "ye": ["", "いぇ" ], "yo": ["", "よ" ], "yu": ["", "ゆ" ], "zz": ["z", "っ" ], "z,": ["", "‥" ], "z-": ["", "〜" ], "z.": ["", "…" ], "z/": ["", "・" ], "z[": ["", "『" ], "z]": ["", "』" ], "za": ["", "ざ" ], "ze": ["", "ぜ" ], "zh": ["", "←" ], "zi": ["", "じ" ], "zj": ["", "↓" ], "zk": ["", "↑" ], "zl": ["", "→" ], "zo": ["", "ぞ" ], "zu": ["", "ず" ], "zya": ["", "じゃ" ], "zye": ["", "じぇ" ], "zyi": ["", "じぃ" ], "zyo": ["", "じょ" ], "zyu": ["", "じゅ" ], "qq": ["q", "っ"], "-": ["", "ー" ], ":": ["", ":" ], ";": ["", ";" ], "?": ["", "?" ], "[": ["", "「" ], "]": ["", "」" ], "!": ["", "!"], "\"": ["", "”"], "#": ["", "#"], "$": ["", "$"], "%": ["", "%"], "&": ["", "&"], "'": ["", "’"], "(": ["", "("], ")": ["", ")"], "=": ["", "="], "^": ["", "^"], "~": ["", "〜"], "\\": ["", "\"], "|": ["", "|"], "@": ["", "@"], "`": ["", "‘"], "{": ["", "{"], "+": ["", "+"], "*": ["", "*"], "}": ["", "}"], ",": ["", "、"], ".": ["", "。"], "<": ["", "<"], ">": ["", ">"], "/": ["", "/"] } } } libkkc-0.3.5/data/rules/kana/000077500000000000000000000000001244473050600157405ustar00rootroot00000000000000libkkc-0.3.5/data/rules/kana/Makefile.am000066400000000000000000000011121244473050600177670ustar00rootroot00000000000000rulesdir = $(pkgdatadir)/rules/kana files = \ keymap/default.json \ keymap/hankaku-katakana.json \ keymap/hiragana.json \ keymap/katakana.json \ keymap/latin.json \ keymap/wide-latin.json \ keymap/direct.json \ rom-kana/default.json \ $(NULL) metadata_in = \ metadata.json.in \ $(NULL) nobase_rules_DATA = \ $(files) \ $(metadata_in:.in=) \ $(NULL) EXTRA_DIST = \ $(files) \ $(metadata_in) \ $(NULL) CLEANFILES = \ metadata.json \ $(NULL) -include $(top_srcdir)/data/rules/rule.mk -include $(top_srcdir)/git.mk libkkc-0.3.5/data/rules/kana/keymap/000077500000000000000000000000001244473050600172265ustar00rootroot00000000000000libkkc-0.3.5/data/rules/kana/keymap/default.json000066400000000000000000000000651244473050600215460ustar00rootroot00000000000000{ "include": [ "default/default" ] } libkkc-0.3.5/data/rules/kana/keymap/direct.json000066400000000000000000000000641244473050600213730ustar00rootroot00000000000000{ "include": [ "default/direct" ] } libkkc-0.3.5/data/rules/kana/keymap/hankaku-katakana.json000066400000000000000000000000761244473050600233170ustar00rootroot00000000000000{ "include": [ "default/hankaku-katakana" ] } libkkc-0.3.5/data/rules/kana/keymap/hiragana.json000066400000000000000000000000661244473050600216750ustar00rootroot00000000000000{ "include": [ "default/hiragana" ] } libkkc-0.3.5/data/rules/kana/keymap/katakana.json000066400000000000000000000000661244473050600216760ustar00rootroot00000000000000{ "include": [ "default/katakana" ] } libkkc-0.3.5/data/rules/kana/keymap/latin.json000066400000000000000000000000631244473050600212270ustar00rootroot00000000000000{ "include": [ "default/latin" ] } libkkc-0.3.5/data/rules/kana/keymap/wide-latin.json000066400000000000000000000000701244473050600221530ustar00rootroot00000000000000{ "include": [ "default/wide-latin" ] } libkkc-0.3.5/data/rules/kana/metadata.json.in000066400000000000000000000001601244473050600210150ustar00rootroot00000000000000{ "name": _("Kana"), "description": _("Direct Kana typing"), "filter": "kana", "priority": 99 } libkkc-0.3.5/data/rules/kana/rom-kana/000077500000000000000000000000001244473050600174455ustar00rootroot00000000000000libkkc-0.3.5/data/rules/kana/rom-kana/default.json000066400000000000000000000061771244473050600217770ustar00rootroot00000000000000{ "define": { "rom-kana": { "1": ["", "ぬ"], "2": ["", "ふ", "フ", "ふ", "フ"], "2@": ["", "ぶ"], "2[": ["", "ぷ"], "3": ["", "あ"], "#": ["", "ぁ"], "4": ["", "う", "ウ", "う", "ウ"], "$": ["", "ぅ"], "4@": ["", "う゛"], "5": ["", "え"], "%": ["", "ぇ"], "6": ["", "お"], "&": ["", "ぉ"], "7": ["", "や"], "'": ["", "ゃ"], "8": ["", "ゆ"], "(": ["", "ゅ"], "9": ["", "よ"], ")": ["", "ょ"], "0": ["", "わ"], "~": ["", "を"], "-": ["", "ほ", "ホ", "ほ", "ホ"], "-@": ["", "ぼ"], "-[": ["", "ぽ"], "^": ["", "へ", "ヘ", "へ", "ヘ"], "^@": ["", "べ"], "^[": ["", "ぺ"], "q": ["", "た", "タ", "た", "タ"], "q@": ["", "だ"], "w": ["", "て", "テ", "て", "テ"], "w@": ["", "で"], "e": ["", "い"], "E": ["", "ぃ"], "r": ["", "す", "ス", "す", "ス"], "r@": ["", "ず"], "t": ["", "か", "カ", "か", "カ"], "t@": ["", "が"], "y": ["", "ん"], "u": ["", "な"], "i": ["", "に"], "o": ["", "ら"], "p": ["", "せ", "セ", "せ", "セ"], "p@": ["", "ぜ"], "@": ["", "゛"], "[": ["", "゜"], "{": ["", "「"], "a": ["", "ち", "チ", "ち", "チ"], "a@": ["", "ぢ"], "s": ["", "と", "ト", "と", "ト"], "s@": ["", "ど"], "d": ["", "し", "シ", "し", "シ"], "d@": ["", "じ"], "f": ["", "は", "ハ", "は", "ハ"], "f@": ["", "ば"], "f[": ["", "ぱ"], "g": ["", "き", "キ", "き", "キ"], "g@": ["", "ぎ"], "h": ["", "く", "ク", "く", "ク"], "h@": ["", "ぐ"], "j": ["", "ま"], "k": ["", "の"], "l": ["", "り"], ";": ["", "れ"], ":": ["", "け", "ケ", "け", "ケ"], ":@": ["", "げ"], "]": ["", "む"], "}": ["", "」"], "z": ["", "つ", "ツ", "つ", "ツ"], "z@": ["", "づ"], "Z": ["", "っ"], "x": ["", "さ", "サ", "さ", "サ"], "x@": ["", "ざ"], "c": ["", "そ", "ソ", "そ", "ソ"], "c@": ["", "ぞ"], "v": ["", "ひ", "ヒ", "ひ", "ヒ"], "v@": ["", "び"], "v[": ["", "ぴ"], "b": ["", "こ", "コ", "こ", "コ"], "b@": ["", "ご"], "n": ["", "み"], "m": ["", "も"], ",": ["", "ね"], "<": ["", "、"], ".": ["", "る"], ">": ["", "。"], "/": ["", "め"], "?": ["", "・"], "\\": ["", "ろ"], "¥": ["", "ー"] } } } libkkc-0.3.5/data/rules/kzik/000077500000000000000000000000001244473050600157765ustar00rootroot00000000000000libkkc-0.3.5/data/rules/kzik/Makefile.am000066400000000000000000000010621244473050600200310ustar00rootroot00000000000000rulesdir = $(pkgdatadir)/rules/kzik files = \ keymap/default.json \ keymap/hankaku-katakana.json \ keymap/hiragana.json \ keymap/katakana.json \ keymap/latin.json \ keymap/wide-latin.json \ rom-kana/default.json \ $(NULL) metadata_in = \ metadata.json.in \ $(NULL) nobase_rules_DATA = \ $(files) \ $(metadata_in:.in=) \ $(NULL) EXTRA_DIST = \ $(files) \ $(metadata_in) \ $(NULL) CLEANFILES = \ metadata.json \ $(NULL) -include $(top_srcdir)/data/rules/rule.mk -include $(top_srcdir)/git.mk libkkc-0.3.5/data/rules/kzik/keymap/000077500000000000000000000000001244473050600172645ustar00rootroot00000000000000libkkc-0.3.5/data/rules/kzik/keymap/default.json000066400000000000000000000002051244473050600216000ustar00rootroot00000000000000{ "include": [ "default/default" ], "define": { "keymap": { ":": "upper-;" } } } libkkc-0.3.5/data/rules/kzik/keymap/hankaku-katakana.json000066400000000000000000000002161244473050600233510ustar00rootroot00000000000000{ "include": [ "default" ], "define": { "keymap": { "\\": "set-input-mode-hiragana" } } } libkkc-0.3.5/data/rules/kzik/keymap/hiragana.json000066400000000000000000000002161244473050600217300ustar00rootroot00000000000000{ "include": [ "default" ], "define": { "keymap": { "\\": "set-input-mode-katakana" } } } libkkc-0.3.5/data/rules/kzik/keymap/katakana.json000066400000000000000000000002161244473050600217310ustar00rootroot00000000000000{ "include": [ "default" ], "define": { "keymap": { "\\": "set-input-mode-hiragana" } } } libkkc-0.3.5/data/rules/kzik/keymap/latin.json000066400000000000000000000000651244473050600212670ustar00rootroot00000000000000{ "include": [ "default/default" ] } libkkc-0.3.5/data/rules/kzik/keymap/wide-latin.json000066400000000000000000000000651244473050600222150ustar00rootroot00000000000000{ "include": [ "default/default" ] } libkkc-0.3.5/data/rules/kzik/metadata.json.in000066400000000000000000000002701244473050600210550ustar00rootroot00000000000000{ "name": _("KZIK"), "description": _("Extended romaji input method based on AZIK, developed by OHASHI Hideya "), "priority": 10 } libkkc-0.3.5/data/rules/kzik/rom-kana/000077500000000000000000000000001244473050600175035ustar00rootroot00000000000000libkkc-0.3.5/data/rules/kzik/rom-kana/default.json000066400000000000000000000443671244473050600220400ustar00rootroot00000000000000{ "include": [ "default/default" ], "define": { "rom-kana": { ":": ["b", "っ" ], ";": ["", "っ" ], "bd": ["", "べん" ], "bga": ["", "びゃ" ], "bgd": ["", "びぇん" ], "bge": ["", "びぇ" ], "bgh": ["", "びゅう" ], "bgj": ["", "びゅん" ], "bgl": ["", "びょん" ], "bgn": ["", "びゃん" ], "bgo": ["", "びょ" ], "bgp": ["", "びょう" ], "bgq": ["", "びゃい" ], "bgu": ["", "びゅ" ], "bgw": ["", "びぇい" ], "bgz": ["", "びゃん" ], "bh": ["", "ぶう" ], "bj": ["", "ぶん" ], "bk": ["", "びん" ], "bl": ["", "ぼん" ], "bn": ["", "ばん" ], "bp": ["", "ぼう" ], "bq": ["", "ばい" ], "bt": ["", "びと" ], "bw": ["", "べい" ], "byd": ["", "びぇん" ], "byh": ["", "びゅう" ], "byj": ["", "びゅん" ], "byl": ["", "びょん" ], "byn": ["", "びゃん" ], "byp": ["", "びょう" ], "byq": ["", "びゃい" ], "byw": ["", "びぇい" ], "byz": ["", "びゃん" ], "bz": ["", "ばん" ], "ca": ["", "ちゃ" ], "cd": ["", "ちぇん" ], "ce": ["", "ちぇ" ], "ch": ["", "ちゅう" ], "cj": ["", "ちゅん" ], "cl": ["", "ちょん" ], "cn": ["", "ちゃん" ], "co": ["", "ちょ" ], "cp": ["", "ちょう" ], "cq": ["", "ちゃい" ], "cu": ["", "ちゅ" ], "cw": ["", "ちぇい" ], "cz": ["", "ちゃん" ], "db": ["", "書" ], "dci": ["", "でぃ" ], "dcu": ["", "どぅ" ], "dd": ["", "でん" ], "df": ["", "で" ], "dg": ["", "大" ], "dh": ["", "づう" ], "dj": ["", "づん" ], "dk": ["", "ぢん" ], "dl": ["", "どん" ], "dm": ["", "でも" ], "dn": ["", "だん" ], "dp": ["", "どう" ], "dq": ["", "だい" ], "dr": ["", "対" ], "ds": ["", "です" ], "dt": ["", "だち" ], "dv": ["", "遅" ], "dw": ["", "でい" ], "dx": ["", "代" ], "dz": ["", "だん" ], "fb": ["", "付" ], "fc": ["", "押" ], "fd": ["", "ふぇん" ], "fg": ["", "以" ], "fh": ["", "ふう" ], "fj": ["", "ふん" ], "fk": ["", "ふぃん" ], "fl": ["", "ふぉん" ], "fn": ["", "ふぁん" ], "fp": ["", "ふぉー" ], "fq": ["", "ふぁい" ], "fr": ["", "件" ], "fs": ["", "会" ], "ft": ["", "仕" ], "fv": ["", "換" ], "fw": ["", "ふぇい" ], "fx": ["", "点" ], "fz": ["", "ふぁん" ], "gb": ["", "様" ], "gc": ["", "要" ], "gd": ["", "げん" ], "gf": ["", "試" ], "gga": ["", "ぎゃ" ], "ggd": ["", "ぎぇん" ], "gge": ["", "ぎぇ" ], "ggh": ["", "ぎゅう" ], "ggj": ["", "ぎゅん" ], "ggl": ["", "ぎょん" ], "ggn": ["", "ぎゃん" ], "ggo": ["", "ぎょ" ], "ggp": ["", "ぎょう" ], "ggq": ["", "ぎゃい" ], "ggu": ["", "ぎゅ" ], "ggw": ["", "ぎぇい" ], "ggz": ["", "ぎゃん" ], "gh": ["", "ぐう" ], "gj": ["", "ぐん" ], "gk": ["", "ぎん" ], "gl": ["", "ごん" ], "gn": ["", "がん" ], "gp": ["", "ごう" ], "gq": ["", "がい" ], "gr": ["", "がら" ], "gs": ["", "行" ], "gt": ["", "ごと" ], "gv": ["", "用" ], "gw": ["", "げい" ], "gx": ["", "欠" ], "gyd": ["", "ぎぇん" ], "gyh": ["", "ぎゅう" ], "gyj": ["", "ぎゅん" ], "gyl": ["", "ぎょん" ], "gyn": ["", "ぎゃん" ], "gyp": ["", "ぎょう" ], "gyq": ["", "ぎゃい" ], "gyw": ["", "ぎぇい" ], "gyz": ["", "ぎゃん" ], "gz": ["", "がん" ], "hb": ["", "買" ], "hc": ["", "移" ], "hd": ["", "へん" ], "hf": ["", "法" ], "hga": ["", "ひゃ" ], "hgd": ["", "ひぇん" ], "hge": ["", "ひぇ" ], "hgh": ["", "ひゅう" ], "hgj": ["", "ひゅん" ], "hgl": ["", "ひょん" ], "hgn": ["", "ひゃん" ], "hgo": ["", "ひょ" ], "hgp": ["", "ひょう" ], "hgq": ["", "ひゃい" ], "hgu": ["", "ひゅ" ], "hgw": ["", "ひぇい" ], "hgz": ["", "ひゃん" ], "hh": ["", "ふう" ], "hj": ["", "ふん" ], "hk": ["", "ひん" ], "hl": ["", "ほん" ], "hn": ["", "はん" ], "hp": ["", "ほう" ], "hq": ["", "はい" ], "hr": ["", "合" ], "hs": ["", "方" ], "ht": ["", "ひと" ], "hv": ["", "信" ], "hw": ["", "へい" ], "hx": ["", "機" ], "hyd": ["", "ひぇん" ], "hyh": ["", "ひゅう" ], "hyj": ["", "ひゅん" ], "hyl": ["", "ひょん" ], "hyn": ["", "ひゃん" ], "hyp": ["", "ひょう" ], "hyq": ["", "ひゃい" ], "hyw": ["", "ひぇい" ], "hyz": ["", "ひゃん" ], "hz": ["", "はん" ], "jb": ["", "自" ], "jc": ["", "身" ], "jd": ["", "じぇん" ], "jf": ["", "じゅ" ], "jg": ["", "聞" ], "jh": ["", "じゅう" ], "jj": ["", "じゅん" ], "jk": ["", "じん" ], "jl": ["", "じょん" ], "jn": ["", "じゃん" ], "jp": ["", "じょう" ], "jq": ["", "じゃい" ], "jr": ["", "重" ], "jt": ["", "使" ], "jv": ["", "地" ], "jw": ["", "じぇい" ], "jx": ["", "生" ], "jz": ["", "じゃん" ], "kb": ["", "効" ], "kc": ["", "開" ], "kd": ["", "けん" ], "kf": ["", "き" ], "kga": ["", "きゃ" ], "kgd": ["", "きぇん" ], "kge": ["", "きぇ" ], "kgh": ["", "きゅう" ], "kgj": ["", "きゅん" ], "kgl": ["", "きょん" ], "kgn": ["", "きゃん" ], "kgo": ["", "きょ" ], "kgp": ["", "きょう" ], "kgq": ["", "きゃい" ], "kgu": ["", "きゅ" ], "kgw": ["", "きぇい" ], "kgz": ["", "きゃん" ], "kh": ["", "くう" ], "kj": ["", "くん" ], "kk": ["", "きん" ], "kl": ["", "こん" ], "km": ["", "かも" ], "kn": ["", "かん" ], "kp": ["", "こう" ], "kq": ["", "かい" ], "kr": ["", "から" ], "kt": ["", "こと" ], "kv": ["", "気" ], "kw": ["", "けい" ], "kx": ["", "変" ], "kyd": ["", "きぇん" ], "kyh": ["", "きゅう" ], "kyj": ["", "きゅん" ], "kyl": ["", "きょん" ], "kyn": ["", "きゃん" ], "kyp": ["", "きょう" ], "kyq": ["", "きゃい" ], "kyw": ["", "きぇい" ], "kyz": ["", "きゃん" ], "kz": ["", "かん" ], "md": ["", "めん" ], "mf": ["", "む" ], "mga": ["", "みゃ" ], "mgd": ["", "みぇん" ], "mge": ["", "みぇ" ], "mgh": ["", "みゅう" ], "mgj": ["", "みゅん" ], "mgl": ["", "みょん" ], "mgn": ["", "みゃん" ], "mgo": ["", "みょ" ], "mgp": ["", "みょう" ], "mgq": ["", "みゃい" ], "mgu": ["", "みゅ" ], "mgw": ["", "みぇい" ], "mgz": ["", "みゃん" ], "mh": ["", "むう" ], "mj": ["", "むん" ], "mk": ["", "みん" ], "ml": ["", "もん" ], "mn": ["", "もの" ], "mp": ["", "もう" ], "mq": ["", "まい" ], "ms": ["", "ます" ], "mt": ["", "また" ], "mw": ["", "めい" ], "myd": ["", "みぇん" ], "myh": ["", "みゅう" ], "myj": ["", "みゅん" ], "myl": ["", "みょん" ], "myn": ["", "みゃん" ], "myp": ["", "みょう" ], "myq": ["", "みゃい" ], "myw": ["", "みぇい" ], "myz": ["", "みゃん" ], "mz": ["", "まん" ], "nb": ["", "ねば" ], "nd": ["", "ねん" ], "nf": ["", "ぬ" ], "nga": ["", "にゃ" ], "ngd": ["", "にぇん" ], "nge": ["", "にぇ" ], "ngh": ["", "にゅう" ], "ngj": ["", "にゅん" ], "ngl": ["", "にょん" ], "ngn": ["", "にゃん" ], "ngo": ["", "にょ" ], "ngp": ["", "にょう" ], "ngq": ["", "にゃい" ], "ngu": ["", "にゅ" ], "ngw": ["", "にぇい" ], "ngz": ["", "にゃん" ], "nh": ["", "ぬう" ], "nj": ["", "ぬん" ], "nk": ["", "にん" ], "nl": ["", "のん" ], "np": ["", "のう" ], "nq": ["", "ない" ], "nr": ["", "なる" ], "nt": ["", "にち" ], "nw": ["", "ねい" ], "nyd": ["", "にぇん" ], "nyh": ["", "にゅう" ], "nyj": ["", "にゅん" ], "nyl": ["", "にょん" ], "nyn": ["", "にゃん" ], "nyp": ["", "にょう" ], "nyq": ["", "にゃい" ], "nyw": ["", "にぇい" ], "nyz": ["", "にゃん" ], "nz": ["", "なん" ], "pd": ["", "ぺん" ], "pga": ["", "ぴゃ" ], "pgd": ["", "ぴぇん" ], "pge": ["", "ぴぇ" ], "pgh": ["", "ぴゅう" ], "pgj": ["", "ぴゅん" ], "pgl": ["", "ぴょん" ], "pgn": ["", "ぴゃん" ], "pgo": ["", "ぴょ" ], "pgp": ["", "ぴょう" ], "pgq": ["", "ぴゃい" ], "pgu": ["", "ぴゅ" ], "pgw": ["", "ぴぇい" ], "pgz": ["", "ぴゃん" ], "ph": ["", "ぷう" ], "pj": ["", "ぷん" ], "pk": ["", "ぴん" ], "pl": ["", "ぽん" ], "pn": ["", "ぱん" ], "pp": ["", "ぽう" ], "pq": ["", "ぱい" ], "pw": ["", "ぺい" ], "pyd": ["", "ぴぇん" ], "pyh": ["", "ぴゅう" ], "pyj": ["", "ぴゅん" ], "pyl": ["", "ぴょん" ], "pyn": ["", "ぴゃん" ], "pyp": ["", "ぴょう" ], "pyq": ["", "ぴゃい" ], "pyw": ["", "ぴぇい" ], "pyz": ["", "ぴゃん" ], "pz": ["", "ぱん" ], "rd": ["", "れん" ], "rga": ["", "りゃ" ], "rgd": ["", "りぇん" ], "rge": ["", "りぇ" ], "rgh": ["", "りゅう" ], "rgj": ["", "りゅん" ], "rgl": ["", "りょん" ], "rgn": ["", "りゃん" ], "rgo": ["", "りょ" ], "rgp": ["", "りょう" ], "rgq": ["", "りゃい" ], "rgu": ["", "りゅ" ], "rgw": ["", "りぇい" ], "rgz": ["", "りゃん" ], "rh": ["", "るう" ], "rj": ["", "るん" ], "rk": ["", "りん" ], "rl": ["", "ろん" ], "rn": ["", "らん" ], "rp": ["", "ろう" ], "rq": ["", "らい" ], "rr": ["", "られ" ], "rt": ["", "力" ], "rw": ["", "れい" ], "ryd": ["", "りぇん" ], "ryh": ["", "りゅう" ], "ryj": ["", "りゅん" ], "ryl": ["", "りょん" ], "ryn": ["", "りゃん" ], "ryp": ["", "りょう" ], "ryq": ["", "りゃい" ], "ryw": ["", "りぇい" ], "ryz": ["", "りゃん" ], "rz": ["", "らん" ], "sb": ["", "分" ], "sc": ["", "送" ], "sd": ["", "せん" ], "sf": ["", "さい" ], "sg": ["", "思" ], "sh": ["", "すう" ], "sj": ["", "すん" ], "sk": ["", "しん" ], "sl": ["", "そん" ], "sm": ["", "見" ], "sn": ["", "さん" ], "sp": ["", "そう" ], "sq": ["", "さい" ], "sr": ["", "する" ], "ss": ["", "せい" ], "st": ["", "した" ], "sv": ["", "空" ], "sw": ["", "せい" ], "sx": ["", "着" ], "syd": ["", "しぇん" ], "syh": ["", "しゅう" ], "syj": ["", "しゅん" ], "syl": ["", "しょん" ], "syn": ["", "しゃん" ], "syp": ["", "しょう" ], "syq": ["", "しゃい" ], "syw": ["", "しぇい" ], "syz": ["", "しゃん" ], "sz": ["", "さん" ], "tb": ["", "たび" ], "td": ["", "てん" ], "tf": ["", "強" ], "tgi": ["", "てぃ" ], "tgu": ["", "とぅ" ], "th": ["", "つう" ], "tj": ["", "つん" ], "tk": ["", "ちん" ], "tl": ["", "とん" ], "tm": ["", "ため" ], "tn": ["", "たん" ], "tp": ["", "とう" ], "tq": ["", "たい" ], "tr": ["", "たら" ], "tsa": ["", "つぁ" ], "tse": ["", "つぇ" ], "tsi": ["", "つぃ" ], "tso": ["", "つぉ" ], "tw": ["", "てい" ], "tyd": ["", "ちぇん" ], "tyh": ["", "ちゅう" ], "tyj": ["", "ちゅん" ], "tyl": ["", "ちょん" ], "tyn": ["", "ちゃん" ], "typ": ["", "ちょう" ], "tyq": ["", "ちゃい" ], "tyw": ["", "ちぇい" ], "tyz": ["", "ちゃん" ], "tz": ["", "たん" ], "vf": ["", "返" ], "vz": ["", "帰" ], "wd": ["", "うぇん" ], "wk": ["", "うぃん" ], "wl": ["", "うぉん" ], "wn": ["", "わん" ], "wp": ["", "うぉー" ], "wq": ["", "わい" ], "wr": ["", "われ" ], "wso": ["", "うぉ" ], "wt": ["", "わた" ], "wz": ["", "わん" ], "x,": ["", "," ], "x-": ["", "-" ], "x.": ["", "." ], "x:": ["", ":" ], "x;": ["", ";" ], "x[": ["", "[" ], "x]": ["", "]" ], "x_": ["", " " ], "xa": ["", "しゃ" ], "xd": ["", "しぇん" ], "xe": ["", "しぇ" ], "xh": ["", "しゅう" ], "xj": ["", "しゅん" ], "xl": ["", "しょん" ], "xn": ["", "しゃん" ], "xo": ["", "しょ" ], "xp": ["", "しょう" ], "xq": ["", "しゃい" ], "xu": ["", "しゅ" ], "xw": ["", "しぇい" ], "xxa": ["", "ぁ" ], "xxe": ["", "ぇ" ], "xxh": ["", "←" ], "xxi": ["", "ぃ" ], "xxj": ["", "↓" ], "xxk": ["", "↑" ], "xxl": ["", "→" ], "xxo": ["", "ぉ" ], "xxu": ["", "ぅ" ], "xxwa": ["", "ゎ" ], "xxwe": ["", "ゑ" ], "xxwi": ["", "ゐ" ], "xz": ["", "しゃん" ], "x~": ["", "~" ], "yf": ["", "ゆ" ], "yh": ["", "ゆう" ], "yj": ["", "ゆん" ], "yl": ["", "よん" ], "yn": ["", "やん" ], "yp": ["", "よう" ], "yq": ["", "やい" ], "yr": ["", "よる" ], "yw": ["", "いぇい" ], "yz": ["", "やん" ], "zc": ["", "ざ" ], "zd": ["", "ぜん" ], "zf": ["", "ぜ" ], "zga": ["", "じゃ" ], "zgd": ["", "じぇん" ], "zge": ["", "じぇ" ], "zgh": ["", "じゅう" ], "zgj": ["", "じゅん" ], "zgl": ["", "じょん" ], "zgn": ["", "じゃん" ], "zgo": ["", "じょ" ], "zgp": ["", "じょう" ], "zgq": ["", "じゃい" ], "zgu": ["", "じゅ" ], "zgw": ["", "じぇい" ], "zgz": ["", "じゃん" ], "zh": ["", "ずう" ], "zj": ["", "ずん" ], "zk": ["", "じん" ], "zl": ["", "ぞん" ], "zn": ["", "ざん" ], "zp": ["", "ぞう" ], "zq": ["", "ざい" ], "zr": ["", "ざる" ], "zv": ["", "ざい" ], "zw": ["", "ぜい" ], "zx": ["", "ぜい" ], "zyd": ["", "じぇん" ], "zyh": ["", "じゅう" ], "zyj": ["", "じゅん" ], "zyl": ["", "じょん" ], "zyn": ["", "じゃん" ], "zyp": ["", "じょう" ], "zyq": ["", "じゃい" ], "zyw": ["", "じぇい" ], "zyz": ["", "じゃん" ], "zz": ["", "ざん" ] } } } libkkc-0.3.5/data/rules/nicola/000077500000000000000000000000001244473050600162735ustar00rootroot00000000000000libkkc-0.3.5/data/rules/nicola/Makefile.am000066400000000000000000000011141244473050600203240ustar00rootroot00000000000000rulesdir = $(pkgdatadir)/rules/nicola files = \ keymap/default.json \ keymap/hankaku-katakana.json \ keymap/hiragana.json \ keymap/katakana.json \ keymap/latin.json \ keymap/wide-latin.json \ keymap/direct.json \ rom-kana/default.json \ $(NULL) metadata_in = \ metadata.json.in \ $(NULL) nobase_rules_DATA = \ $(files) \ $(metadata_in:.in=) \ $(NULL) EXTRA_DIST = \ $(files) \ $(metadata_in) \ $(NULL) CLEANFILES = \ metadata.json \ $(NULL) -include $(top_srcdir)/data/rules/rule.mk -include $(top_srcdir)/git.mk libkkc-0.3.5/data/rules/nicola/keymap/000077500000000000000000000000001244473050600175615ustar00rootroot00000000000000libkkc-0.3.5/data/rules/nicola/keymap/default.json000066400000000000000000000000651244473050600221010ustar00rootroot00000000000000{ "include": [ "default/default" ] } libkkc-0.3.5/data/rules/nicola/keymap/direct.json000066400000000000000000000000641244473050600217260ustar00rootroot00000000000000{ "include": [ "default/direct" ] } libkkc-0.3.5/data/rules/nicola/keymap/hankaku-katakana.json000066400000000000000000000000761244473050600236520ustar00rootroot00000000000000{ "include": [ "default/hankaku-katakana" ] } libkkc-0.3.5/data/rules/nicola/keymap/hiragana.json000066400000000000000000000000661244473050600222300ustar00rootroot00000000000000{ "include": [ "default/hiragana" ] } libkkc-0.3.5/data/rules/nicola/keymap/katakana.json000066400000000000000000000000661244473050600222310ustar00rootroot00000000000000{ "include": [ "default/katakana" ] } libkkc-0.3.5/data/rules/nicola/keymap/latin.json000066400000000000000000000000631244473050600215620ustar00rootroot00000000000000{ "include": [ "default/latin" ] } libkkc-0.3.5/data/rules/nicola/keymap/wide-latin.json000066400000000000000000000000701244473050600225060ustar00rootroot00000000000000{ "include": [ "default/wide-latin" ] } libkkc-0.3.5/data/rules/nicola/metadata.json.in000066400000000000000000000003701244473050600213530ustar00rootroot00000000000000{ "name": _("NICOLA"), "description": _("Input method using thumb shift keyboard developed by the NICOLA (NIhongo-nyuuryoku COnsortium LAyout) project "), "filter": "nicola", "priority": 10 } libkkc-0.3.5/data/rules/nicola/rom-kana/000077500000000000000000000000001244473050600200005ustar00rootroot00000000000000libkkc-0.3.5/data/rules/nicola/rom-kana/default.json000066400000000000000000000102011244473050600223110ustar00rootroot00000000000000{ "define": { "rom-kana": { "q": [ "", "。", "。" ], "Lq": [ "", "ぁ", "ァ" ], "w": [ "", "か", "カ" ], "Lw": [ "", "え", "エ" ], "Rw": [ "", "が", "ガ" ], "e": [ "", "た", "タ" ], "Le": [ "", "り", "リ" ], "Re": [ "", "だ", "ダ" ], "r": [ "", "こ", "コ" ], "Lr": [ "", "ゃ", "ャ" ], "Rr": [ "", "ご", "ゴ" ], "t": [ "", "さ", "サ" ], "Lt": [ "", "れ", "レ" ], "Rt": [ "", "ざ", "ザ" ], "y": [ "", "ら", "ラ" ], "Ly": [ "", "ぱ", "パ" ], "Ry": [ "", "よ", "ヨ" ], "u": [ "", "ち", "チ" ], "Lu": [ "", "ぢ", "ヂ" ], "Ru": [ "", "に", "ニ" ], "i": [ "", "く", "ク" ], "Li": [ "", "ぐ", "グ" ], "Ri": [ "", "る", "ル" ], "o": [ "", "つ", "ツ" ], "Lo": [ "", "づ", "ヅ" ], "Ro": [ "", "ま", "マ" ], "p": [ "", ",", "," ], "Lp": [ "", "ぴ", "ピ" ], "Rp": [ "", "ぇ", "ェ" ], "@": [ "", "、", "、" ], "[": [ "", "゛", "゛" ], "R[": [ "", "゜", "゜" ], "a": [ "", "う", "ウ" ], "La": [ "", "を", "ヲ" ], "s": [ "", "し", "シ" ], "Ls": [ "", "あ", "ア" ], "Rs": [ "", "じ", "ジ" ], "d": [ "", "て", "テ" ], "Ld": [ "", "な", "ナ" ], "Rd": [ "", "で", "デ" ], "f": [ "", "け", "ケ" ], "Lf": [ "", "ゅ", "ュ" ], "Rf": [ "", "げ", "ゲ" ], "g": [ "", "せ", "セ" ], "Lg": [ "", "も", "モ" ], "Rg": [ "", "ぜ", "ゼ" ], "h": [ "", "は", "ハ" ], "Lh": [ "", "ば", "バ" ], "Rh": [ "", "み", "ミ" ], "j": [ "", "と", "ト" ], "Lj": [ "", "ど", "ド" ], "Rj": [ "", "お", "オ" ], "k": [ "", "き", "キ" ], "Lk": [ "", "ぎ", "ギ" ], "Rk": [ "", "の", "ノ" ], "l": [ "", "い", "イ" ], "Ll": [ "", "ぽ", "ポ" ], "Rl": [ "", "ょ", "ョ" ], ";": [ "", "ん", "ン" ], "R;": [ "", "っ", "ッ" ], "z": [ "", ".", "." ], "Lz": [ "", "ぅ", "ゥ" ], "x": [ "", "ひ", "ヒ" ], "Lx": [ "", "ー", "ー" ], "Rx": [ "", "び", "ビ" ], "c": [ "", "す", "ス" ], "Lc": [ "", "ろ", "ロ" ], "Rc": [ "", "ず", "ズ" ], "v": [ "", "ふ", "フ" ], "Lv": [ "", "や", "ヤ" ], "Rv": [ "", "ぶ", "ブ" ], "b": [ "", "へ", "ヘ" ], "Lb": [ "", "ぃ", "ィ" ], "Rb": [ "", "べ", "ベ" ], "n": [ "", "め", "メ" ], "Ln": [ "", "ぷ", "プ" ], "Rn": [ "", "ぬ", "ヌ" ], "m": [ "", "そ", "ソ" ], "Lm": [ "", "ぞ", "ゾ" ], "Rm": [ "", "ゆ", "ユ" ], ",": [ "", "ね", "ネ" ], "L,": [ "", "ぺ", "ペ" ], "R,": [ "", "む", "ム" ], ".": [ "", "ほ", "ホ" ], "L.": [ "", "ぼ", "ボ" ], "R.": [ "", "わ", "ワ" ], "/": [ "", "・", "・" ], "R/": [ "", "ぉ", "ォ" ], "1": [ "", "1", "1" ], "L1": [ "", "?", "?" ], "2": [ "", "2", "2" ], "L2": [ "", "/", "/" ], "4": [ "", "4", "4" ], "L4": [ "", "「", "「" ], "5": [ "", "5", "5" ], "L5": [ "", "」", "」" ], "6": [ "", "6", "6" ], "R6": [ "", "[", "[" ], "7": [ "", "7", "7" ], "R7": [ "", "]", "]" ], "8": [ "", "8", "8" ], "R8": [ "", "(", "(" ], "9": [ "", "9", "9" ], "R9": [ "", ")", ")" ], "\\": [ "", "¥", "¥" ] } } } libkkc-0.3.5/data/rules/rule.mk000066400000000000000000000003521244473050600163260ustar00rootroot00000000000000.SUFFIXES: .json .json.in edit = sed -e 's!\(^ *"[^"]*": *\)_(\("[^"]*"\))!\1\2!g' .json.in.json: $(AM_V_GEN) rm -f $@ $@.tmp; \ srcdir=''; \ test -f ./$< || srcdir=$(srcdir)/; \ $(edit) $${srcdir}$< >$@.tmp; \ mv $@.tmp $@ libkkc-0.3.5/data/rules/tcode/000077500000000000000000000000001244473050600161245ustar00rootroot00000000000000libkkc-0.3.5/data/rules/tcode/Makefile.am000066400000000000000000000010321244473050600201540ustar00rootroot00000000000000rulesdir = $(pkgdatadir)/rules/tcode files = \ keymap/hankaku-katakana.json \ keymap/hiragana.json \ keymap/katakana.json \ keymap/latin.json \ keymap/wide-latin.json \ rom-kana/default.json \ $(NULL) metadata_in = \ metadata.json.in \ $(NULL) nobase_rules_DATA = \ $(files) \ $(metadata_in:.in=) \ $(NULL) EXTRA_DIST = \ $(files) \ $(metadata_in) \ $(NULL) CLEANFILES = \ metadata.json \ $(NULL) -include $(top_srcdir)/data/rules/rule.mk -include $(top_srcdir)/git.mk libkkc-0.3.5/data/rules/tcode/keymap/000077500000000000000000000000001244473050600174125ustar00rootroot00000000000000libkkc-0.3.5/data/rules/tcode/keymap/hankaku-katakana.json000066400000000000000000000000651244473050600235010ustar00rootroot00000000000000{ "include": [ "default/default" ] } libkkc-0.3.5/data/rules/tcode/keymap/hiragana.json000066400000000000000000000000651244473050600220600ustar00rootroot00000000000000{ "include": [ "default/default" ] } libkkc-0.3.5/data/rules/tcode/keymap/katakana.json000066400000000000000000000000651244473050600220610ustar00rootroot00000000000000{ "include": [ "default/default" ] } libkkc-0.3.5/data/rules/tcode/keymap/latin.json000066400000000000000000000000651244473050600214150ustar00rootroot00000000000000{ "include": [ "default/default" ] } libkkc-0.3.5/data/rules/tcode/keymap/wide-latin.json000066400000000000000000000000651244473050600223430ustar00rootroot00000000000000{ "include": [ "default/default" ] } libkkc-0.3.5/data/rules/tcode/metadata.json.in000066400000000000000000000002411244473050600212010ustar00rootroot00000000000000{ "name": _("T-Code"), "description": _("Japanese direct input method developed by the T-Code project "), "priority": 10 } libkkc-0.3.5/data/rules/tcode/rom-kana/000077500000000000000000000000001244473050600176315ustar00rootroot00000000000000libkkc-0.3.5/data/rules/tcode/rom-kana/default.json000066400000000000000000001272451244473050600221630ustar00rootroot00000000000000{ "define": { "rom-kana": { "q1": [ "", "ヮ" ], "w1": [ "", "ヰ" ], "e1": [ "", "ヱ" ], "r1": [ "", "ヵ" ], "t1": [ "", "ヶ" ], "y1": [ "", "請" ], "u1": [ "", "境" ], "i1": [ "", "系" ], "o1": [ "", "探" ], "p1": [ "", "象" ], "a1": [ "", "ゎ" ], "s1": [ "", "ゐ" ], "d1": [ "", "ゑ" ], "h1": [ "", "盛" ], "j1": [ "", "革" ], "k1": [ "", "突" ], "l1": [ "", "温" ], ";1": [ "", "捕" ], "n1": [ "", "依" ], "m1": [ "", "繊" ], ",1": [ "", "借" ], ".1": [ "", "須" ], "/1": [ "", "訳" ], "q2": [ "", "丑" ], "w2": [ "", "臼" ], "e2": [ "", "宴" ], "r2": [ "", "縁" ], "t2": [ "", "曳" ], "y2": [ "", "尚" ], "u2": [ "", "賀" ], "i2": [ "", "岸" ], "o2": [ "", "責" ], "p2": [ "", "漁" ], "a2": [ "", "於" ], "s2": [ "", "汚" ], "d2": [ "", "乙" ], "f2": [ "", "穏" ], "h2": [ "", "益" ], "j2": [ "", "援" ], "k2": [ "", "周" ], "l2": [ "", "域" ], ";2": [ "", "荒" ], "n2": [ "", "織" ], "m2": [ "", "父" ], ",2": [ "", "枚" ], ".2": [ "", "乱" ], "/2": [ "", "香" ], "q3": [ "", "鬼" ], "w3": [ "", "虚" ], "e3": [ "", "狭" ], "r3": [ "", "脅" ], "t3": [ "", "驚" ], "y3": [ "", "舎" ], "u3": [ "", "喜" ], "i3": [ "", "幹" ], "o3": [ "", "丘" ], "p3": [ "", "糖" ], "a3": [ "", "奇" ], "s3": [ "", "既" ], "d3": [ "", "菊" ], "f3": [ "", "却" ], "g3": [ "", "享" ], "h3": [ "", "康" ], "j3": [ "", "徒" ], "k3": [ "", "景" ], "l3": [ "", "処" ], ";3": [ "", "ぜ" ], "n3": [ "", "譲" ], "m3": [ "", "ヘ" ], ",3": [ "", "模" ], ".3": [ "", "降" ], "/3": [ "", "走" ], "q4": [ "", "孤" ], "w4": [ "", "誇" ], "e4": [ "", "黄" ], "r4": [ "", "后" ], "t4": [ "", "耕" ], "y4": [ "", "布" ], "u4": [ "", "苦" ], "i4": [ "", "圧" ], "o4": [ "", "恵" ], "p4": [ "", "固" ], "a4": [ "", "巧" ], "s4": [ "", "克" ], "d4": [ "", "懇" ], "f4": [ "", "困" ], "g4": [ "", "昏" ], "h4": [ "", "邦" ], "j4": [ "", "舞" ], "k4": [ "", "雑" ], "l4": [ "", "漢" ], ";4": [ "", "緊" ], "n4": [ "", "激" ], "m4": [ "", "干" ], ",4": [ "", "彦" ], ".4": [ "", "均" ], "/4": [ "", "又" ], "q5": [ "", "奉" ], "w5": [ "", "某" ], "e5": [ "", "貌" ], "r5": [ "", "卜" ], "y5": [ "", "姿" ], "u5": [ "", "絶" ], "i5": [ "", "密" ], "o5": [ "", "秘" ], "p5": [ "", "押" ], "h5": [ "", "衆" ], "j5": [ "", "節" ], "k5": [ "", "杉" ], "l5": [ "", "肉" ], ";5": [ "", "除" ], "n5": [ "", "測" ], "m5": [ "", "血" ], ",5": [ "", "散" ], ".5": [ "", "笑" ], "/5": [ "", "弁" ], "q6": [ "", "湖" ], "w6": [ "", "礼" ], "e6": [ "", "著" ], "r6": [ "", "移" ], "t6": [ "", "郷" ], "a6": [ "", "償" ], "s6": [ "", "欧" ], "d6": [ "", "努" ], "f6": [ "", "底" ], "g6": [ "", "亜" ], "z6": [ "", "禁" ], "x6": [ "", "硝" ], "c6": [ "", "樹" ], "v6": [ "", "句" ], "b6": [ "", "礎" ], "q7": [ "", "端" ], "w7": [ "", "飾" ], "e7": [ "", "郵" ], "r7": [ "", "塩" ], "t7": [ "", "群" ], "u7": [ "", "星" ], "i7": [ "", "析" ], "o7": [ "", "遷" ], "p7": [ "", "宣" ], "a7": [ "", "紅" ], "s7": [ "", "傷" ], "d7": [ "", "豪" ], "f7": [ "", "維" ], "g7": [ "", "脱" ], "h7": [ "", "鼠" ], "j7": [ "", "曹" ], "k7": [ "", "奏" ], "l7": [ "", "尊" ], "z7": [ "", "絹" ], "x7": [ "", "被" ], "c7": [ "", "源" ], "v7": [ "", "願" ], "b7": [ "", "臨" ], "q8": [ "", "刷" ], "w8": [ "", "寿" ], "e8": [ "", "順" ], "r8": [ "", "危" ], "t8": [ "", "砂" ], "y8": [ "", "庶" ], "u8": [ "", "粧" ], "i8": [ "", "丈" ], "o8": [ "", "称" ], "p8": [ "", "蒸" ], "a8": [ "", "舗" ], "s8": [ "", "充" ], "d8": [ "", "喫" ], "f8": [ "", "腕" ], "g8": [ "", "暴" ], "z8": [ "", "批" ], "x8": [ "", "慶" ], "c8": [ "", "渉" ], "v8": [ "", "竜" ], "b8": [ "", "併" ], "q9": [ "", "震" ], "w9": [ "", "扱" ], "e9": [ "", "片" ], "r9": [ "", "札" ], "t9": [ "", "乞" ], "u9": [ "", "乃" ], "i9": [ "", "如" ], "o9": [ "", "尼" ], "a9": [ "", "輪" ], "s9": [ "", "倒" ], "d9": [ "", "操" ], "f9": [ "", "柄" ], "g9": [ "", "魚" ], "z9": [ "", "就" ], "x9": [ "", "駐" ], "c9": [ "", "揮" ], "v9": [ "", "丹" ], "b9": [ "", "鮮" ], "q0": [ "", "弘" ], "w0": [ "", "痛" ], "e0": [ "", "票" ], "r0": [ "", "訴" ], "t0": [ "", "遺" ], "y0": [ "", "欄" ], "u0": [ "", "龍" ], "i0": [ "", "略" ], "o0": [ "", "慮" ], "p0": [ "", "累" ], "a0": [ "", "則" ], "s0": [ "", "存" ], "d0": [ "", "倍" ], "f0": [ "", "牛" ], "g0": [ "", "釈" ], "z0": [ "", "綱" ], "x0": [ "", "潟" ], "c0": [ "", "創" ], "v0": [ "", "背" ], "b0": [ "", "皮" ], "1q": [ "", "ヲ" ], "2q": [ "", "哀" ], "3q": [ "", "暇" ], "4q": [ "", "啓" ], "5q": [ "", "把" ], "6q": [ "", "酸" ], "7q": [ "", "昼" ], "8q": [ "", "炭" ], "9q": [ "", "稲" ], "0q": [ "", "湯" ], "qq": [ "", "果" ], "wq": [ "", "告" ], "eq": [ "", "策" ], "rq": [ "", "首" ], "tq": [ "", "農" ], "yq": [ "", "歩" ], "uq": [ "", "回" ], "iq": [ "", "務" ], "oq": [ "", "島" ], "pq": [ "", "開" ], "aq": [ "", "報" ], "sq": [ "", "紙" ], "dq": [ "", "館" ], "fq": [ "", "夜" ], "gq": [ "", "位" ], "hq": [ "", "給" ], "jq": [ "", "員" ], "kq": [ "", "ど" ], "lq": [ "", "代" ], ";q": [ "", "レ" ], "zq": [ "", "欠" ], "xq": [ "", "夏" ], "cq": [ "", "彼" ], "vq": [ "", "妻" ], "bq": [ "", "善" ], "nq": [ "", "相" ], "mq": [ "", "家" ], ",q": [ "", "的" ], ".q": [ "", "対" ], "/q": [ "", "歴" ], "1w": [ "", "ゥ" ], "2w": [ "", "逢" ], "3w": [ "", "牙" ], "4w": [ "", "掲" ], "5w": [ "", "伐" ], "6w": [ "", "貿" ], "7w": [ "", "捜" ], "8w": [ "", "異" ], "9w": [ "", "隣" ], "0w": [ "", "旧" ], "qw": [ "", "概" ], "ww": [ "", "買" ], "ew": [ "", "詳" ], "rw": [ "", "由" ], "tw": [ "", "死" ], "yw": [ "", "キ" ], "uw": [ "", "せ" ], "iw": [ "", "区" ], "ow": [ "", "百" ], "pw": [ "", "木" ], "aw": [ "", "音" ], "sw": [ "", "王" ], "dw": [ "", "放" ], "fw": [ "", "々" ], "gw": [ "", "応" ], "hw": [ "", "分" ], "jw": [ "", "よ" ], "kw": [ "", "ル" ], "lw": [ "", "千" ], ";w": [ "", "ア" ], "zw": [ "", "財" ], "xw": [ "", "針" ], "cw": [ "", "裏" ], "vw": [ "", "居" ], "bw": [ "", "差" ], "nw": [ "", "付" ], "mw": [ "", "プ" ], ",w": [ "", "ば" ], ".w": [ "", "ュ" ], "/w": [ "", "作" ], "1e": [ "", "ヴ" ], "2e": [ "", "宛" ], "3e": [ "", "壊" ], "4e": [ "", "携" ], "5e": [ "", "避" ], "6e": [ "", "攻" ], "7e": [ "", "焼" ], "8e": [ "", "闘" ], "9e": [ "", "奈" ], "0e": [ "", "夕" ], "qe": [ "", "武" ], "we": [ "", "残" ], "ee": [ "", "両" ], "re": [ "", "在" ], "te": [ "", "!" ], "ye": [ "", "や" ], "ue": [ "", "出" ], "ie": [ "", "タ" ], "oe": [ "", "手" ], "pe": [ "", "保" ], "ae": [ "", "案" ], "se": [ "", "曲" ], "de": [ "", "情" ], "fe": [ "", "引" ], "ge": [ "", "職" ], "he": [ "", "7" ], "je": [ "", "か" ], "ke": [ "", "(" ], "le": [ "", "ト" ], ";e": [ "", "れ" ], "ze": [ "", "従" ], "xe": [ "", "骨" ], "ce": [ "", "厚" ], "ve": [ "", "顔" ], "be": [ "", "量" ], "ne": [ "", "内" ], "me": [ "", "工" ], ",e": [ "", "八" ], ".e": [ "", "テ" ], "/e": [ "", "見" ], "1r": [ "", "ヂ" ], "2r": [ "", "囲" ], "3r": [ "", "較" ], "4r": [ "", "劇" ], "5r": [ "", "卑" ], "6r": [ "", "盤" ], "7r": [ "", "帯" ], "8r": [ "", "易" ], "9r": [ "", "速" ], "0r": [ "", "拡" ], "qr": [ "", "風" ], "wr": [ "", "階" ], "er": [ "", "能" ], "rr": [ "", "論" ], "tr": [ "", "増" ], "yr": [ "", "コ" ], "ur": [ "", "山" ], "ir": [ "", "者" ], "or": [ "", "発" ], "pr": [ "", "立" ], "ar": [ "", "横" ], "sr": [ "", "興" ], "dr": [ "", "刺" ], "fr": [ "", "側" ], "gr": [ "", "覚" ], "hr": [ "", "き" ], "jr": [ "", "っ" ], "kr": [ "", "日" ], "lr": [ "", "国" ], ";r": [ "", "二" ], "zr": [ "", "適" ], "xr": [ "", "類" ], "cr": [ "", "御" ], "vr": [ "", "宇" ], "br": [ "", "推" ], "nr": [ "", "九" ], "mr": [ "", "名" ], ",r": [ "", "川" ], ".r": [ "", "機" ], "/r": [ "", "チ" ], "1t": [ "", "ヅ" ], "2t": [ "", "庵" ], "3t": [ "", "寒" ], "4t": [ "", "賢" ], "5t": [ "", "藩" ], "6t": [ "", "汽" ], "7t": [ "", "換" ], "8t": [ "", "延" ], "9t": [ "", "雪" ], "0t": [ "", "互" ], "qt": [ "", "細" ], "wt": [ "", "古" ], "et": [ "", "利" ], "rt": [ "", "ペ" ], "tt": [ "", "ゃ" ], "yt": [ "", "ナ" ], "ut": [ "", "金" ], "it": [ "", "マ" ], "ot": [ "", "和" ], "pt": [ "", "女" ], "at": [ "", "崎" ], "st": [ "", "白" ], "dt": [ "", "ぐ" ], "ft": [ "", "官" ], "gt": [ "", "球" ], "ht": [ "", "上" ], "jt": [ "", "く" ], "kt": [ "", "8" ], "lt": [ "", "え" ], ";t": [ "", "年" ], "zt": [ "", "母" ], "xt": [ "", "奥" ], "ct": [ "", "因" ], "vt": [ "", "酒" ], "bt": [ "", "伸" ], "nt": [ "", "サ" ], "mt": [ "", "建" ], ",t": [ "", "パ" ], ".t": [ "", "第" ], "/t": [ "", "入" ], "1y": [ "", "簡" ], "2y": [ "", "徴" ], "3y": [ "", "触" ], "4y": [ "", "宗" ], "5y": [ "", "植" ], "7y": [ "", "索" ], "8y": [ "", "射" ], "9y": [ "", "濁" ], "0y": [ "", "慢" ], "qy": [ "", "害" ], "wy": [ "", "賃" ], "ey": [ "", "整" ], "ry": [ "", "軽" ], "ty": [ "", "評" ], "yy": [ "", "佐" ], "uy": [ "", "法" ], "iy": [ "", "数" ], "oy": [ "", "郎" ], "py": [ "", "談" ], "ay": [ "", "服" ], "sy": [ "", "声" ], "dy": [ "", "任" ], "fy": [ "", "検" ], "gy": [ "", "豊" ], "hy": [ "", "美" ], "jy": [ "", "題" ], "ky": [ "", "井" ], "ly": [ "", "洋" ], ";y": [ "", "実" ], "zy": [ "", "爆" ], "xy": [ "", "仲" ], "cy": [ "", "茶" ], "vy": [ "", "率" ], "by": [ "", "比" ], "ny": [ "", "昔" ], "my": [ "", "短" ], ",y": [ "", "岩" ], ".y": [ "", "巨" ], "/y": [ "", "敗" ], "1u": [ "", "承" ], "2u": [ "", "章" ], "3u": [ "", "候" ], "4u": [ "", "途" ], "5u": [ "", "複" ], "7u": [ "", "冊" ], "8u": [ "", "需" ], "9u": [ "", "詑" ], "0u": [ "", "迷" ], "qu": [ "", "撃" ], "wu": [ "", "折" ], "eu": [ "", "追" ], "ru": [ "", "隊" ], "tu": [ "", "角" ], "yu": [ "", "接" ], "uu": [ "", "備" ], "iu": [ "", "最" ], "ou": [ "", "急" ], "pu": [ "", "験" ], "au": [ "", "変" ], "su": [ "", "審" ], "du": [ "", "改" ], "fu": [ "", "昇" ], "gu": [ "", "芸" ], "hu": [ "", "宿" ], "ju": [ "", "制" ], "ku": [ "", "集" ], "lu": [ "", "安" ], ";u": [ "", "画" ], "zu": [ "", "陽" ], "xu": [ "", "構" ], "cu": [ "", "旅" ], "vu": [ "", "施" ], "bu": [ "", "曜" ], "nu": [ "", "遠" ], "mu": [ "", "ォ" ], ",u": [ "", "将" ], ".u": [ "", "ぞ" ], "/u": [ "", "塚" ], "1i": [ "", "快" ], "2i": [ "", "否" ], "3i": [ "", "歯" ], "4i": [ "", "筆" ], "5i": [ "", "里" ], "7i": [ "", "皿" ], "8i": [ "", "輯" ], "9i": [ "", "蓄" ], "0i": [ "", "戻" ], "qi": [ "", "浴" ], "wi": [ "", "秀" ], "ei": [ "", "糸" ], "ri": [ "", "春" ], "ti": [ "", "幸" ], "yi": [ "", "記" ], "ui": [ "", "朝" ], "ii": [ "", "知" ], "oi": [ "", "ワ" ], "pi": [ "", "送" ], "ai": [ "", "限" ], "si": [ "", "研" ], "di": [ "", "労" ], "fi": [ "", "統" ], "gi": [ "", "役" ], "hi": [ "", "セ" ], "ji": [ "", "運" ], "ki": [ "", "ツ" ], "li": [ "", "特" ], ";i": [ "", "谷" ], "zi": [ "", "ァ" ], "xi": [ "", "導" ], "ci": [ "", "認" ], "vi": [ "", "健" ], "bi": [ "", "尾" ], "ni": [ "", "序" ], "mi": [ "", "振" ], ",i": [ "", "練" ], ".i": [ "", "念" ], "/i": [ "", "働" ], "1o": [ "", "包" ], "2o": [ "", "納" ], "3o": [ "", "頼" ], "4o": [ "", "逃" ], "5o": [ "", "寝" ], "7o": [ "", "賛" ], "8o": [ "", "瞬" ], "9o": [ "", "貯" ], "0o": [ "", "羊" ], "qo": [ "", "積" ], "wo": [ "", "程" ], "eo": [ "", "断" ], "ro": [ "", "低" ], "to": [ "", "減" ], "yo": [ "", "モ" ], "uo": [ "", "資" ], "io": [ "", "士" ], "oo": [ "", "費" ], "po": [ "", "ィ" ], "ao": [ "", "逆" ], "so": [ "", "企" ], "do": [ "", "精" ], "fo": [ "", "ざ" ], "go": [ "", "印" ], "ho": [ "", "神" ], "jo": [ "", "び" ], "ko": [ "", "打" ], "lo": [ "", "勤" ], ";o": [ "", "ャ" ], "zo": [ "", "殺" ], "xo": [ "", "負" ], "co": [ "", "何" ], "vo": [ "", "履" ], "bo": [ "", "般" ], "no": [ "", "耳" ], "mo": [ "", "授" ], ",o": [ "", "版" ], ".o": [ "", "効" ], "/o": [ "", "視" ], "1p": [ "", "唱" ], "2p": [ "", "暮" ], "3p": [ "", "憲" ], "4p": [ "", "勉" ], "5p": [ "", "罪" ], "8p": [ "", "盾" ], "9p": [ "", "虫" ], "qp": [ "", "故" ], "wp": [ "", "鉱" ], "ep": [ "", "提" ], "rp": [ "", "児" ], "tp": [ "", "敷" ], "yp": [ "", "無" ], "up": [ "", "石" ], "ip": [ "", "屋" ], "op": [ "", "解" ], "pp": [ "", "募" ], "ap": [ "", "令" ], "sp": [ "", "違" ], "dp": [ "", "装" ], "fp": [ "", "然" ], "gp": [ "", "確" ], "hp": [ "", "優" ], "jp": [ "", "公" ], "kp": [ "", "品" ], "lp": [ "", "語" ], ";p": [ "", "演" ], "zp": [ "", "券" ], "xp": [ "", "悪" ], "cp": [ "", "秋" ], "vp": [ "", "非" ], "bp": [ "", "便" ], "np": [ "", "示" ], "mp": [ "", "即" ], ",p": [ "", "難" ], ".p": [ "", "普" ], "/p": [ "", "辺" ], "1a": [ "", "ぱ" ], "2a": [ "", "慰" ], "3a": [ "", "我" ], "4a": [ "", "兼" ], "5a": [ "", "菱" ], "6a": [ "", "桜" ], "7a": [ "", "瀬" ], "8a": [ "", "鳥" ], "9a": [ "", "催" ], "0a": [ "", "障" ], "qa": [ "", "収" ], "wa": [ "", "際" ], "ea": [ "", "太" ], "ra": [ "", "園" ], "ta": [ "", "船" ], "ya": [ "", "中" ], "ua": [ "", "ス" ], "ia": [ "", "も" ], "oa": [ "", "お" ], "pa": [ "", "定" ], "aa": [ "", "種" ], "sa": [ "", "岡" ], "da": [ "", "結" ], "fa": [ "", "進" ], "ga": [ "", "真" ], "ha": [ "", "3" ], "ja": [ "", "と" ], "ka": [ "", "〇" ], "la": [ "", "て" ], ";a": [ "", "る" ], "za": [ "", "ヒ" ], "xa": [ "", "江" ], "ca": [ "", "別" ], "va": [ "", "考" ], "ba": [ "", "権" ], "na": [ "", "ッ" ], "ma": [ "", "人" ], ",a": [ "", "三" ], ".a": [ "", "京" ], "/a": [ "", "ち" ], "1s": [ "", "ぴ" ], "2s": [ "", "為" ], "3s": [ "", "掛" ], "4s": [ "", "嫌" ], "5s": [ "", "紐" ], "6s": [ "", "典" ], "7s": [ "", "博" ], "8s": [ "", "筋" ], "9s": [ "", "忠" ], "0s": [ "", "乳" ], "qs": [ "", "若" ], "ws": [ "", "雄" ], "es": [ "", "査" ], "rs": [ "", "ふ" ], "ts": [ "", "賞" ], "ys": [ "", "わ" ], "us": [ "", "ラ" ], "is": [ "", "東" ], "os": [ "", "生" ], "ps": [ "", "ろ" ], "as": [ "", "宅" ], "ss": [ "", "熟" ], "ds": [ "", "待" ], "fs": [ "", "取" ], "gs": [ "", "科" ], "hs": [ "", "ー" ], "js": [ "", "し" ], "ks": [ "", "た" ], "ls": [ "", "一" ], ";s": [ "", "が" ], "zs": [ "", "及" ], "xs": [ "", "久" ], "cs": [ "", "蔵" ], "vs": [ "", "早" ], "bs": [ "", "造" ], "ns": [ "", "ロ" ], "ms": [ "", "ク" ], ",s": [ "", "万" ], ".s": [ "", "方" ], "/s": [ "", "フ" ], "1d": [ "", "ぷ" ], "2d": [ "", "陰" ], "3d": [ "", "敢" ], "4d": [ "", "顕" ], "5d": [ "", "描" ], "6d": [ "", "採" ], "7d": [ "", "謡" ], "8d": [ "", "希" ], "9d": [ "", "仏" ], "0d": [ "", "察" ], "qd": [ "", "指" ], "wd": [ "", "氏" ], "ed": [ "", "丸" ], "rd": [ "", "続" ], "td": [ "", "ェ" ], "yd": [ "", "う" ], "ud": [ "", "4" ], "id": [ "", ")" ], "od": [ "", "十" ], "pd": [ "", "リ" ], "ad": [ "", "料" ], "sd": [ "", "土" ], "dd": [ "", "活" ], "fd": [ "", "ね" ], "gd": [ "", "参" ], "hd": [ "", "い" ], "jd": [ "", "、" ], "kd": [ "", "の" ], "ld": [ "", "5" ], ";d": [ "", "1" ], "zd": [ "", "投" ], "xd": [ "", "義" ], "cd": [ "", "算" ], "vd": [ "", "半" ], "bd": [ "", "県" ], "nd": [ "", "ん" ], "md": [ "", "ま" ], ",d": [ "", "ン" ], ".d": [ "", "つ" ], "/d": [ "", "四" ], "1f": [ "", "ぺ" ], "2f": [ "", "隠" ], "3f": [ "", "甘" ], "4f": [ "", "牽" ], "5f": [ "", "憤" ], "6f": [ "", "君" ], "7f": [ "", "純" ], "8f": [ "", "副" ], "9f": [ "", "盟" ], "0f": [ "", "標" ], "qf": [ "", "ぎ" ], "wf": [ "", "格" ], "ef": [ "", "次" ], "rf": [ "", "習" ], "tf": [ "", "火" ], "yf": [ "", "あ" ], "uf": [ "", "こ" ], "if": [ "", "6" ], "of": [ "", "学" ], "pf": [ "", "月" ], "af": [ "", "受" ], "sf": [ "", "予" ], "df": [ "", "切" ], "ff": [ "", "育" ], "gf": [ "", "池" ], "hf": [ "", "。" ], "jf": [ "", "◆" ], "kf": [ "", "0" ], "lf": [ "", "・" ], ";f": [ "", "2" ], "zf": [ "", "込" ], "xf": [ "", "沢" ], "cf": [ "", "軍" ], "vf": [ "", "青" ], "bf": [ "", "清" ], "nf": [ "", "け" ], "mf": [ "", "イ" ], ",f": [ "", "す" ], ".f": [ "", "電" ], "/f": [ "", "地" ], "1g": [ "", "ぽ" ], "2g": [ "", "胃" ], "3g": [ "", "患" ], "4g": [ "", "厳" ], "5g": [ "", "弊" ], "6g": [ "", "犯" ], "7g": [ "", "余" ], "8g": [ "", "堀" ], "9g": [ "", "肩" ], "0g": [ "", "療" ], "qg": [ "", "思" ], "wg": [ "", "術" ], "eg": [ "", "広" ], "rg": [ "", "門" ], "tg": [ "", "聞" ], "yg": [ "", "本" ], "ug": [ "", "さ" ], "ig": [ "", "ら" ], "og": [ "", "高" ], "pg": [ "", "シ" ], "ag": [ "", "英" ], "sg": [ "", "ボ" ], "dg": [ "", "加" ], "fg": [ "", "室" ], "gg": [ "", "少" ], "hg": [ "", "で" ], "jg": [ "", "は" ], "kg": [ "", "に" ], "lg": [ "", "な" ], ";g": [ "", "を" ], "zg": [ "", "転" ], "xg": [ "", "空" ], "cg": [ "", "性" ], "vg": [ "", "使" ], "bg": [ "", "級" ], "ng": [ "", "業" ], "mg": [ "", "時" ], ",g": [ "", "「" ], ".g": [ "", "長" ], "/g": [ "", "み" ], "1h": [ "", "朱" ], "2h": [ "", "遅" ], "3h": [ "", "甲" ], "4h": [ "", "致" ], "5h": [ "", "汎" ], "7h": [ "", "衰" ], "8h": [ "", "滋" ], "9h": [ "", "沈" ], "0h": [ "", "己" ], "qh": [ "", "病" ], "wh": [ "", "終" ], "eh": [ "", "起" ], "rh": [ "", "路" ], "th": [ "", "越" ], "yh": [ "", "む" ], "uh": [ "", "南" ], "ih": [ "", "原" ], "oh": [ "", "駅" ], "ph": [ "", "物" ], "ah": [ "", "勢" ], "sh": [ "", "必" ], "dh": [ "", "講" ], "fh": [ "", "愛" ], "gh": [ "", "管" ], "hh": [ "", "要" ], "jh": [ "", "設" ], "kh": [ "", "水" ], "lh": [ "", "藤" ], ";h": [ "", "有" ], "zh": [ "", "素" ], "xh": [ "", "兵" ], "ch": [ "", "専" ], "vh": [ "", "親" ], "bh": [ "", "寮" ], "nh": [ "", "ホ" ], "mh": [ "", "共" ], ",h": [ "", "ブ" ], ".h": [ "", "平" ], "/h": [ "", "楽" ], "1j": [ "", "陣" ], "2j": [ "", "鶴" ], "3j": [ "", "鹿" ], "4j": [ "", "貨" ], "5j": [ "", "絡" ], "7j": [ "", "趨" ], "8j": [ "", "湿" ], "9j": [ "", "添" ], "0j": [ "", "已" ], "qj": [ "", "常" ], "wj": [ "", "張" ], "ej": [ "", "薬" ], "rj": [ "", "防" ], "tj": [ "", "得" ], "yj": [ "", "ケ" ], "uj": [ "", "式" ], "ij": [ "", "戦" ], "oj": [ "", "関" ], "pj": [ "", "男" ], "aj": [ "", "輸" ], "sj": [ "", "形" ], "dj": [ "", "助" ], "fj": [ "", "◇" ], "gj": [ "", "流" ], "hj": [ "", "連" ], "jj": [ "", "鉄" ], "kj": [ "", "教" ], "lj": [ "", "力" ], ";j": [ "", "ベ" ], "zj": [ "", "毛" ], "xj": [ "", "永" ], "cj": [ "", "申" ], "vj": [ "", "袋" ], "bj": [ "", "良" ], "nj": [ "", "私" ], "mj": [ "", "ゴ" ], ",j": [ "", "来" ], ".j": [ "", "信" ], "/j": [ "", "午" ], "1k": [ "", "眼" ], "2k": [ "", "繁" ], "3k": [ "", "誌" ], "4k": [ "", "招" ], "5k": [ "", "季" ], "7k": [ "", "垂" ], "8k": [ "", "甚" ], "9k": [ "", "徹" ], "0k": [ "", "巳" ], "qk": [ "", "寺" ], "wk": [ "", "質" ], "ek": [ "", "づ" ], "rk": [ "", "港" ], "tk": [ "", "条" ], "yk": [ "", "話" ], "uk": [ "", "座" ], "ik": [ "", "線" ], "ok": [ "", "ダ" ], "pk": [ "", "橋" ], "ak": [ "", "基" ], "sk": [ "", "好" ], "dk": [ "", "味" ], "fk": [ "", "宝" ], "gk": [ "", "争" ], "hk": [ "", "デ" ], "jk": [ "", "現" ], "kk": [ "", "エ" ], "lk": [ "", "他" ], ";k": [ "", "度" ], "zk": [ "", "等" ], "xk": [ "", "浅" ], "ck": [ "", "頃" ], "vk": [ "", "落" ], "bk": [ "", "命" ], "nk": [ "", "村" ], "mk": [ "", "ガ" ], ",k": [ "", "製" ], ".k": [ "", "校" ], "/k": [ "", "ご" ], "1l": [ "", "執" ], "2l": [ "", "紹" ], "3l": [ "", "夢" ], "4l": [ "", "卸" ], "5l": [ "", "阿" ], "7l": [ "", "粋" ], "9l": [ "", "爪" ], "0l": [ "", "巴" ], "ql": [ "", "停" ], "wl": [ "", "領" ], "el": [ "", "容" ], "rl": [ "", "玉" ], "tl": [ "", "右" ], "yl": [ "", "べ" ], "ul": [ "", "民" ], "il": [ "", "ソ" ], "ol": [ "", "点" ], "pl": [ "", "遇" ], "al": [ "", "足" ], "sl": [ "", "草" ], "dl": [ "", "築" ], "fl": [ "", "観" ], "gl": [ "", "言" ], "hl": [ "", "車" ], "jl": [ "", "成" ], "kl": [ "", "天" ], "ll": [ "", "世" ], ";l": [ "", "文" ], "zl": [ "", "板" ], "xl": [ "", "客" ], "cl": [ "", "師" ], "vl": [ "", "税" ], "bl": [ "", "飛" ], "nl": [ "", "ノ" ], "ml": [ "", "完" ], ",l": [ "", "重" ], ".l": [ "", "約" ], "/l": [ "", "各" ], "1;": [ "", "岳" ], "2;": [ "", "刑" ], "3;": [ "", "弱" ], "4;": [ "", "雲" ], "5;": [ "", "窓" ], "7;": [ "", "寸" ], "8;": [ "", "瞳" ], "9;": [ "", "陶" ], "q;": [ "", "河" ], "w;": [ "", "置" ], "e;": [ "", "供" ], "r;": [ "", "試" ], "t;": [ "", "席" ], "y;": [ "", "期" ], "u;": [ "", "ゾ" ], "i;": [ "", "歳" ], "o;": [ "", "強" ], "p;": [ "", "係" ], "a;": [ "", "婦" ], "s;": [ "", "段" ], "d;": [ "", "衛" ], "f;": [ "", "額" ], "g;": [ "", "渋" ], "h;": [ "", "主" ], "j;": [ "", "映" ], "k;": [ "", "書" ], "l;": [ "", "可" ], ";;": [ "", "へ" ], "z;": [ "", "伝" ], "x;": [ "", "庭" ], "c;": [ "", "課" ], "v;": [ "", "着" ], "b;": [ "", "坂" ], "n;": [ "", "近" ], "m;": [ "", "外" ], ",;": [ "", "米" ], ".;": [ "", "ョ" ], "/;": [ "", "光" ], "1z": [ "", "ぁ" ], "3z": [ "", "瓦" ], "6z": [ "", "呼" ], "7z": [ "", "幅" ], "8z": [ "", "歓" ], "9z": [ "", "功" ], "0z": [ "", "盗" ], "qz": [ "", "徳" ], "wz": [ "", "渡" ], "ez": [ "", "守" ], "rz": [ "", "登" ], "tz": [ "", "退" ], "yz": [ "", "店" ], "uz": [ "", "持" ], "iz": [ "", "町" ], "oz": [ "", "所" ], "pz": [ "", "ほ" ], "az": [ "", "件" ], "sz": [ "", "友" ], "dz": [ "", "卒" ], "fz": [ "", "初" ], "gz": [ "", "慣" ], "hz": [ "", "行" ], "jz": [ "", "ド" ], "kz": [ "", "円" ], "lz": [ "", "小" ], ";z": [ "", "ジ" ], "zz": [ "", "ヨ" ], "xz": [ "", "誤" ], "cz": [ "", "証" ], "vz": [ "", "含" ], "bz": [ "", "%" ], "nz": [ "", "海" ], "mz": [ "", "道" ], ",z": [ "", "ず" ], ".z": [ "", "西" ], "/z": [ "", "げ" ], "1x": [ "", "ぃ" ], "6x": [ "", "紀" ], "7x": [ "", "破" ], "8x": [ "", "郡" ], "9x": [ "", "抗" ], "0x": [ "", "幡" ], "qx": [ "", "械" ], "wx": [ "", "刊" ], "ex": [ "", "訪" ], "rx": [ "", "融" ], "tx": [ "", "雨" ], "yx": [ "", "全" ], "ux": [ "", "じ" ], "ix": [ "", "自" ], "ox": [ "", "議" ], "px": [ "", "明" ], "ax": [ "", "宮" ], "sx": [ "", "伊" ], "dx": [ "", "求" ], "fx": [ "", "技" ], "gx": [ "", "写" ], "hx": [ "", "通" ], "jx": [ "", "カ" ], "kx": [ "", "社" ], "lx": [ "", "野" ], ";x": [ "", "同" ], "zx": [ "", "判" ], "xx": [ "", "規" ], "cx": [ "", "感" ], "vx": [ "", "値" ], "bx": [ "", "ギ" ], "nx": [ "", "当" ], "mx": [ "", "理" ], ",x": [ "", "メ" ], ".x": [ "", "ウ" ], "/x": [ "", "グ" ], "1c": [ "", "ぅ" ], "6c": [ "", "房" ], "7c": [ "", "績" ], "8c": [ "", "識" ], "9c": [ "", "属" ], "0c": [ "", "衣" ], "qc": [ "", "帝" ], "wc": [ "", "始" ], "ec": [ "", "了" ], "rc": [ "", "極" ], "tc": [ "", "熱" ], "yc": [ "", "バ" ], "uc": [ "", "部" ], "ic": [ "", "六" ], "oc": [ "", "経" ], "pc": [ "", "動" ], "ac": [ "", "局" ], "sc": [ "", "頭" ], "dc": [ "", "配" ], "fc": [ "", "黒" ], "gc": [ "", "院" ], "hc": [ "", "だ" ], "jc": [ "", "り" ], "kc": [ "", "―" ], "lc": [ "", "め" ], ";c": [ "", "大" ], "zc": [ "", "済" ], "xc": [ "", "吉" ], "cc": [ "", "ゆ" ], "vc": [ "", "器" ], "bc": [ "", "照" ], "nc": [ "", "不" ], "mc": [ "", "合" ], ",c": [ "", "面" ], ".c": [ "", "政" ], "/c": [ "", "オ" ], "1v": [ "", "ぇ" ], "6v": [ "", "去" ], "7v": [ "", "疑" ], "8v": [ "", "ぢ" ], "9v": [ "", "綿" ], "0v": [ "", "離" ], "qv": [ "", "読" ], "wv": [ "", "鈴" ], "ev": [ "", "恐" ], "rv": [ "", "督" ], "tv": [ "", "況" ], "yv": [ "", "後" ], "uv": [ "", "間" ], "iv": [ "", "場" ], "ov": [ "", "ニ" ], "pv": [ "", "産" ], "av": [ "", "向" ], "sv": [ "", "府" ], "dv": [ "", "富" ], "fv": [ "", "直" ], "gv": [ "", "倉" ], "hv": [ "", "新" ], "jv": [ "", "」" ], "kv": [ "", "9" ], "lv": [ "", "子" ], ";v": [ "", "五" ], "zv": [ "", "説" ], "xv": [ "", "週" ], "cv": [ "", "号" ], "vv": [ "", "葉" ], "bv": [ "", "派" ], "nv": [ "", "委" ], "mv": [ "", "化" ], ",v": [ "", "ビ" ], ".v": [ "", "目" ], "/v": [ "", "市" ], "1b": [ "", "ぉ" ], "6b": [ "", "秒" ], "7b": [ "", "範" ], "8b": [ "", "核" ], "9b": [ "", "影" ], "0b": [ "", "麻" ], "qb": [ "", "族" ], "wb": [ "", "丁" ], "eb": [ "", "未" ], "rb": [ "", "才" ], "tb": [ "", "返" ], "yb": [ "", "問" ], "ub": [ "", "ム" ], "ib": [ "", "七" ], "ob": [ "", "住" ], "pb": [ "", "北" ], "ab": [ "", "割" ], "sb": [ "", "ぶ" ], "db": [ "", "番" ], "fb": [ "", "望" ], "gb": [ "", "元" ], "hb": [ "", "事" ], "jb": [ "", "田" ], "kb": [ "", "会" ], "lb": [ "", "前" ], ";b": [ "", "そ" ], "zb": [ "", "休" ], "xb": [ "", "省" ], "cb": [ "", "央" ], "vb": [ "", "福" ], "bb": [ "", "毎" ], "nb": [ "", "気" ], "mb": [ "", "売" ], ",b": [ "", "下" ], ".b": [ "", "都" ], "/b": [ "", "株" ], "1n": [ "", "欲" ], "2n": [ "", "巣" ], "3n": [ "", "茂" ], "4n": [ "", "述" ], "5n": [ "", "朗" ], "qn": [ "", "帰" ], "wn": [ "", "庁" ], "en": [ "", "昨" ], "rn": [ "", "跡" ], "tn": [ "", "ゲ" ], "yn": [ "", "洗" ], "un": [ "", "羽" ], "in": [ "", "個" ], "on": [ "", "医" ], "pn": [ "", "静" ], "an": [ "", "億" ], "sn": [ "", "録" ], "dn": [ "", "赤" ], "fn": [ "", "想" ], "gn": [ "", "消" ], "hn": [ "", "支" ], "jn": [ "", "協" ], "kn": [ "", "用" ], "ln": [ "", "表" ], ";n": [ "", "正" ], "zn": [ "", "図" ], "xn": [ "", "挙" ], "cn": [ "", "険" ], "vn": [ "", "ゼ" ], "bn": [ "", "波" ], "nn": [ "", "ヤ" ], "mn": [ "", "心" ], ",n": [ "", "界" ], ".n": [ "", "意" ], "/n": [ "", "今" ], "1m": [ "", "迫" ], "2m": [ "", "災" ], "3m": [ "", "恋" ], "4m": [ "", "脳" ], "5m": [ "", "老" ], "qm": [ "", "監" ], "wm": [ "", "寄" ], "em": [ "", "裁" ], "rm": [ "", "達" ], "tm": [ "", "芝" ], "ym": [ "", "響" ], "um": [ "", "忘" ], "im": [ "", "討" ], "om": [ "", "史" ], "pm": [ "", "環" ], "am": [ "", "色" ], "sm": [ "", "貸" ], "dm": [ "", "販" ], "fm": [ "", "編" ], "gm": [ "", "仕" ], "hm": [ "", "先" ], "jm": [ "", "多" ], "km": [ "", "商" ], "lm": [ "", "ハ" ], ";m": [ "", "交" ], "zm": [ "", "之" ], "xm": [ "", "末" ], "cm": [ "", "ぼ" ], "vm": [ "", "街" ], "bm": [ "", "免" ], "nm": [ "", "再" ], "mm": [ "", "ネ" ], ",m": [ "", "〜" ], ".m": [ "", "口" ], "/m": [ "", "台" ], "1,": [ "", "留" ], "2,": [ "", "列" ], "3,": [ "", "刻" ], "4,": [ "", "豆" ], "5,": [ "", "看" ], "q,": [ "", "竹" ], "w,": [ "", "注" ], "e,": [ "", "介" ], "r,": [ "", "具" ], "t,": [ "", "失" ], "y,": [ "", "司" ], "u,": [ "", "迎" ], "i,": [ "", "華" ], "o,": [ "", "許" ], "p,": [ "", "補" ], "a,": [ "", "左" ], "s,": [ "", "態" ], "d,": [ "", "花" ], "f,": [ "", "栄" ], "g,": [ "", "ザ" ], "h,": [ "", "調" ], "j,": [ "", "混" ], "k,": [ "", "ポ" ], "l,": [ "", "決" ], ";,": [ "", "ミ" ], "z,": [ "", "州" ], "x,": [ "", "払" ], "c,": [ "", "乗" ], "v,": [ "", "庫" ], "b,": [ "", "状" ], "n,": [ "", "団" ], "m,": [ "", "計" ], ",,": [ "", "夫" ], ".,": [ "", "食" ], "/,": [ "", "総" ], "1.": [ "", "替" ], "2.": [ "", "沼" ], "3.": [ "", "?" ], "4.": [ "", "辞" ], "5.": [ "", "献" ], "q.": [ "", "ゅ" ], "w.": [ "", "修" ], "e.": [ "", "究" ], "r.": [ "", "答" ], "t.": [ "", "養" ], "y.": [ "", "復" ], "u.": [ "", "並" ], "i.": [ "", "浦" ], "o.": [ "", "ユ" ], "p.": [ "", "冷" ], "a.": [ "", "ぬ" ], "s.": [ "", "展" ], "d.": [ "", "警" ], "f.": [ "", "型" ], "g.": [ "", "誰" ], "h.": [ "", "組" ], "j.": [ "", "選" ], "k.": [ "", "党" ], "l.": [ "", "択" ], ";.": [ "", "体" ], "z.": [ "", "例" ], "x.": [ "", "満" ], "c.": [ "", "津" ], "v.": [ "", "準" ], "b.": [ "", "遊" ], "n.": [ "", "戸" ], "m.": [ "", "ひ" ], ",.": [ "", "ょ" ], "..": [ "", "価" ], "/.": [ "", "与" ], "1/": [ "", "還" ], "2/": [ "", "更" ], "3/": [ "", "占" ], "4/": [ "", "箱" ], "5/": [ "", "矢" ], "q/": [ "", "志" ], "w/": [ "", "抜" ], "e/": [ "", "航" ], "r/": [ "", "層" ], "t/": [ "", "深" ], "y/": [ "", "担" ], "u/": [ "", "陸" ], "i/": [ "", "巻" ], "o/": [ "", "競" ], "p/": [ "", "護" ], "a/": [ "", "根" ], "s/": [ "", "様" ], "d/": [ "", "独" ], "f/": [ "", "止" ], "g/": [ "", "堂" ], "h/": [ "", "銀" ], "j/": [ "", "以" ], "k/": [ "", "ヌ" ], "l/": [ "", "営" ], ";/": [ "", "治" ], "z/": [ "", "字" ], "x/": [ "", "材" ], "c/": [ "", "過" ], "v/": [ "", "諸" ], "b/": [ "", "単" ], "n/": [ "", "身" ], "m/": [ "", "ピ" ], ",/": [ "", "勝" ], "./": [ "", "反" ], "//": [ "", "ズ" ] } } } libkkc-0.3.5/data/rules/trycode/000077500000000000000000000000001244473050600164775ustar00rootroot00000000000000libkkc-0.3.5/data/rules/trycode/Makefile.am000066400000000000000000000010341244473050600205310ustar00rootroot00000000000000rulesdir = $(pkgdatadir)/rules/trycode files = \ keymap/hankaku-katakana.json \ keymap/hiragana.json \ keymap/katakana.json \ keymap/latin.json \ keymap/wide-latin.json \ rom-kana/default.json \ $(NULL) metadata_in = \ metadata.json.in \ $(NULL) nobase_rules_DATA = \ $(files) \ $(metadata_in:.in=) \ $(NULL) EXTRA_DIST = \ $(files) \ $(metadata_in) \ $(NULL) CLEANFILES = \ metadata.json \ $(NULL) -include $(top_srcdir)/data/rules/rule.mk -include $(top_srcdir)/git.mk libkkc-0.3.5/data/rules/trycode/keymap/000077500000000000000000000000001244473050600177655ustar00rootroot00000000000000libkkc-0.3.5/data/rules/trycode/keymap/hankaku-katakana.json000066400000000000000000000000651244473050600240540ustar00rootroot00000000000000{ "include": [ "default/default" ] } libkkc-0.3.5/data/rules/trycode/keymap/hiragana.json000066400000000000000000000000651244473050600224330ustar00rootroot00000000000000{ "include": [ "default/default" ] } libkkc-0.3.5/data/rules/trycode/keymap/katakana.json000066400000000000000000000000651244473050600224340ustar00rootroot00000000000000{ "include": [ "default/default" ] } libkkc-0.3.5/data/rules/trycode/keymap/latin.json000066400000000000000000000000651244473050600217700ustar00rootroot00000000000000{ "include": [ "default/default" ] } libkkc-0.3.5/data/rules/trycode/keymap/wide-latin.json000066400000000000000000000000651244473050600227160ustar00rootroot00000000000000{ "include": [ "default/default" ] } libkkc-0.3.5/data/rules/trycode/metadata.json.in000066400000000000000000000003301244473050600215530ustar00rootroot00000000000000{ "name": _("TRY-CODE"), "description": _("Japanese direct input method based on T-Code, developed by Naoto Takahashi "), "priority": 10 } libkkc-0.3.5/data/rules/trycode/rom-kana/000077500000000000000000000000001244473050600202045ustar00rootroot00000000000000libkkc-0.3.5/data/rules/trycode/rom-kana/default.json000066400000000000000000003237241244473050600225360ustar00rootroot00000000000000{ "define": { "rom-kana": { "11": [ "", "■" ], "21": [ "", "■" ], "31": [ "", "■" ], "41": [ "", "■" ], "51": [ "", "■" ], "61": [ "", "■" ], "71": [ "", "■" ], "81": [ "", "■" ], "91": [ "", "■" ], "01": [ "", "■" ], "'1": [ "", "ヮ" ], ",1": [ "", "ヰ" ], ".1": [ "", "ヱ" ], "p1": [ "", "ヵ" ], "y1": [ "", "ヶ" ], "f1": [ "", "請" ], "g1": [ "", "境" ], "c1": [ "", "系" ], "r1": [ "", "探" ], "l1": [ "", "象" ], "a1": [ "", "ゎ" ], "o1": [ "", "ゐ" ], "e1": [ "", "ゑ" ], "u1": [ "", "沖" ], "i1": [ "", "縄" ], "d1": [ "", "盛" ], "h1": [ "", "革" ], "t1": [ "", "突" ], "n1": [ "", "温" ], "s1": [ "", "捕" ], ";1": [ "", "肺" ], "q1": [ "", "宙" ], "j1": [ "", "泉" ], "k1": [ "", "署" ], "x1": [ "", "奮" ], "b1": [ "", "依" ], "m1": [ "", "繊" ], "w1": [ "", "借" ], "v1": [ "", "須" ], "z1": [ "", "訳" ], "12": [ "", "■" ], "22": [ "", "■" ], "32": [ "", "■" ], "42": [ "", "■" ], "52": [ "", "■" ], "62": [ "", "■" ], "72": [ "", "■" ], "82": [ "", "■" ], "92": [ "", "■" ], "02": [ "", "■" ], "'2": [ "", "丑" ], ",2": [ "", "臼" ], ".2": [ "", "宴" ], "p2": [ "", "縁" ], "y2": [ "", "曳" ], "f2": [ "", "尚" ], "g2": [ "", "賀" ], "c2": [ "", "岸" ], "r2": [ "", "責" ], "l2": [ "", "漁" ], "a2": [ "", "於" ], "o2": [ "", "汚" ], "e2": [ "", "乙" ], "u2": [ "", "穏" ], "i2": [ "", "捨" ], "d2": [ "", "益" ], "h2": [ "", "援" ], "t2": [ "", "周" ], "n2": [ "", "域" ], "s2": [ "", "荒" ], ";2": [ "", "拝" ], "q2": [ "", "暖" ], "j2": [ "", "誠" ], "k2": [ "", "縮" ], "x2": [ "", "腹" ], "b2": [ "", "織" ], "m2": [ "", "父" ], "w2": [ "", "枚" ], "v2": [ "", "乱" ], "z2": [ "", "香" ], "13": [ "", "■" ], "23": [ "", "■" ], "33": [ "", "■" ], "43": [ "", "■" ], "53": [ "", "■" ], "63": [ "", "■" ], "73": [ "", "■" ], "83": [ "", "■" ], "93": [ "", "■" ], "03": [ "", "■" ], "'3": [ "", "鬼" ], ",3": [ "", "虚" ], ".3": [ "", "狭" ], "p3": [ "", "脅" ], "y3": [ "", "驚" ], "f3": [ "", "舎" ], "g3": [ "", "喜" ], "c3": [ "", "幹" ], "r3": [ "", "丘" ], "l3": [ "", "糖" ], "a3": [ "", "奇" ], "o3": [ "", "既" ], "e3": [ "", "菊" ], "u3": [ "", "却" ], "i3": [ "", "享" ], "d3": [ "", "康" ], "h3": [ "", "徒" ], "t3": [ "", "景" ], "n3": [ "", "処" ], "s3": [ "", "ぜ" ], ";3": [ "", "届" ], "q3": [ "", "誕" ], "j3": [ "", "聖" ], "k3": [ "", "縦" ], "x3": [ "", "晩" ], "b3": [ "", "譲" ], "m3": [ "", "ヘ" ], "w3": [ "", "模" ], "v3": [ "", "降" ], "z3": [ "", "走" ], "14": [ "", "■" ], "24": [ "", "■" ], "34": [ "", "■" ], "44": [ "", "■" ], "54": [ "", "■" ], "64": [ "", "■" ], "74": [ "", "■" ], "84": [ "", "■" ], "94": [ "", "■" ], "04": [ "", "■" ], "'4": [ "", "孤" ], ",4": [ "", "誇" ], ".4": [ "", "黄" ], "p4": [ "", "后" ], "y4": [ "", "耕" ], "f4": [ "", "布" ], "g4": [ "", "苦" ], "c4": [ "", "圧" ], "r4": [ "", "恵" ], "l4": [ "", "固" ], "a4": [ "", "巧" ], "o4": [ "", "克" ], "e4": [ "", "懇" ], "u4": [ "", "困" ], "i4": [ "", "昏" ], "d4": [ "", "邦" ], "h4": [ "", "舞" ], "t4": [ "", "雑" ], "n4": [ "", "漢" ], "s4": [ "", "緊" ], ";4": [ "", "潮" ], "q4": [ "", "臓" ], "j4": [ "", "仁" ], "k4": [ "", "尺" ], "x4": [ "", "班" ], "b4": [ "", "激" ], "m4": [ "", "干" ], "w4": [ "", "彦" ], "v4": [ "", "均" ], "z4": [ "", "又" ], "15": [ "", "■" ], "25": [ "", "■" ], "35": [ "", "■" ], "45": [ "", "■" ], "55": [ "", "■" ], "65": [ "", "■" ], "75": [ "", "■" ], "85": [ "", "■" ], "95": [ "", "■" ], "05": [ "", "■" ], "'5": [ "", "奉" ], ",5": [ "", "某" ], ".5": [ "", "貌" ], "p5": [ "", "卜" ], "y5": [ "", "鋼" ], "f5": [ "", "姿" ], "g5": [ "", "絶" ], "c5": [ "", "密" ], "r5": [ "", "秘" ], "l5": [ "", "押" ], "a5": [ "", "詞" ], "o5": [ "", "至" ], "e5": [ "", "蚕" ], "u5": [ "", "穀" ], "i5": [ "", "磁" ], "d5": [ "", "衆" ], "h5": [ "", "節" ], "t5": [ "", "杉" ], "n5": [ "", "肉" ], "s5": [ "", "除" ], ";5": [ "", "俳" ], "q5": [ "", "頂" ], "j5": [ "", "染" ], "k5": [ "", "城" ], "x5": [ "", "陛" ], "b5": [ "", "測" ], "m5": [ "", "血" ], "w5": [ "", "散" ], "v5": [ "", "笑" ], "z5": [ "", "弁" ], "16": [ "", "■" ], "26": [ "", "■" ], "36": [ "", "■" ], "46": [ "", "■" ], "56": [ "", "■" ], "66": [ "", "■" ], "76": [ "", "■" ], "86": [ "", "■" ], "96": [ "", "■" ], "06": [ "", "■" ], "'6": [ "", "湖" ], ",6": [ "", "礼" ], ".6": [ "", "著" ], "p6": [ "", "移" ], "y6": [ "", "郷" ], "f6": [ "", "息" ], "g6": [ "", "詩" ], "c6": [ "", "拾" ], "r6": [ "", "暑" ], "l6": [ "", "昭" ], "a6": [ "", "償" ], "o6": [ "", "欧" ], "e6": [ "", "努" ], "u6": [ "", "底" ], "i6": [ "", "亜" ], "d6": [ "", "悲" ], "h6": [ "", "柱" ], "t6": [ "", "笛" ], "n6": [ "", "童" ], "s6": [ "", "畑" ], ";6": [ "", "禁" ], "q6": [ "", "硝" ], "j6": [ "", "樹" ], "k6": [ "", "句" ], "x6": [ "", "礎" ], "b6": [ "", "皇" ], "m6": [ "", "像" ], "w6": [ "", "肥" ], "v6": [ "", "沿" ], "z6": [ "", "吸" ], "17": [ "", "■" ], "27": [ "", "■" ], "37": [ "", "■" ], "47": [ "", "■" ], "57": [ "", "■" ], "67": [ "", "■" ], "77": [ "", "■" ], "87": [ "", "■" ], "97": [ "", "■" ], "07": [ "", "■" ], "'7": [ "", "端" ], ",7": [ "", "飾" ], ".7": [ "", "郵" ], "p7": [ "", "塩" ], "y7": [ "", "群" ], "f7": [ "", "鳴" ], "g7": [ "", "星" ], "c7": [ "", "析" ], "r7": [ "", "遷" ], "l7": [ "", "宣" ], "a7": [ "", "紅" ], "o7": [ "", "傷" ], "e7": [ "", "豪" ], "u7": [ "", "維" ], "i7": [ "", "脱" ], "d7": [ "", "鼠" ], "h7": [ "", "曹" ], "t7": [ "", "奏" ], "n7": [ "", "尊" ], "s7": [ "", "刀" ], ";7": [ "", "絹" ], "q7": [ "", "被" ], "j7": [ "", "源" ], "k7": [ "", "願" ], "x7": [ "", "臨" ], "b7": [ "", "胸" ], "m7": [ "", "謝" ], "w7": [ "", "損" ], "v7": [ "", "俵" ], "z7": [ "", "灰" ], "18": [ "", "■" ], "28": [ "", "■" ], "38": [ "", "■" ], "48": [ "", "■" ], "58": [ "", "■" ], "68": [ "", "■" ], "78": [ "", "■" ], "88": [ "", "■" ], "98": [ "", "■" ], "08": [ "", "■" ], "'8": [ "", "刷" ], ",8": [ "", "寿" ], ".8": [ "", "順" ], "p8": [ "", "危" ], "y8": [ "", "砂" ], "f8": [ "", "庶" ], "g8": [ "", "粧" ], "c8": [ "", "丈" ], "r8": [ "", "称" ], "l8": [ "", "蒸" ], "a8": [ "", "舗" ], "o8": [ "", "充" ], "e8": [ "", "喫" ], "u8": [ "", "腕" ], "i8": [ "", "暴" ], "d8": [ "", "冬" ], "h8": [ "", "貝" ], "t8": [ "", "犬" ], "n8": [ "", "森" ], "s8": [ "", "林" ], ";8": [ "", "批" ], "q8": [ "", "慶" ], "j8": [ "", "渉" ], "k8": [ "", "竜" ], "x8": [ "", "併" ], "b8": [ "", "敬" ], "m8": [ "", "舌" ], "w8": [ "", "敵" ], "v8": [ "", "貧" ], "z8": [ "", "閣" ], "19": [ "", "■" ], "29": [ "", "■" ], "39": [ "", "■" ], "49": [ "", "■" ], "59": [ "", "■" ], "69": [ "", "■" ], "79": [ "", "■" ], "89": [ "", "■" ], "99": [ "", "■" ], "09": [ "", "■" ], "'9": [ "", "震" ], ",9": [ "", "扱" ], ".9": [ "", "片" ], "p9": [ "", "札" ], "y9": [ "", "乞" ], "f9": [ "", "暗" ], "g9": [ "", "乃" ], "c9": [ "", "如" ], "r9": [ "", "尼" ], "l9": [ "", "帳" ], "a9": [ "", "輪" ], "o9": [ "", "倒" ], "e9": [ "", "操" ], "u9": [ "", "柄" ], "i9": [ "", "魚" ], "d9": [ "", "馬" ], "h9": [ "", "歌" ], "t9": [ "", "絵" ], "n9": [ "", "弓" ], "s9": [ "", "晴" ], ";9": [ "", "就" ], "q9": [ "", "駐" ], "j9": [ "", "揮" ], "k9": [ "", "丹" ], "x9": [ "", "鮮" ], "b9": [ "", "穴" ], "m9": [ "", "銭" ], "w9": [ "", "銅" ], "v9": [ "", "墓" ], "z9": [ "", "机" ], "10": [ "", "■" ], "20": [ "", "■" ], "30": [ "", "■" ], "40": [ "", "■" ], "50": [ "", "■" ], "60": [ "", "■" ], "70": [ "", "■" ], "80": [ "", "■" ], "90": [ "", "■" ], "00": [ "", "■" ], "'0": [ "", "弘" ], ",0": [ "", "痛" ], ".0": [ "", "票" ], "p0": [ "", "訴" ], "y0": [ "", "遺" ], "f0": [ "", "欄" ], "g0": [ "", "龍" ], "c0": [ "", "略" ], "r0": [ "", "慮" ], "l0": [ "", "累" ], "a0": [ "", "則" ], "o0": [ "", "存" ], "e0": [ "", "倍" ], "u0": [ "", "牛" ], "i0": [ "", "釈" ], "d0": [ "", "麦" ], "h0": [ "", "弟" ], "t0": [ "", "兄" ], "n0": [ "", "姉" ], "s0": [ "", "妹" ], ";0": [ "", "綱" ], "q0": [ "", "潟" ], "j0": [ "", "創" ], "k0": [ "", "背" ], "x0": [ "", "皮" ], "b0": [ "", "孝" ], "m0": [ "", "祖" ], "w0": [ "", "燃" ], "v0": [ "", "預" ], "z0": [ "", "貴" ], "1'": [ "", "ヲ" ], "2'": [ "", "哀" ], "3'": [ "", "暇" ], "4'": [ "", "啓" ], "5'": [ "", "把" ], "6'": [ "", "酸" ], "7'": [ "", "昼" ], "8'": [ "", "炭" ], "9'": [ "", "稲" ], "0'": [ "", "湯" ], "''": [ "", "果" ], ",'": [ "", "告" ], ".'": [ "", "策" ], "p'": [ "", "首" ], "y'": [ "", "農" ], "f'": [ "", "歩" ], "g'": [ "", "回" ], "c'": [ "", "務" ], "r'": [ "", "島" ], "l'": [ "", "開" ], "a'": [ "", "報" ], "o'": [ "", "紙" ], "e'": [ "", "館" ], "u'": [ "", "夜" ], "i'": [ "", "位" ], "d'": [ "", "給" ], "h'": [ "", "員" ], "t'": [ "", "ど" ], "n'": [ "", "代" ], "s'": [ "", "レ" ], ";'": [ "", "欠" ], "q'": [ "", "夏" ], "j'": [ "", "彼" ], "k'": [ "", "妻" ], "x'": [ "", "善" ], "b'": [ "", "相" ], "m'": [ "", "家" ], "w'": [ "", "的" ], "v'": [ "", "対" ], "z'": [ "", "歴" ], "1,": [ "", "ゥ" ], "2,": [ "", "逢" ], "3,": [ "", "牙" ], "4,": [ "", "掲" ], "5,": [ "", "伐" ], "6,": [ "", "貿" ], "7,": [ "", "捜" ], "8,": [ "", "異" ], "9,": [ "", "隣" ], "0,": [ "", "旧" ], "',": [ "", "概" ], ",,": [ "", "買" ], ".,": [ "", "詳" ], "p,": [ "", "由" ], "y,": [ "", "死" ], "f,": [ "", "キ" ], "g,": [ "", "せ" ], "c,": [ "", "区" ], "r,": [ "", "百" ], "l,": [ "", "木" ], "a,": [ "", "音" ], "o,": [ "", "王" ], "e,": [ "", "放" ], "u,": [ "", "々" ], "i,": [ "", "応" ], "d,": [ "", "分" ], "h,": [ "", "よ" ], "t,": [ "", "ル" ], "n,": [ "", "千" ], "s,": [ "", "ア" ], ";,": [ "", "財" ], "q,": [ "", "針" ], "j,": [ "", "裏" ], "k,": [ "", "居" ], "x,": [ "", "差" ], "b,": [ "", "付" ], "m,": [ "", "プ" ], "w,": [ "", "ば" ], "v,": [ "", "ュ" ], "z,": [ "", "作" ], "1.": [ "", "ヴ" ], "2.": [ "", "宛" ], "3.": [ "", "壊" ], "4.": [ "", "携" ], "5.": [ "", "避" ], "6.": [ "", "攻" ], "7.": [ "", "焼" ], "8.": [ "", "闘" ], "9.": [ "", "奈" ], "0.": [ "", "夕" ], "'.": [ "", "武" ], ",.": [ "", "残" ], "..": [ "", "両" ], "p.": [ "", "在" ], "y.": [ "", "!" ], "f.": [ "", "や" ], "g.": [ "", "出" ], "c.": [ "", "タ" ], "r.": [ "", "手" ], "l.": [ "", "保" ], "a.": [ "", "案" ], "o.": [ "", "曲" ], "e.": [ "", "情" ], "u.": [ "", "引" ], "i.": [ "", "職" ], "d.": [ "", "7" ], "h.": [ "", "か" ], "t.": [ "", "(" ], "n.": [ "", "ト" ], "s.": [ "", "れ" ], ";.": [ "", "従" ], "q.": [ "", "骨" ], "j.": [ "", "厚" ], "k.": [ "", "顔" ], "x.": [ "", "量" ], "b.": [ "", "内" ], "m.": [ "", "工" ], "w.": [ "", "八" ], "v.": [ "", "テ" ], "z.": [ "", "見" ], "1p": [ "", "ヂ" ], "2p": [ "", "囲" ], "3p": [ "", "較" ], "4p": [ "", "劇" ], "5p": [ "", "卑" ], "6p": [ "", "盤" ], "7p": [ "", "帯" ], "8p": [ "", "易" ], "9p": [ "", "速" ], "0p": [ "", "拡" ], "'p": [ "", "風" ], ",p": [ "", "階" ], ".p": [ "", "能" ], "pp": [ "", "論" ], "yp": [ "", "増" ], "fp": [ "", "コ" ], "gp": [ "", "山" ], "cp": [ "", "者" ], "rp": [ "", "発" ], "lp": [ "", "立" ], "ap": [ "", "横" ], "op": [ "", "興" ], "ep": [ "", "刺" ], "up": [ "", "側" ], "ip": [ "", "覚" ], "dp": [ "", "き" ], "hp": [ "", "っ" ], "tp": [ "", "日" ], "np": [ "", "国" ], "sp": [ "", "二" ], ";p": [ "", "適" ], "qp": [ "", "類" ], "jp": [ "", "御" ], "kp": [ "", "宇" ], "xp": [ "", "推" ], "bp": [ "", "九" ], "mp": [ "", "名" ], "wp": [ "", "川" ], "vp": [ "", "機" ], "zp": [ "", "チ" ], "1y": [ "", "ヅ" ], "2y": [ "", "庵" ], "3y": [ "", "寒" ], "4y": [ "", "賢" ], "5y": [ "", "藩" ], "6y": [ "", "汽" ], "7y": [ "", "換" ], "8y": [ "", "延" ], "9y": [ "", "雪" ], "0y": [ "", "互" ], "'y": [ "", "細" ], ",y": [ "", "古" ], ".y": [ "", "利" ], "py": [ "", "ペ" ], "yy": [ "", "ゃ" ], "fy": [ "", "ナ" ], "gy": [ "", "金" ], "cy": [ "", "マ" ], "ry": [ "", "和" ], "ly": [ "", "女" ], "ay": [ "", "崎" ], "oy": [ "", "白" ], "ey": [ "", "ぐ" ], "uy": [ "", "官" ], "iy": [ "", "球" ], "dy": [ "", "上" ], "hy": [ "", "く" ], "ty": [ "", "8" ], "ny": [ "", "え" ], "sy": [ "", "年" ], ";y": [ "", "母" ], "qy": [ "", "奥" ], "jy": [ "", "因" ], "ky": [ "", "酒" ], "xy": [ "", "伸" ], "by": [ "", "サ" ], "my": [ "", "建" ], "wy": [ "", "パ" ], "vy": [ "", "第" ], "zy": [ "", "入" ], "1f": [ "", "簡" ], "2f": [ "", "徴" ], "3f": [ "", "触" ], "4f": [ "", "宗" ], "5f": [ "", "植" ], "6f": [ "", "鼻" ], "7f": [ "", "索" ], "8f": [ "", "射" ], "9f": [ "", "濁" ], "0f": [ "", "慢" ], "'f": [ "", "害" ], ",f": [ "", "賃" ], ".f": [ "", "整" ], "pf": [ "", "軽" ], "yf": [ "", "評" ], "ff": [ "", "佐" ], "gf": [ "", "法" ], "cf": [ "", "数" ], "rf": [ "", "郎" ], "lf": [ "", "談" ], "af": [ "", "服" ], "of": [ "", "声" ], "ef": [ "", "任" ], "uf": [ "", "検" ], "if": [ "", "豊" ], "df": [ "", "美" ], "hf": [ "", "題" ], "tf": [ "", "井" ], "nf": [ "", "洋" ], "sf": [ "", "実" ], ";f": [ "", "爆" ], "qf": [ "", "仲" ], "jf": [ "", "茶" ], "kf": [ "", "率" ], "xf": [ "", "比" ], "bf": [ "", "昔" ], "mf": [ "", "短" ], "wf": [ "", "岩" ], "vf": [ "", "巨" ], "zf": [ "", "敗" ], "1g": [ "", "承" ], "2g": [ "", "章" ], "3g": [ "", "候" ], "4g": [ "", "途" ], "5g": [ "", "複" ], "6g": [ "", "氷" ], "7g": [ "", "冊" ], "8g": [ "", "需" ], "9g": [ "", "詑" ], "0g": [ "", "迷" ], "'g": [ "", "撃" ], ",g": [ "", "折" ], ".g": [ "", "追" ], "pg": [ "", "隊" ], "yg": [ "", "角" ], "fg": [ "", "接" ], "gg": [ "", "備" ], "cg": [ "", "最" ], "rg": [ "", "急" ], "lg": [ "", "験" ], "ag": [ "", "変" ], "og": [ "", "審" ], "eg": [ "", "改" ], "ug": [ "", "昇" ], "ig": [ "", "芸" ], "dg": [ "", "宿" ], "hg": [ "", "制" ], "tg": [ "", "集" ], "ng": [ "", "安" ], "sg": [ "", "画" ], ";g": [ "", "陽" ], "qg": [ "", "構" ], "jg": [ "", "旅" ], "kg": [ "", "施" ], "xg": [ "", "曜" ], "bg": [ "", "遠" ], "mg": [ "", "ォ" ], "wg": [ "", "将" ], "vg": [ "", "ぞ" ], "zg": [ "", "塚" ], "1c": [ "", "快" ], "2c": [ "", "否" ], "3c": [ "", "歯" ], "4c": [ "", "筆" ], "5c": [ "", "里" ], "6c": [ "", "油" ], "7c": [ "", "皿" ], "8c": [ "", "輯" ], "9c": [ "", "蓄" ], "0c": [ "", "戻" ], "'c": [ "", "浴" ], ",c": [ "", "秀" ], ".c": [ "", "糸" ], "pc": [ "", "春" ], "yc": [ "", "幸" ], "fc": [ "", "記" ], "gc": [ "", "朝" ], "cc": [ "", "知" ], "rc": [ "", "ワ" ], "lc": [ "", "送" ], "ac": [ "", "限" ], "oc": [ "", "研" ], "ec": [ "", "労" ], "uc": [ "", "統" ], "ic": [ "", "役" ], "dc": [ "", "セ" ], "hc": [ "", "運" ], "tc": [ "", "ツ" ], "nc": [ "", "特" ], "sc": [ "", "谷" ], ";c": [ "", "ァ" ], "qc": [ "", "導" ], "jc": [ "", "認" ], "kc": [ "", "健" ], "xc": [ "", "尾" ], "bc": [ "", "序" ], "mc": [ "", "振" ], "wc": [ "", "練" ], "vc": [ "", "念" ], "zc": [ "", "働" ], "1r": [ "", "包" ], "2r": [ "", "納" ], "3r": [ "", "頼" ], "4r": [ "", "逃" ], "5r": [ "", "寝" ], "6r": [ "", "緑" ], "7r": [ "", "賛" ], "8r": [ "", "瞬" ], "9r": [ "", "貯" ], "0r": [ "", "羊" ], "'r": [ "", "積" ], ",r": [ "", "程" ], ".r": [ "", "断" ], "pr": [ "", "低" ], "yr": [ "", "減" ], "fr": [ "", "モ" ], "gr": [ "", "資" ], "cr": [ "", "士" ], "rr": [ "", "費" ], "lr": [ "", "ィ" ], "ar": [ "", "逆" ], "or": [ "", "企" ], "er": [ "", "精" ], "ur": [ "", "ざ" ], "ir": [ "", "印" ], "dr": [ "", "神" ], "hr": [ "", "び" ], "tr": [ "", "打" ], "nr": [ "", "勤" ], "sr": [ "", "ャ" ], ";r": [ "", "殺" ], "qr": [ "", "負" ], "jr": [ "", "何" ], "kr": [ "", "履" ], "xr": [ "", "般" ], "br": [ "", "耳" ], "mr": [ "", "授" ], "wr": [ "", "版" ], "vr": [ "", "効" ], "zr": [ "", "視" ], "1l": [ "", "唱" ], "2l": [ "", "暮" ], "3l": [ "", "憲" ], "4l": [ "", "勉" ], "5l": [ "", "罪" ], "6l": [ "", "芽" ], "7l": [ "", "飲" ], "8l": [ "", "盾" ], "9l": [ "", "虫" ], "0l": [ "", "泳" ], "'l": [ "", "故" ], ",l": [ "", "鉱" ], ".l": [ "", "提" ], "pl": [ "", "児" ], "yl": [ "", "敷" ], "fl": [ "", "無" ], "gl": [ "", "石" ], "cl": [ "", "屋" ], "rl": [ "", "解" ], "ll": [ "", "募" ], "al": [ "", "令" ], "ol": [ "", "違" ], "el": [ "", "装" ], "ul": [ "", "然" ], "il": [ "", "確" ], "dl": [ "", "優" ], "hl": [ "", "公" ], "tl": [ "", "品" ], "nl": [ "", "語" ], "sl": [ "", "演" ], ";l": [ "", "券" ], "ql": [ "", "悪" ], "jl": [ "", "秋" ], "kl": [ "", "非" ], "xl": [ "", "便" ], "bl": [ "", "示" ], "ml": [ "", "即" ], "wl": [ "", "難" ], "vl": [ "", "普" ], "zl": [ "", "辺" ], "1a": [ "", "ぱ" ], "2a": [ "", "慰" ], "3a": [ "", "我" ], "4a": [ "", "兼" ], "5a": [ "", "菱" ], "6a": [ "", "桜" ], "7a": [ "", "瀬" ], "8a": [ "", "鳥" ], "9a": [ "", "催" ], "0a": [ "", "障" ], "'a": [ "", "収" ], ",a": [ "", "際" ], ".a": [ "", "太" ], "pa": [ "", "園" ], "ya": [ "", "船" ], "fa": [ "", "中" ], "ga": [ "", "ス" ], "ca": [ "", "も" ], "ra": [ "", "お" ], "la": [ "", "定" ], "aa": [ "", "種" ], "oa": [ "", "岡" ], "ea": [ "", "結" ], "ua": [ "", "進" ], "ia": [ "", "真" ], "da": [ "", "3" ], "ha": [ "", "と" ], "ta": [ "", "→" ], "na": [ "", "て" ], "sa": [ "", "る" ], ";a": [ "", "ヒ" ], "qa": [ "", "江" ], "ja": [ "", "別" ], "ka": [ "", "考" ], "xa": [ "", "権" ], "ba": [ "", "ッ" ], "ma": [ "", "人" ], "wa": [ "", "三" ], "va": [ "", "京" ], "za": [ "", "ち" ], "1o": [ "", "ぴ" ], "2o": [ "", "為" ], "3o": [ "", "掛" ], "4o": [ "", "嫌" ], "5o": [ "", "紐" ], "6o": [ "", "典" ], "7o": [ "", "博" ], "8o": [ "", "筋" ], "9o": [ "", "忠" ], "0o": [ "", "乳" ], "'o": [ "", "若" ], ",o": [ "", "雄" ], ".o": [ "", "査" ], "po": [ "", "ふ" ], "yo": [ "", "賞" ], "fo": [ "", "わ" ], "go": [ "", "ラ" ], "co": [ "", "東" ], "ro": [ "", "生" ], "lo": [ "", "ろ" ], "ao": [ "", "宅" ], "oo": [ "", "熟" ], "eo": [ "", "待" ], "uo": [ "", "取" ], "io": [ "", "科" ], "do": [ "", "ー" ], "ho": [ "", "し" ], "to": [ "", "た" ], "no": [ "", "一" ], "so": [ "", "が" ], ";o": [ "", "及" ], "qo": [ "", "久" ], "jo": [ "", "蔵" ], "ko": [ "", "早" ], "xo": [ "", "造" ], "bo": [ "", "ロ" ], "mo": [ "", "ク" ], "wo": [ "", "万" ], "vo": [ "", "方" ], "zo": [ "", "フ" ], "1e": [ "", "ぷ" ], "2e": [ "", "陰" ], "3e": [ "", "敢" ], "4e": [ "", "顕" ], "5e": [ "", "描" ], "6e": [ "", "採" ], "7e": [ "", "謡" ], "8e": [ "", "希" ], "9e": [ "", "仏" ], "0e": [ "", "察" ], "'e": [ "", "指" ], ",e": [ "", "氏" ], ".e": [ "", "丸" ], "pe": [ "", "続" ], "ye": [ "", "ェ" ], "fe": [ "", "う" ], "ge": [ "", "4" ], "ce": [ "", ")" ], "re": [ "", "十" ], "le": [ "", "リ" ], "ae": [ "", "料" ], "oe": [ "", "土" ], "ee": [ "", "活" ], "ue": [ "", "ね" ], "ie": [ "", "参" ], "de": [ "", "い" ], "he": [ "", "、" ], "te": [ "", "の" ], "ne": [ "", "5" ], "se": [ "", "1" ], ";e": [ "", "投" ], "qe": [ "", "義" ], "je": [ "", "算" ], "ke": [ "", "半" ], "xe": [ "", "県" ], "be": [ "", "ん" ], "me": [ "", "ま" ], "we": [ "", "ン" ], "ve": [ "", "つ" ], "ze": [ "", "四" ], "1u": [ "", "ぺ" ], "2u": [ "", "隠" ], "3u": [ "", "甘" ], "4u": [ "", "牽" ], "5u": [ "", "憤" ], "6u": [ "", "君" ], "7u": [ "", "純" ], "8u": [ "", "副" ], "9u": [ "", "盟" ], "0u": [ "", "標" ], "'u": [ "", "ぎ" ], ",u": [ "", "格" ], ".u": [ "", "次" ], "pu": [ "", "習" ], "yu": [ "", "火" ], "fu": [ "", "あ" ], "gu": [ "", "こ" ], "cu": [ "", "6" ], "ru": [ "", "学" ], "lu": [ "", "月" ], "au": [ "", "受" ], "ou": [ "", "予" ], "eu": [ "", "切" ], "uu": [ "", "育" ], "iu": [ "", "池" ], "du": [ "", "。" ], "hu": [ "", "◆" ], "tu": [ "", "0" ], "nu": [ "", "・" ], "su": [ "", "2" ], ";u": [ "", "込" ], "qu": [ "", "沢" ], "ju": [ "", "軍" ], "ku": [ "", "青" ], "xu": [ "", "清" ], "bu": [ "", "け" ], "mu": [ "", "イ" ], "wu": [ "", "す" ], "vu": [ "", "電" ], "zu": [ "", "地" ], "1i": [ "", "ぽ" ], "2i": [ "", "胃" ], "3i": [ "", "患" ], "4i": [ "", "厳" ], "5i": [ "", "弊" ], "6i": [ "", "犯" ], "7i": [ "", "余" ], "8i": [ "", "堀" ], "9i": [ "", "肩" ], "0i": [ "", "療" ], "'i": [ "", "思" ], ",i": [ "", "術" ], ".i": [ "", "広" ], "pi": [ "", "門" ], "yi": [ "", "聞" ], "fi": [ "", "本" ], "gi": [ "", "さ" ], "ci": [ "", "ら" ], "ri": [ "", "高" ], "li": [ "", "シ" ], "ai": [ "", "英" ], "oi": [ "", "ボ" ], "ei": [ "", "加" ], "ui": [ "", "室" ], "ii": [ "", "少" ], "di": [ "", "で" ], "hi": [ "", "は" ], "ti": [ "", "に" ], "ni": [ "", "な" ], "si": [ "", "を" ], ";i": [ "", "転" ], "qi": [ "", "空" ], "ji": [ "", "性" ], "ki": [ "", "使" ], "xi": [ "", "級" ], "bi": [ "", "業" ], "mi": [ "", "時" ], "wi": [ "", "「" ], "vi": [ "", "長" ], "zi": [ "", "み" ], "1d": [ "", "朱" ], "2d": [ "", "遅" ], "3d": [ "", "甲" ], "4d": [ "", "致" ], "5d": [ "", "汎" ], "6d": [ "", "旗" ], "7d": [ "", "衰" ], "8d": [ "", "滋" ], "9d": [ "", "沈" ], "0d": [ "", "己" ], "'d": [ "", "病" ], ",d": [ "", "終" ], ".d": [ "", "起" ], "pd": [ "", "路" ], "yd": [ "", "越" ], "fd": [ "", "む" ], "gd": [ "", "南" ], "cd": [ "", "原" ], "rd": [ "", "駅" ], "ld": [ "", "物" ], "ad": [ "", "勢" ], "od": [ "", "必" ], "ed": [ "", "講" ], "ud": [ "", "愛" ], "id": [ "", "管" ], "dd": [ "", "要" ], "hd": [ "", "設" ], "td": [ "", "水" ], "nd": [ "", "藤" ], "sd": [ "", "有" ], ";d": [ "", "素" ], "qd": [ "", "兵" ], "jd": [ "", "専" ], "kd": [ "", "親" ], "xd": [ "", "寮" ], "bd": [ "", "ホ" ], "md": [ "", "共" ], "wd": [ "", "ブ" ], "vd": [ "", "平" ], "zd": [ "", "楽" ], "1h": [ "", "陣" ], "2h": [ "", "鶴" ], "3h": [ "", "鹿" ], "4h": [ "", "貨" ], "5h": [ "", "絡" ], "6h": [ "", "泣" ], "7h": [ "", "趨" ], "8h": [ "", "湿" ], "9h": [ "", "添" ], "0h": [ "", "已" ], "'h": [ "", "常" ], ",h": [ "", "張" ], ".h": [ "", "薬" ], "ph": [ "", "防" ], "yh": [ "", "得" ], "fh": [ "", "ケ" ], "gh": [ "", "式" ], "ch": [ "", "戦" ], "rh": [ "", "関" ], "lh": [ "", "男" ], "ah": [ "", "輸" ], "oh": [ "", "形" ], "eh": [ "", "助" ], "uh": [ "", "◇" ], "ih": [ "", "流" ], "dh": [ "", "連" ], "hh": [ "", "鉄" ], "th": [ "", "教" ], "nh": [ "", "力" ], "sh": [ "", "ベ" ], ";h": [ "", "毛" ], "qh": [ "", "永" ], "jh": [ "", "申" ], "kh": [ "", "袋" ], "xh": [ "", "良" ], "bh": [ "", "私" ], "mh": [ "", "ゴ" ], "wh": [ "", "来" ], "vh": [ "", "信" ], "zh": [ "", "午" ], "1t": [ "", "眼" ], "2t": [ "", "繁" ], "3t": [ "", "誌" ], "4t": [ "", "招" ], "5t": [ "", "季" ], "6t": [ "", "救" ], "7t": [ "", "垂" ], "8t": [ "", "甚" ], "9t": [ "", "徹" ], "0t": [ "", "巳" ], "'t": [ "", "寺" ], ",t": [ "", "質" ], ".t": [ "", "づ" ], "pt": [ "", "港" ], "yt": [ "", "条" ], "ft": [ "", "話" ], "gt": [ "", "座" ], "ct": [ "", "線" ], "rt": [ "", "ダ" ], "lt": [ "", "橋" ], "at": [ "", "基" ], "ot": [ "", "好" ], "et": [ "", "味" ], "ut": [ "", "宝" ], "it": [ "", "争" ], "dt": [ "", "デ" ], "ht": [ "", "現" ], "tt": [ "", "エ" ], "nt": [ "", "他" ], "st": [ "", "度" ], ";t": [ "", "等" ], "qt": [ "", "浅" ], "jt": [ "", "頃" ], "kt": [ "", "落" ], "xt": [ "", "命" ], "bt": [ "", "村" ], "mt": [ "", "ガ" ], "wt": [ "", "製" ], "vt": [ "", "校" ], "zt": [ "", "ご" ], "1n": [ "", "執" ], "2n": [ "", "紹" ], "3n": [ "", "夢" ], "4n": [ "", "卸" ], "5n": [ "", "阿" ], "6n": [ "", "鏡" ], "7n": [ "", "粋" ], "8n": [ "", "荷" ], "9n": [ "", "爪" ], "0n": [ "", "巴" ], "'n": [ "", "停" ], ",n": [ "", "領" ], ".n": [ "", "容" ], "pn": [ "", "玉" ], "yn": [ "", "右" ], "fn": [ "", "べ" ], "gn": [ "", "民" ], "cn": [ "", "ソ" ], "rn": [ "", "点" ], "ln": [ "", "遇" ], "an": [ "", "足" ], "on": [ "", "草" ], "en": [ "", "築" ], "un": [ "", "観" ], "in": [ "", "言" ], "dn": [ "", "車" ], "hn": [ "", "成" ], "tn": [ "", "天" ], "nn": [ "", "世" ], "sn": [ "", "文" ], ";n": [ "", "板" ], "qn": [ "", "客" ], "jn": [ "", "師" ], "kn": [ "", "税" ], "xn": [ "", "飛" ], "bn": [ "", "ノ" ], "mn": [ "", "完" ], "wn": [ "", "重" ], "vn": [ "", "約" ], "zn": [ "", "各" ], "1s": [ "", "岳" ], "2s": [ "", "刑" ], "3s": [ "", "弱" ], "4s": [ "", "雲" ], "5s": [ "", "窓" ], "6s": [ "", "訓" ], "7s": [ "", "寸" ], "8s": [ "", "瞳" ], "9s": [ "", "陶" ], "0s": [ "", "祭" ], "'s": [ "", "河" ], ",s": [ "", "置" ], ".s": [ "", "供" ], "ps": [ "", "試" ], "ys": [ "", "席" ], "fs": [ "", "期" ], "gs": [ "", "ゾ" ], "cs": [ "", "歳" ], "rs": [ "", "強" ], "ls": [ "", "係" ], "as": [ "", "婦" ], "os": [ "", "段" ], "es": [ "", "衛" ], "us": [ "", "額" ], "is": [ "", "渋" ], "ds": [ "", "主" ], "hs": [ "", "映" ], "ts": [ "", "書" ], "ns": [ "", "可" ], "ss": [ "", "へ" ], ";s": [ "", "伝" ], "qs": [ "", "庭" ], "js": [ "", "課" ], "ks": [ "", "着" ], "xs": [ "", "坂" ], "bs": [ "", "近" ], "ms": [ "", "外" ], "ws": [ "", "米" ], "vs": [ "", "ョ" ], "zs": [ "", "光" ], "1;": [ "", "ぁ" ], "2;": [ "", "熊" ], "3;": [ "", "瓦" ], "4;": [ "", "幕" ], "5;": [ "", "梨" ], "6;": [ "", "呼" ], "7;": [ "", "幅" ], "8;": [ "", "歓" ], "9;": [ "", "功" ], "0;": [ "", "盗" ], "';": [ "", "徳" ], ",;": [ "", "渡" ], ".;": [ "", "守" ], "p;": [ "", "登" ], "y;": [ "", "退" ], "f;": [ "", "店" ], "g;": [ "", "持" ], "c;": [ "", "町" ], "r;": [ "", "所" ], "l;": [ "", "ほ" ], "a;": [ "", "件" ], "o;": [ "", "友" ], "e;": [ "", "卒" ], "u;": [ "", "初" ], "i;": [ "", "慣" ], "d;": [ "", "行" ], "h;": [ "", "ド" ], "t;": [ "", "円" ], "n;": [ "", "小" ], "s;": [ "", "ジ" ], ";;": [ "", "ヨ" ], "q;": [ "", "誤" ], "j;": [ "", "証" ], "k;": [ "", "含" ], "x;": [ "", "%" ], "b;": [ "", "海" ], "m;": [ "", "道" ], "w;": [ "", "ず" ], "v;": [ "", "西" ], "z;": [ "", "げ" ], "1q": [ "", "ぃ" ], "2q": [ "", "媛" ], "3q": [ "", "覧" ], "4q": [ "", "棒" ], "5q": [ "", "埼" ], "6q": [ "", "紀" ], "7q": [ "", "破" ], "8q": [ "", "郡" ], "9q": [ "", "抗" ], "0q": [ "", "幡" ], "'q": [ "", "械" ], ",q": [ "", "刊" ], ".q": [ "", "訪" ], "pq": [ "", "融" ], "yq": [ "", "雨" ], "fq": [ "", "全" ], "gq": [ "", "じ" ], "cq": [ "", "自" ], "rq": [ "", "議" ], "lq": [ "", "明" ], "aq": [ "", "宮" ], "oq": [ "", "伊" ], "eq": [ "", "求" ], "uq": [ "", "技" ], "iq": [ "", "写" ], "dq": [ "", "通" ], "hq": [ "", "カ" ], "tq": [ "", "社" ], "nq": [ "", "野" ], "sq": [ "", "同" ], ";q": [ "", "判" ], "qq": [ "", "規" ], "jq": [ "", "感" ], "kq": [ "", "値" ], "xq": [ "", "ギ" ], "bq": [ "", "当" ], "mq": [ "", "理" ], "wq": [ "", "メ" ], "vq": [ "", "ウ" ], "zq": [ "", "グ" ], "1j": [ "", "ぅ" ], "2j": [ "", "阪" ], "3j": [ "", "卵" ], "4j": [ "", "亡" ], "5j": [ "", "栃" ], "6j": [ "", "房" ], "7j": [ "", "績" ], "8j": [ "", "識" ], "9j": [ "", "属" ], "0j": [ "", "衣" ], "'j": [ "", "帝" ], ",j": [ "", "始" ], ".j": [ "", "了" ], "pj": [ "", "極" ], "yj": [ "", "熱" ], "fj": [ "", "バ" ], "gj": [ "", "部" ], "cj": [ "", "六" ], "rj": [ "", "経" ], "lj": [ "", "動" ], "aj": [ "", "局" ], "oj": [ "", "頭" ], "ej": [ "", "配" ], "uj": [ "", "黒" ], "ij": [ "", "院" ], "dj": [ "", "だ" ], "hj": [ "", "り" ], "tj": [ "", "…" ], "nj": [ "", "め" ], "sj": [ "", "大" ], ";j": [ "", "済" ], "qj": [ "", "吉" ], "jj": [ "", "ゆ" ], "kj": [ "", "器" ], "xj": [ "", "照" ], "bj": [ "", "不" ], "mj": [ "", "合" ], "wj": [ "", "面" ], "vj": [ "", "政" ], "zj": [ "", "オ" ], "1k": [ "", "ぇ" ], "2k": [ "", "岐" ], "3k": [ "", "翌" ], "4k": [ "", "閉" ], "5k": [ "", "茨" ], "6k": [ "", "去" ], "7k": [ "", "疑" ], "8k": [ "", "ぢ" ], "9k": [ "", "綿" ], "0k": [ "", "離" ], "'k": [ "", "読" ], ",k": [ "", "鈴" ], ".k": [ "", "恐" ], "pk": [ "", "督" ], "yk": [ "", "況" ], "fk": [ "", "後" ], "gk": [ "", "間" ], "ck": [ "", "場" ], "rk": [ "", "ニ" ], "lk": [ "", "産" ], "ak": [ "", "向" ], "ok": [ "", "府" ], "ek": [ "", "富" ], "uk": [ "", "直" ], "ik": [ "", "倉" ], "dk": [ "", "新" ], "hk": [ "", "」" ], "tk": [ "", "9" ], "nk": [ "", "子" ], "sk": [ "", "五" ], ";k": [ "", "説" ], "qk": [ "", "週" ], "jk": [ "", "号" ], "kk": [ "", "葉" ], "xk": [ "", "派" ], "bk": [ "", "委" ], "mk": [ "", "化" ], "wk": [ "", "ビ" ], "vk": [ "", "目" ], "zk": [ "", "市" ], "1x": [ "", "ぉ" ], "2x": [ "", "阜" ], "3x": [ "", "律" ], "4x": [ "", "幼" ], "5x": [ "", "俺" ], "6x": [ "", "秒" ], "7x": [ "", "範" ], "8x": [ "", "核" ], "9x": [ "", "影" ], "0x": [ "", "麻" ], "'x": [ "", "族" ], ",x": [ "", "丁" ], ".x": [ "", "未" ], "px": [ "", "才" ], "yx": [ "", "返" ], "fx": [ "", "問" ], "gx": [ "", "ム" ], "cx": [ "", "七" ], "rx": [ "", "住" ], "lx": [ "", "北" ], "ax": [ "", "割" ], "ox": [ "", "ぶ" ], "ex": [ "", "番" ], "ux": [ "", "望" ], "ix": [ "", "元" ], "dx": [ "", "事" ], "hx": [ "", "田" ], "tx": [ "", "会" ], "nx": [ "", "前" ], "sx": [ "", "そ" ], ";x": [ "", "休" ], "qx": [ "", "省" ], "jx": [ "", "央" ], "kx": [ "", "福" ], "xx": [ "", "毎" ], "bx": [ "", "気" ], "mx": [ "", "売" ], "wx": [ "", "下" ], "vx": [ "", "都" ], "zx": [ "", "株" ], "1b": [ "", "欲" ], "2b": [ "", "巣" ], "3b": [ "", "茂" ], "4b": [ "", "述" ], "5b": [ "", "朗" ], "6b": [ "", "似" ], "7b": [ "", "臣" ], "8b": [ "", "灯" ], "9b": [ "", "牧" ], "0b": [ "", "往" ], "'b": [ "", "帰" ], ",b": [ "", "庁" ], ".b": [ "", "昨" ], "pb": [ "", "跡" ], "yb": [ "", "ゲ" ], "fb": [ "", "洗" ], "gb": [ "", "羽" ], "cb": [ "", "個" ], "rb": [ "", "医" ], "lb": [ "", "静" ], "ab": [ "", "億" ], "ob": [ "", "録" ], "eb": [ "", "赤" ], "ub": [ "", "想" ], "ib": [ "", "消" ], "db": [ "", "支" ], "hb": [ "", "協" ], "tb": [ "", "用" ], "nb": [ "", "表" ], "sb": [ "", "正" ], ";b": [ "", "図" ], "qb": [ "", "挙" ], "jb": [ "", "険" ], "kb": [ "", "ゼ" ], "xb": [ "", "波" ], "bb": [ "", "ヤ" ], "mb": [ "", "心" ], "wb": [ "", "界" ], "vb": [ "", "意" ], "zb": [ "", "今" ], "1m": [ "", "迫" ], "2m": [ "", "災" ], "3m": [ "", "恋" ], "4m": [ "", "脳" ], "5m": [ "", "老" ], "6m": [ "", "仮" ], "7m": [ "", "径" ], "8m": [ "", "束" ], "9m": [ "", "毒" ], "0m": [ "", "脈" ], "'m": [ "", "監" ], ",m": [ "", "寄" ], ".m": [ "", "裁" ], "pm": [ "", "達" ], "ym": [ "", "芝" ], "fm": [ "", "響" ], "gm": [ "", "忘" ], "cm": [ "", "討" ], "rm": [ "", "史" ], "lm": [ "", "環" ], "am": [ "", "色" ], "om": [ "", "貸" ], "em": [ "", "販" ], "um": [ "", "編" ], "im": [ "", "仕" ], "dm": [ "", "先" ], "hm": [ "", "多" ], "tm": [ "", "商" ], "nm": [ "", "ハ" ], "sm": [ "", "交" ], ";m": [ "", "之" ], "qm": [ "", "末" ], "jm": [ "", "ぼ" ], "km": [ "", "街" ], "xm": [ "", "免" ], "bm": [ "", "再" ], "mm": [ "", "ネ" ], "wm": [ "", "〜" ], "vm": [ "", "口" ], "zm": [ "", "台" ], "1w": [ "", "留" ], "2w": [ "", "列" ], "3w": [ "", "刻" ], "4w": [ "", "豆" ], "5w": [ "", "看" ], "6w": [ "", "潔" ], "7w": [ "", "菜" ], "8w": [ "", "孫" ], "9w": [ "", "梅" ], "0w": [ "", "勇" ], "'w": [ "", "竹" ], ",w": [ "", "注" ], ".w": [ "", "介" ], "pw": [ "", "具" ], "yw": [ "", "失" ], "fw": [ "", "司" ], "gw": [ "", "迎" ], "cw": [ "", "華" ], "rw": [ "", "許" ], "lw": [ "", "補" ], "aw": [ "", "左" ], "ow": [ "", "態" ], "ew": [ "", "花" ], "uw": [ "", "栄" ], "iw": [ "", "ザ" ], "dw": [ "", "調" ], "hw": [ "", "混" ], "tw": [ "", "ポ" ], "nw": [ "", "決" ], "sw": [ "", "ミ" ], ";w": [ "", "州" ], "qw": [ "", "払" ], "jw": [ "", "乗" ], "kw": [ "", "庫" ], "xw": [ "", "状" ], "bw": [ "", "団" ], "mw": [ "", "計" ], "ww": [ "", "夫" ], "vw": [ "", "食" ], "zw": [ "", "総" ], "1v": [ "", "替" ], "2v": [ "", "沼" ], "3v": [ "", "?" ], "4v": [ "", "辞" ], "5v": [ "", "献" ], "6v": [ "", "枝" ], "7v": [ "", "祝" ], "8v": [ "", "兆" ], "9v": [ "", "飯" ], "0v": [ "", "液" ], "'v": [ "", "ゅ" ], ",v": [ "", "修" ], ".v": [ "", "究" ], "pv": [ "", "答" ], "yv": [ "", "養" ], "fv": [ "", "復" ], "gv": [ "", "並" ], "cv": [ "", "浦" ], "rv": [ "", "ユ" ], "lv": [ "", "冷" ], "av": [ "", "ぬ" ], "ov": [ "", "展" ], "ev": [ "", "警" ], "uv": [ "", "型" ], "iv": [ "", "誰" ], "dv": [ "", "組" ], "hv": [ "", "選" ], "tv": [ "", "党" ], "nv": [ "", "択" ], "sv": [ "", "体" ], ";v": [ "", "例" ], "qv": [ "", "満" ], "jv": [ "", "津" ], "kv": [ "", "準" ], "xv": [ "", "遊" ], "bv": [ "", "戸" ], "mv": [ "", "ひ" ], "wv": [ "", "ょ" ], "vv": [ "", "価" ], "zv": [ "", "与" ], "1z": [ "", "還" ], "2z": [ "", "更" ], "3z": [ "", "占" ], "4z": [ "", "箱" ], "5z": [ "", "矢" ], "6z": [ "", "飼" ], "7z": [ "", "松" ], "8z": [ "", "腸" ], "9z": [ "", "粉" ], "0z": [ "", "恩" ], "'z": [ "", "志" ], ",z": [ "", "抜" ], ".z": [ "", "航" ], "pz": [ "", "層" ], "yz": [ "", "深" ], "fz": [ "", "担" ], "gz": [ "", "陸" ], "cz": [ "", "巻" ], "rz": [ "", "競" ], "lz": [ "", "護" ], "az": [ "", "根" ], "oz": [ "", "様" ], "ez": [ "", "独" ], "uz": [ "", "止" ], "iz": [ "", "堂" ], "dz": [ "", "銀" ], "hz": [ "", "以" ], "tz": [ "", "ヌ" ], "nz": [ "", "営" ], "sz": [ "", "治" ], ";z": [ "", "字" ], "qz": [ "", "材" ], "jz": [ "", "過" ], "kz": [ "", "諸" ], "xz": [ "", "単" ], "bz": [ "", "身" ], "mz": [ "", "ピ" ], "wz": [ "", "勝" ], "vz": [ "", "反" ], "zz": [ "", "ズ" ], " 11": [ "", "■" ], " 21": [ "", "■" ], " 31": [ "", "■" ], " 41": [ "", "■" ], " 51": [ "", "■" ], " 61": [ "", "■" ], " 71": [ "", "■" ], " 81": [ "", "■" ], " 91": [ "", "■" ], " 01": [ "", "■" ], " '1": [ "", "鷲" ], " ,1": [ "", "幇" ], " .1": [ "", "璃" ], " p1": [ "", "雁" ], " y1": [ "", "箇" ], " f1": [ "", "錆" ], " g1": [ "", "堺" ], " c1": [ "", "譜" ], " r1": [ "", "偵" ], " l1": [ "", "犀" ], " a1": [ "", "柏" ], " o1": [ "", "猪" ], " e1": [ "", "瑠" ], " u1": [ "", "翁" ], " i1": [ "", "糾" ], " d1": [ "", "旺" ], " h1": [ "", "靴" ], " t1": [ "", "煙" ], " n1": [ "", "肌" ], " s1": [ "", "捉" ], " ;1": [ "", "咳" ], " q1": [ "", "■" ], " j1": [ "", "■" ], " k1": [ "", "■" ], " x1": [ "", "昂" ], " b1": [ "", "憑" ], " m1": [ "", "藍" ], " w1": [ "", "惜" ], " v1": [ "", "煩" ], " z1": [ "", "■" ], " 12": [ "", "■" ], " 22": [ "", "■" ], " 32": [ "", "■" ], " 42": [ "", "■" ], " 52": [ "", "■" ], " 62": [ "", "■" ], " 72": [ "", "■" ], " 82": [ "", "■" ], " 92": [ "", "■" ], " 02": [ "", "■" ], " '2": [ "", "呪" ], " ,2": [ "", "杵" ], " .2": [ "", "■" ], " p2": [ "", "淵" ], " y2": [ "", "洩" ], " f2": [ "", "■" ], " g2": [ "", "謹" ], " c2": [ "", "浜" ], " r2": [ "", "貢" ], " l2": [ "", "猟" ], " a2": [ "", "■" ], " o2": [ "", "泥" ], " e2": [ "", "吃" ], " u2": [ "", "■" ], " i2": [ "", "棄" ], " d2": [ "", "溢" ], " h2": [ "", "■" ], " t2": [ "", "垣" ], " n2": [ "", "圏" ], " s2": [ "", "慌" ], " ;2": [ "", "祈" ], " q2": [ "", "緩" ], " j2": [ "", "■" ], " k2": [ "", "萎" ], " x2": [ "", "鼓" ], " b2": [ "", "縫" ], " m2": [ "", "爺" ], " w2": [ "", "■" ], " v2": [ "", "錯" ], " z2": [ "", "薫" ], " 13": [ "", "■" ], " 23": [ "", "■" ], " 33": [ "", "■" ], " 43": [ "", "■" ], " 53": [ "", "■" ], " 63": [ "", "■" ], " 73": [ "", "■" ], " 83": [ "", "■" ], " 93": [ "", "■" ], " 03": [ "", "■" ], " '3": [ "", "醜" ], " ,3": [ "", "嘘" ], " .3": [ "", "挟" ], " p3": [ "", "剃" ], " y3": [ "", "駕" ], " f3": [ "", "棟" ], " g3": [ "", "悦" ], " c3": [ "", "斡" ], " r3": [ "", "陵" ], " l3": [ "", "蜜" ], " a3": [ "", "綺" ], " o3": [ "", "咎" ], " e3": [ "", "麹" ], " u3": [ "", "■" ], " i3": [ "", "烹" ], " d3": [ "", "逮" ], " h3": [ "", "捷" ], " t3": [ "", "憬" ], " n3": [ "", "拠" ], " s3": [ "", "邪" ], " ;3": [ "", "■" ], " q3": [ "", "露" ], " j3": [ "", "詣" ], " k3": [ "", "斜" ], " x3": [ "", "酌" ], " b3": [ "", "醸" ], " m3": [ "", "貶" ], " w3": [ "", "莫" ], " v3": [ "", "堕" ], " z3": [ "", "駆" ], " 14": [ "", "■" ], " 24": [ "", "■" ], " 34": [ "", "■" ], " 44": [ "", "■" ], " 54": [ "", "■" ], " 64": [ "", "■" ], " 74": [ "", "■" ], " 84": [ "", "■" ], " 94": [ "", "■" ], " 04": [ "", "■" ], " '4": [ "", "弧" ], " ,4": [ "", "恥" ], " .4": [ "", "廣" ], " p4": [ "", "妃" ], " y4": [ "", "■" ], " f4": [ "", "帆" ], " g4": [ "", "喉" ], " c4": [ "", "軋" ], " r4": [ "", "慧" ], " l4": [ "", "頑" ], " a4": [ "", "朽" ], " o4": [ "", "■" ], " e4": [ "", "墾" ], " u4": [ "", "窮" ], " i4": [ "", "婚" ], " d4": [ "", "那" ], " h4": [ "", "踏" ], " t4": [ "", "蛮" ], " n4": [ "", "嘆" ], " s4": [ "", "峻" ], " ;4": [ "", "渦" ], " q4": [ "", "肝" ], " j4": [ "", "■" ], " k4": [ "", "勺" ], " x4": [ "", "斑" ], " b4": [ "", "禿" ], " m4": [ "", "乾" ], " w4": [ "", "諺" ], " v4": [ "", "衡" ], " z4": [ "", "且" ], " 15": [ "", "■" ], " 25": [ "", "■" ], " 35": [ "", "■" ], " 45": [ "", "■" ], " 55": [ "", "■" ], " 65": [ "", "■" ], " 75": [ "", "■" ], " 85": [ "", "■" ], " 95": [ "", "■" ], " 05": [ "", "■" ], " '5": [ "", "俸" ], " ,5": [ "", "媒" ], " .5": [ "", "痺" ], " p5": [ "", "朴" ], " y5": [ "", "■" ], " f5": [ "", "淫" ], " g5": [ "", "拒" ], " c5": [ "", "粗" ], " r5": [ "", "囁" ], " l5": [ "", "抑" ], " a5": [ "", "枕" ], " o5": [ "", "咥" ], " e5": [ "", "桑" ], " u5": [ "", "殻" ], " i5": [ "", "■" ], " d5": [ "", "酋" ], " h5": [ "", "櫛" ], " t5": [ "", "■" ], " n5": [ "", "炒" ], " s5": [ "", "削" ], " ;5": [ "", "排" ], " q5": [ "", "峠" ], " j5": [ "", "浸" ], " k5": [ "", "砦" ], " x5": [ "", "殿" ], " b5": [ "", "秤" ], " m5": [ "", "汗" ], " w5": [ "", "撒" ], " v5": [ "", "藁" ], " z5": [ "", "升" ], " 16": [ "", "■" ], " 26": [ "", "■" ], " 36": [ "", "■" ], " 46": [ "", "■" ], " 56": [ "", "■" ], " 66": [ "", "■" ], " 76": [ "", "■" ], " 86": [ "", "■" ], " 96": [ "", "■" ], " 06": [ "", "■" ], " '6": [ "", "糊" ], " ,6": [ "", "霊" ], " .6": [ "", "躇" ], " p6": [ "", "腎" ], " y6": [ "", "卿" ], " f6": [ "", "呑" ], " g6": [ "", "篇" ], " c6": [ "", "■" ], " r6": [ "", "■" ], " l6": [ "", "■" ], " a6": [ "", "賠" ], " o6": [ "", "■" ], " e6": [ "", "怒" ], " u6": [ "", "■" ], " i6": [ "", "唖" ], " d6": [ "", "寂" ], " h6": [ "", "脊" ], " t6": [ "", "吹" ], " n6": [ "", "拐" ], " s6": [ "", "畝" ], " ;6": [ "", "襟" ], " q6": [ "", "■" ], " j6": [ "", "吊" ], " k6": [ "", "旬" ], " x6": [ "", "楚" ], " b6": [ "", "朕" ], " m6": [ "", "肖" ], " w6": [ "", "沃" ], " v6": [ "", "辿" ], " z6": [ "", "吐" ], " 17": [ "", "■" ], " 27": [ "", "■" ], " 37": [ "", "■" ], " 47": [ "", "■" ], " 57": [ "", "■" ], " 67": [ "", "■" ], " 77": [ "", "■" ], " 87": [ "", "■" ], " 97": [ "", "■" ], " 07": [ "", "■" ], " '7": [ "", "尖" ], " ,7": [ "", "■" ], " .7": [ "", "逓" ], " p7": [ "", "揉" ], " y7": [ "", "■" ], " f7": [ "", "禽" ], " g7": [ "", "屑" ], " c7": [ "", "斤" ], " r7": [ "", "■" ], " l7": [ "", "宜" ], " a7": [ "", "紆" ], " o7": [ "", "瘍" ], " e7": [ "", "傑" ], " u7": [ "", "羅" ], " i7": [ "", "剥" ], " d7": [ "", "竄" ], " h7": [ "", "漕" ], " t7": [ "", "弾" ], " n7": [ "", "噂" ], " s7": [ "", "刃" ], " ;7": [ "", "繭" ], " q7": [ "", "披" ], " j7": [ "", "舷" ], " k7": [ "", "顧" ], " x7": [ "", "毅" ], " b7": [ "", "堵" ], " m7": [ "", "■" ], " w7": [ "", "毀" ], " v7": [ "", "畳" ], " z7": [ "", "仄" ], " 18": [ "", "■" ], " 28": [ "", "■" ], " 38": [ "", "■" ], " 48": [ "", "■" ], " 58": [ "", "■" ], " 68": [ "", "■" ], " 78": [ "", "■" ], " 88": [ "", "■" ], " 98": [ "", "■" ], " 08": [ "", "■" ], " '8": [ "", "滲" ], " ,8": [ "", "躊" ], " .8": [ "", "逐" ], " p8": [ "", "脆" ], " y8": [ "", "漠" ], " f8": [ "", "酎" ], " g8": [ "", "惹" ], " c8": [ "", "杖" ], " r8": [ "", "弥" ], " l8": [ "", "窯" ], " a8": [ "", "■" ], " o8": [ "", "填" ], " e8": [ "", "契" ], " u8": [ "", "肢" ], " i8": [ "", "傲" ], " d8": [ "", "鍋" ], " h8": [ "", "蟹" ], " t8": [ "", "伏" ], " n8": [ "", "■" ], " s8": [ "", "淋" ], " ;8": [ "", "准" ], " q8": [ "", "鷹" ], " j8": [ "", "捗" ], " k8": [ "", "胆" ], " x8": [ "", "餅" ], " b8": [ "", "畏" ], " m8": [ "", "舐" ], " w8": [ "", "仇" ], " v8": [ "", "貪" ], " z8": [ "", "■" ], " 19": [ "", "■" ], " 29": [ "", "■" ], " 39": [ "", "■" ], " 49": [ "", "■" ], " 59": [ "", "■" ], " 69": [ "", "■" ], " 79": [ "", "■" ], " 89": [ "", "■" ], " 99": [ "", "■" ], " 09": [ "", "■" ], " '9": [ "", "耐" ], " ,9": [ "", "汲" ], " .9": [ "", "偏" ], " p9": [ "", "幌" ], " y9": [ "", "迄" ], " f9": [ "", "闇" ], " g9": [ "", "孕" ], " c9": [ "", "茹" ], " r9": [ "", "僧" ], " l9": [ "", "簿" ], " a9": [ "", "鎖" ], " o9": [ "", "到" ], " e9": [ "", "繰" ], " u9": [ "", "丙" ], " i9": [ "", "鯨" ], " d9": [ "", "騎" ], " h9": [ "", "踊" ], " t9": [ "", "蒔" ], " n9": [ "", "弔" ], " s9": [ "", "腫" ], " ;9": [ "", "蹴" ], " q9": [ "", "屯" ], " j9": [ "", "渾" ], " k9": [ "", "坦" ], " x9": [ "", "韓" ], " b9": [ "", "孔" ], " m9": [ "", "賎" ], " w9": [ "", "錘" ], " v9": [ "", "墳" ], " z9": [ "", "卓" ], " 10": [ "", "■" ], " 20": [ "", "■" ], " 30": [ "", "■" ], " 40": [ "", "■" ], " 50": [ "", "■" ], " 60": [ "", "■" ], " 70": [ "", "■" ], " 80": [ "", "■" ], " 90": [ "", "■" ], " 00": [ "", "■" ], " '0": [ "", "宏" ], " ,0": [ "", "鎮" ], " .0": [ "", "粟" ], " p0": [ "", "斥" ], " y0": [ "", "遣" ], " f0": [ "", "蘭" ], " g0": [ "", "襲" ], " c0": [ "", "侵" ], " r0": [ "", "虜" ], " l0": [ "", "塁" ], " a0": [ "", "■" ], " o0": [ "", "■" ], " e0": [ "", "焙" ], " u0": [ "", "豚" ], " i0": [ "", "爵" ], " d0": [ "", "蕎" ], " h0": [ "", "叔" ], " t0": [ "", "伯" ], " n0": [ "", "嬢" ], " s0": [ "", "娘" ], " ;0": [ "", "絆" ], " q0": [ "", "粥" ], " j0": [ "", "踪" ], " k0": [ "", "腰" ], " x0": [ "", "膚" ], " b0": [ "", "酵" ], " m0": [ "", "狙" ], " w0": [ "", "萌" ], " v0": [ "", "■" ], " z0": [ "", "雅" ], " 1'": [ "", "■" ], " 2'": [ "", "悼" ], " 3'": [ "", "閑" ], " 4'": [ "", "哲" ], " 5'": [ "", "掴" ], " 6'": [ "", "酢" ], " 7'": [ "", "■" ], " 8'": [ "", "釜" ], " 9'": [ "", "穂" ], " 0'": [ "", "沸" ], " ''": [ "", "菓" ], " ,'": [ "", "酷" ], " .'": [ "", "溺" ], " p'": [ "", "晒" ], " y'": [ "", "濃" ], " f'": [ "", "這" ], " g'": [ "", "巡" ], " c'": [ "", "■" ], " r'": [ "", "嶋" ], " l'": [ "", "拓" ], " a'": [ "", "酬" ], " o'": [ "", "膜" ], " e'": [ "", "舘" ], " u'": [ "", "翳" ], " i'": [ "", "桁" ], " d'": [ "", "餌" ], " h'": [ "", "■" ], " t'": [ "", "隷" ], " n'": [ "", "■" ], " s'": [ "", "檸" ], " ;'": [ "", "陥" ], " q'": [ "", "蚊" ], " j'": [ "", "奴" ], " k'": [ "", "凄" ], " x'": [ "", "膳" ], " b'": [ "", "宰" ], " m'": [ "", "軒" ], " w'": [ "", "憧" ], " v'": [ "", "堆" ], " z'": [ "", "暦" ], " 1,": [ "", "兎" ], " 2,": [ "", "遭" ], " 3,": [ "", "塔" ], " 4,": [ "", "謁" ], " 5,": [ "", "鎌" ], " 6,": [ "", "■" ], " 7,": [ "", "痩" ], " 8,": [ "", "糞" ], " 9,": [ "", "憐" ], " 0,": [ "", "■" ], " ',": [ "", "慨" ], " ,,": [ "", "購" ], " .,": [ "", "疎" ], " p,": [ "", "袖" ], " y,": [ "", "没" ], " f,": [ "", "茸" ], " g,": [ "", "醤" ], " c,": [ "", "凶" ], " r,": [ "", "騰" ], " l,": [ "", "洞" ], " a,": [ "", "韻" ], " o,": [ "", "冠" ], " e,": [ "", "倣" ], " u,": [ "", "ゝ" ], " i,": [ "", "筈" ], " d,": [ "", "裾" ], " h,": [ "", "痒" ], " t,": [ "", "几" ], " n,": [ "", "箋" ], " s,": [ "", "荘" ], " ;,": [ "", "■" ], " q,": [ "", "釣" ], " j,": [ "", "恨" ], " k,": [ "", "据" ], " x,": [ "", "羞" ], " b,": [ "", "附" ], " m,": [ "", "冥" ], " w,": [ "", "狽" ], " v,": [ "", "■" ], " z,": [ "", "駄" ], " 1.": [ "", "嘲" ], " 2.": [ "", "椀" ], " 3.": [ "", "懐" ], " 4.": [ "", "鞄" ], " 5.": [ "", "辟" ], " 6.": [ "", "■" ], " 7.": [ "", "煮" ], " 8.": [ "", "顎" ], " 9.": [ "", "捺" ], " 0.": [ "", "宵" ], " '.": [ "", "賦" ], " ,.": [ "", "虐" ], " ..": [ "", "双" ], " p.": [ "", "■" ], " y.": [ "", "喝" ], " f.": [ "", "也" ], " g.": [ "", "抽" ], " c.": [ "", "拶" ], " r.": [ "", "掌" ], " l.": [ "", "俣" ], " a.": [ "", "餡" ], " o.": [ "", "屈" ], " e.": [ "", "惰" ], " u.": [ "", "魅" ], " i.": [ "", "殉" ], " d.": [ "", "■" ], " h.": [ "", "寡" ], " t.": [ "", "顰" ], " n.": [ "", "玩" ], " s.": [ "", "斂" ], " ;.": [ "", "恭" ], " q.": [ "", "髄" ], " j.": [ "", "薄" ], " k.": [ "", "項" ], " x.": [ "", "糧" ], " b.": [ "", "■" ], " m.": [ "", "匠" ], " w.": [ "", "蛸" ], " v.": [ "", "〒" ], " z.": [ "", "眺" ], " 1p": [ "", "姜" ], " 2p": [ "", "塀" ], " 3p": [ "", "■" ], " 4p": [ "", "遽" ], " 5p": [ "", "碑" ], " 6p": [ "", "旋" ], " 7p": [ "", "滞" ], " 8p": [ "", "勿" ], " 9p": [ "", "敏" ], " 0p": [ "", "■" ], " 'p": [ "", "嵐" ], " ,p": [ "", "皆" ], " .p": [ "", "罷" ], " pp": [ "", "倫" ], " yp": [ "", "噌" ], " fp": [ "", "珈" ], " gp": [ "", "凸" ], " cp": [ "", "箸" ], " rp": [ "", "廃" ], " lp": [ "", "坐" ], " ap": [ "", "脇" ], " op": [ "", "勃" ], " ep": [ "", "剣" ], " up": [ "", "筐" ], " ip": [ "", "撹" ], " dp": [ "", "畿" ], " hp": [ "", "朔" ], " tp": [ "", "晶" ], " np": [ "", "債" ], " sp": [ "", "弐" ], " ;p": [ "", "嫡" ], " qp": [ "", "哺" ], " jp": [ "", "■" ], " kp": [ "", "迂" ], " xp": [ "", "薦" ], " bp": [ "", "尻" ], " mp": [ "", "姓" ], " wp": [ "", "渓" ], " vp": [ "", "幾" ], " zp": [ "", "窒" ], " 1y": [ "", "■" ], " 2y": [ "", "奄" ], " 3y": [ "", "塞" ], " 4y": [ "", "愚" ], " 5y": [ "", "■" ], " 6y": [ "", "■" ], " 7y": [ "", "喚" ], " 8y": [ "", "焉" ], " 9y": [ "", "霜" ], " 0y": [ "", "■" ], " 'y": [ "", "些" ], " ,y": [ "", "枯" ], " .y": [ "", "痢" ], " py": [ "", "頁" ], " yy": [ "", "揶" ], " fy": [ "", "■" ], " gy": [ "", "稼" ], " cy": [ "", "侭" ], " ry": [ "", "睦" ], " ly": [ "", "淑" ], " ay": [ "", "岬" ], " oy": [ "", "淡" ], " ey": [ "", "虞" ], " uy": [ "", "■" ], " iy": [ "", "粒" ], " dy": [ "", "↑" ], " hy": [ "", "垢" ], " ty": [ "", "蜂" ], " ny": [ "", "怨" ], " sy": [ "", "■" ], " ;y": [ "", "婆" ], " qy": [ "", "窪" ], " jy": [ "", "姻" ], " ky": [ "", "酔" ], " xy": [ "", "■" ], " by": [ "", "颯" ], " my": [ "", "鍵" ], " wy": [ "", "■" ], " vy": [ "", "■" ], " zy": [ "", "挿" ], " 1f": [ "", "■" ], " 2f": [ "", "微" ], " 3f": [ "", "蝕" ], " 4f": [ "", "崇" ], " 5f": [ "", "鉢" ], " 6f": [ "", "臭" ], " 7f": [ "", "■" ], " 8f": [ "", "輻" ], " 9f": [ "", "澄" ], " 0f": [ "", "漫" ], " 'f": [ "", "阻" ], " ,f": [ "", "凭" ], " .f": [ "", "頓" ], " pf": [ "", "蔑" ], " yf": [ "", "■" ], " ff": [ "", "尉" ], " gf": [ "", "■" ], " cf": [ "", "薮" ], " rf": [ "", "廊" ], " lf": [ "", "冗" ], " af": [ "", "裸" ], " of": [ "", "艶" ], " ef": [ "", "赴" ], " uf": [ "", "倹" ], " if": [ "", "潤" ], " df": [ "", "麗" ], " hf": [ "", "是" ], " tf": [ "", "丼" ], " nf": [ "", "唐" ], " sf": [ "", "践" ], " ;f": [ "", "曝" ], " qf": [ "", "侶" ], " jf": [ "", "褐" ], " kf": [ "", "■" ], " xf": [ "", "此" ], " bf": [ "", "曾" ], " mf": [ "", "銃" ], " wf": [ "", "礁" ], " vf": [ "", "砲" ], " zf": [ "", "腐" ], " 1g": [ "", "■" ], " 2g": [ "", "彰" ], " 3g": [ "", "侯" ], " 4g": [ "", "徐" ], " 5g": [ "", "■" ], " 6g": [ "", "凍" ], " 7g": [ "", "柵" ], " 8g": [ "", "儒" ], " 9g": [ "", "詫" ], " 0g": [ "", "謎" ], " 'g": [ "", "■" ], " ,g": [ "", "誓" ], " .g": [ "", "鎚" ], " pg": [ "", "墜" ], " yg": [ "", "隅" ], " fg": [ "", "繋" ], " gg": [ "", "憂" ], " cg": [ "", "撮" ], " rg": [ "", "忙" ], " lg": [ "", "■" ], " ag": [ "", "妙" ], " og": [ "", "陪" ], " eg": [ "", "訂" ], " ug": [ "", "■" ], " ig": [ "", "稽" ], " dg": [ "", "泊" ], " hg": [ "", "癌" ], " tg": [ "", "焦" ], " ng": [ "", "廉" ], " sg": [ "", "函" ], " ;g": [ "", "暢" ], " qg": [ "", "溝" ], " jg": [ "", "彗" ], " kg": [ "", "■" ], " xg": [ "", "濯" ], " bg": [ "", "遥" ], " mg": [ "", "荻" ], " wg": [ "", "棋" ], " vg": [ "", "■" ], " zg": [ "", "■" ], " 1c": [ "", "愉" ], " 2c": [ "", "肯" ], " 3c": [ "", "噛" ], " 4c": [ "", "硯" ], " 5c": [ "", "厘" ], " 6c": [ "", "脂" ], " 7c": [ "", "蓋" ], " 8c": [ "", "轄" ], " 9c": [ "", "畜" ], " 0c": [ "", "←" ], " 'c": [ "", "槽" ], " ,c": [ "", "誘" ], " .c": [ "", "弦" ], " pc": [ "", "貼" ], " yc": [ "", "辛" ], " fc": [ "", "綴" ], " gc": [ "", "暁" ], " cc": [ "", "智" ], " rc": [ "", "■" ], " lc": [ "", "贈" ], " ac": [ "", "尽" ], " oc": [ "", "鑽" ], " ec": [ "", "疲" ], " uc": [ "", "纏" ], " ic": [ "", "股" ], " dc": [ "", "■" ], " hc": [ "", "搬" ], " tc": [ "", "辣" ], " nc": [ "", "殊" ], " sc": [ "", "凹" ], " ;c": [ "", "芦" ], " qc": [ "", "■" ], " jc": [ "", "忍" ], " kc": [ "", "腱" ], " xc": [ "", "梶" ], " bc": [ "", "秩" ], " mc": [ "", "娠" ], " wc": [ "", "錬" ], " vc": [ "", "捻" ], " zc": [ "", "雇" ], " 1r": [ "", "抱" ], " 2r": [ "", "鞘" ], " 3r": [ "", "■" ], " 4r": [ "", "囚" ], " 5r": [ "", "眠" ], " 6r": [ "", "紫" ], " 7r": [ "", "讃" ], " 8r": [ "", "埓" ], " 9r": [ "", "佇" ], " 0r": [ "", "姪" ], " 'r": [ "", "漬" ], " ,r": [ "", "呈" ], " .r": [ "", "遮" ], " pr": [ "", "抵" ], " yr": [ "", "滅" ], " fr": [ "", "檬" ], " gr": [ "", "■" ], " cr": [ "", "侍" ], " rr": [ "", "■" ], " lr": [ "", "狗" ], " ar": [ "", "遡" ], " or": [ "", "■" ], " er": [ "", "妖" ], " ur": [ "", "暫" ], " ir": [ "", "璽" ], " dr": [ "", "仙" ], " hr": [ "", "琵" ], " tr": [ "", "殴" ], " nr": [ "", "僅" ], " sr": [ "", "■" ], " ;r": [ "", "絞" ], " qr": [ "", "貞" ], " jr": [ "", "伺" ], " kr": [ "", "■" ], " xr": [ "", "俗" ], " br": [ "", "壁" ], " mr": [ "", "■" ], " wr": [ "", "■" ], " vr": [ "", "劾" ], " zr": [ "", "盲" ], " 1l": [ "", "昌" ], " 2l": [ "", "■" ], " 3l": [ "", "■" ], " 4l": [ "", "寃" ], " 5l": [ "", "罰" ], " 6l": [ "", "摘" ], " 7l": [ "", "渇" ], " 8l": [ "", "矛" ], " 9l": [ "", "昆" ], " 0l": [ "", "潜" ], " 'l": [ "", "■" ], " ,l": [ "", "炉" ], " .l": [ "", "堤" ], " pl": [ "", "胎" ], " yl": [ "", "■" ], " fl": [ "", "謬" ], " gl": [ "", "鹸" ], " cl": [ "", "握" ], " rl": [ "", "剖" ], " ll": [ "", "慕" ], " al": [ "", "詔" ], " ol": [ "", "偉" ], " el": [ "", "壮" ], " ul": [ "", "愕" ], " il": [ "", "■" ], " dl": [ "", "劣" ], " hl": [ "", "郭" ], " tl": [ "", "謳" ], " nl": [ "", "彙" ], " sl": [ "", "壇" ], " ;l": [ "", "■" ], " ql": [ "", "魔" ], " jl": [ "", "愁" ], " kl": [ "", "斐" ], " xl": [ "", "尿" ], " bl": [ "", "■" ], " ml": [ "", "■" ], " wl": [ "", "灘" ], " vl": [ "", "珍" ], " zl": [ "", "磯" ], " 1a": [ "", "駁" ], " 2a": [ "", "弄" ], " 3a": [ "", "輩" ], " 4a": [ "", "謙" ], " 5a": [ "", "凌" ], " 6a": [ "", "楼" ], " 7a": [ "", "瀕" ], " 8a": [ "", "鶏" ], " 9a": [ "", "■" ], " 0a": [ "", "碍" ], " 'a": [ "", "穫" ], " ,a": [ "", "■" ], " .a": [ "", "汰" ], " pa": [ "", "苑" ], " ya": [ "", "舟" ], " fa": [ "", "庸" ], " ga": [ "", "縞" ], " ca": [ "", "猛" ], " ra": [ "", "扇" ], " la": [ "", "錠" ], " aa": [ "", "痘" ], " oa": [ "", "■" ], " ea": [ "", "■" ], " ua": [ "", "椎" ], " ia": [ "", "慎" ], " da": [ "", "珊" ], " ha": [ "", "賭" ], " ta": [ "", "零" ], " na": [ "", "剃" ], " sa": [ "", "縷" ], " ;a": [ "", "琲" ], " qa": [ "", "氾" ], " ja": [ "", "捌" ], " ka": [ "", "敲" ], " xa": [ "", "覇" ], " ba": [ "", "燕" ], " ma": [ "", "猿" ], " wa": [ "", "叉" ], " va": [ "", "涼" ], " za": [ "", "馳" ], " 1o": [ "", "雛" ], " 2o": [ "", "偽" ], " 3o": [ "", "卦" ], " 4o": [ "", "厭" ], " 5o": [ "", "縛" ], " 6o": [ "", "■" ], " 7o": [ "", "■" ], " 8o": [ "", "■" ], " 9o": [ "", "■" ], " 0o": [ "", "搾" ], " 'o": [ "", "匿" ], " ,o": [ "", "雌" ], " .o": [ "", "■" ], " po": [ "", "耽" ], " yo": [ "", "■" ], " fo": [ "", "琶" ], " go": [ "", "薇" ], " co": [ "", "陳" ], " ro": [ "", "涯" ], " lo": [ "", "狼" ], " ao": [ "", "邸" ], " oo": [ "", "塾" ], " eo": [ "", "款" ], " uo": [ "", "奪" ], " io": [ "", "斗" ], " do": [ "", "樫" ], " ho": [ "", "恣" ], " to": [ "", "叩" ], " no": [ "", "壱" ], " so": [ "", "餓" ], " ;o": [ "", "■" ], " qo": [ "", "灸" ], " jo": [ "", "■" ], " ko": [ "", "蝿" ], " xo": [ "", "捏" ], " bo": [ "", "呂" ], " mo": [ "", "倶" ], " wo": [ "", "蔓" ], " vo": [ "", "芳" ], " zo": [ "", "燐" ], " 1e": [ "", "蛋" ], " 2e": [ "", "謀" ], " 3e": [ "", "瞰" ], " 4e": [ "", "■" ], " 5e": [ "", "猫" ], " 6e": [ "", "■" ], " 7e": [ "", "揺" ], " 8e": [ "", "稀" ], " 9e": [ "", "悟" ], " 0e": [ "", "擦" ], " 'e": [ "", "旨" ], " ,e": [ "", "■" ], " .e": [ "", "筒" ], " pe": [ "", "継" ], " ye": [ "", "妬" ], " fe": [ "", "鬱" ], " ge": [ "", "閏" ], " ce": [ "", "蹙" ], " re": [ "", "柔" ], " le": [ "", "稟" ], " ae": [ "", "■" ], " oe": [ "", "壌" ], " ee": [ "", "括" ], " ue": [ "", "葱" ], " ie": [ "", "惨" ], " de": [ "", "鋳" ], " he": [ "", "," ], " te": [ "", "罵" ], " ne": [ "", "瑚" ], " se": [ "", "吠" ], " ;e": [ "", "匙" ], " qe": [ "", "儀" ], " je": [ "", "簒" ], " ke": [ "", "伴" ], " xe": [ "", "懸" ], " be": [ "", "訛" ], " me": [ "", "磨" ], " we": [ "", "獅" ], " ve": [ "", "嗣" ], " ze": [ "", "匹" ], " 1u": [ "", "潰" ], " 2u": [ "", "蔽" ], " 3u": [ "", "飴" ], " 4u": [ "", "■" ], " 5u": [ "", "噴" ], " 6u": [ "", "豹" ], " 7u": [ "", "鈍" ], " 8u": [ "", "■" ], " 9u": [ "", "■" ], " 0u": [ "", "漂" ], " 'u": [ "", "欺" ], " ,u": [ "", "賂" ], " .u": [ "", "羨" ], " pu": [ "", "摺" ], " yu": [ "", "炎" ], " fu": [ "", "或" ], " gu": [ "", "仔" ], " cu": [ "", "苺" ], " ru": [ "", "奨" ], " lu": [ "", "崩" ], " au": [ "", "妥" ], " ou": [ "", "猶" ], " eu": [ "", "斬" ], " uu": [ "", "培" ], " iu": [ "", "柳" ], " du": [ "", "." ], " hu": [ "", "■" ], " tu": [ "", "塗" ], " nu": [ "", "蟻" ], " su": [ "", "壷" ], " ;u": [ "", "■" ], " qu": [ "", "贅" ], " ju": [ "", "艦" ], " ku": [ "", "紺" ], " xu": [ "", "粛" ], " bu": [ "", "罫" ], " mu": [ "", "訊" ], " wu": [ "", "枢" ], " vu": [ "", "雷" ], " zu": [ "", "獄" ], " 1i": [ "", "■" ], " 2i": [ "", "謂" ], " 3i": [ "", "串" ], " 4i": [ "", "威" ], " 5i": [ "", "幣" ], " 6i": [ "", "牢" ], " 7i": [ "", "剰" ], " 8i": [ "", "掘" ], " 9i": [ "", "撲" ], " 0i": [ "", "瞭" ], " 'i": [ "", "偲" ], " ,i": [ "", "■" ], " .i": [ "", "寛" ], " pi": [ "", "閃" ], " yi": [ "", "聴" ], " fi": [ "", "奔" ], " gi": [ "", "唆" ], " ci": [ "", "拉" ], " ri": [ "", "稿" ], " li": [ "", "■" ], " ai": [ "", "俊" ], " oi": [ "", "釦" ], " ei": [ "", "架" ], " ui": [ "", "■" ], " ii": [ "", "沙" ], " di": [ "", "■" ], " hi": [ "", "綻" ], " ti": [ "", "匂" ], " ni": [ "", "撫" ], " si": [ "", "■" ], " ;i": [ "", "舵" ], " qi": [ "", "控" ], " ji": [ "", "牲" ], " ki": [ "", "梗" ], " xi": [ "", "■" ], " bi": [ "", "■" ], " mi": [ "", "泡" ], " wi": [ "", "『" ], " vi": [ "", "悠" ], " zi": [ "", "塵" ], " 1d": [ "", "雀" ], " 2d": [ "", "迅" ], " 3d": [ "", "鴨" ], " 4d": [ "", "緻" ], " 5d": [ "", "凡" ], " 6d": [ "", "竿" ], " 7d": [ "", "惚" ], " 8d": [ "", "慈" ], " 9d": [ "", "浮" ], " 0d": [ "", "杞" ], " 'd": [ "", "疫" ], " ,d": [ "", "遂" ], " .d": [ "", "励" ], " pd": [ "", "遍" ], " yd": [ "", "僭" ], " fd": [ "", "霧" ], " gd": [ "", "楠" ], " cd": [ "", "漆" ], " rd": [ "", "繹" ], " ld": [ "", "唯" ], " ad": [ "", "煽" ], " od": [ "", "泌" ], " ed": [ "", "■" ], " ud": [ "", "曖" ], " id": [ "", "菅" ], " dd": [ "", "煎" ], " hd": [ "", "儲" ], " td": [ "", "蛍" ], " nd": [ "", "籠" ], " sd": [ "", "賄" ], " ;d": [ "", "玄" ], " qd": [ "", "駒" ], " jd": [ "", "■" ], " kd": [ "", "戚" ], " xd": [ "", "僚" ], " bd": [ "", "■" ], " md": [ "", "洪" ], " wd": [ "", "呟" ], " vd": [ "", "泰" ], " zd": [ "", "娯" ], " 1h": [ "", "■" ], " 2h": [ "", "亀" ], " 3h": [ "", "麓" ], " 4h": [ "", "■" ], " 5h": [ "", "訃" ], " 6h": [ "", "叫" ], " 7h": [ "", "皺" ], " 8h": [ "", "燥" ], " 9h": [ "", "■" ], " 0h": [ "", "■" ], " 'h": [ "", "恒" ], " ,h": [ "", "脹" ], " .h": [ "", "剤" ], " ph": [ "", "妨" ], " yh": [ "", "獲" ], " fh": [ "", "苔" ], " gh": [ "", "拭" ], " ch": [ "", "慄" ], " rh": [ "", "堰" ], " lh": [ "", "紳" ], " ah": [ "", "諭" ], " oh": [ "", "■" ], " eh": [ "", "肋" ], " uh": [ "", "■" ], " ih": [ "", "硫" ], " dh": [ "", "載" ], " hh": [ "", "鉛" ], " th": [ "", "勅" ], " nh": [ "", "逞" ], " sh": [ "", "■" ], " ;h": [ "", "髪" ], " qh": [ "", "劫" ], " jh": [ "", "呻" ], " kh": [ "", "堪" ], " xh": [ "", "佳" ], " bh": [ "", "僕" ], " mh": [ "", "檎" ], " wh": [ "", "狂" ], " vh": [ "", "託" ], " zh": [ "", "缶" ], " 1t": [ "", "隻" ], " 2t": [ "", "■" ], " 3t": [ "", "■" ], " 4t": [ "", "聘" ], " 5t": [ "", "李" ], " 6t": [ "", "■" ], " 7t": [ "", "睡" ], " 8t": [ "", "勘" ], " 9t": [ "", "撤" ], " 0t": [ "", "蛇" ], " 't": [ "", "禅" ], " ,t": [ "", "躓" ], " .t": [ "", "■" ], " pt": [ "", "湾" ], " yt": [ "", "篠" ], " ft": [ "", "喋" ], " gt": [ "", "挫" ], " ct": [ "", "腺" ], " rt": [ "", "埃" ], " lt": [ "", "矯" ], " at": [ "", "其" ], " ot": [ "", "嗜" ], " et": [ "", "昧" ], " ut": [ "", "■" ], " it": [ "", "訟" ], " dt": [ "", "歪" ], " ht": [ "", "忽" ], " tt": [ "", "繍" ], " nt": [ "", "弛" ], " st": [ "", "硬" ], " ;t": [ "", "勲" ], " qt": [ "", "桟" ], " jt": [ "", "傾" ], " kt": [ "", "烙" ], " xt": [ "", "魂" ], " bt": [ "", "蕪" ], " mt": [ "", "蛾" ], " wt": [ "", "燻" ], " vt": [ "", "狡" ], " zt": [ "", "碁" ], " 1n": [ "", "摯" ], " 2n": [ "", "■" ], " 3n": [ "", "儚" ], " 4n": [ "", "■" ], " 5n": [ "", "呆" ], " 6n": [ "", "■" ], " 7n": [ "", "趣" ], " 8n": [ "", "梱" ], " 9n": [ "", "琴" ], " 0n": [ "", "眉" ], " 'n": [ "", "亭" ], " ,n": [ "", "頒" ], " .n": [ "", "溶" ], " pn": [ "", "珠" ], " yn": [ "", "銘" ], " fn": [ "", "■" ], " gn": [ "", "罠" ], " cn": [ "", "蘇" ], " rn": [ "", "滴" ], " ln": [ "", "偶" ], " an": [ "", "脚" ], " on": [ "", "藻" ], " en": [ "", "筑" ], " un": [ "", "傍" ], " in": [ "", "曰" ], " dn": [ "", "滑" ], " hn": [ "", "促" ], " tn": [ "", "床" ], " nn": [ "", "泄" ], " sn": [ "", "拙" ], " ;n": [ "", "盆" ], " qn": [ "", "賓" ], " jn": [ "", "帥" ], " kn": [ "", "鋭" ], " xn": [ "", "跳" ], " bn": [ "", "〆" ], " mn": [ "", "璧" ], " wn": [ "", "衝" ], " vn": [ "", "■" ], " zn": [ "", "■" ], " 1s": [ "", "峰" ], " 2s": [ "", "錮" ], " 3s": [ "", "軟" ], " 4s": [ "", "曇" ], " 5s": [ "", "扉" ], " 6s": [ "", "躾" ], " 7s": [ "", "肘" ], " 8s": [ "", "濡" ], " 9s": [ "", "淘" ], " 0s": [ "", "祀" ], " 's": [ "", "滝" ], " ,s": [ "", "措" ], " .s": [ "", "叱" ], " ps": [ "", "挑" ], " ys": [ "", "■" ], " fs": [ "", "斯" ], " gs": [ "", "■" ], " cs": [ "", "齢" ], " rs": [ "", "剛" ], " ls": [ "", "罹" ], " as": [ "", "嫁" ], " os": [ "", "鍛" ], " es": [ "", "惑" ], " us": [ "", "頬" ], " is": [ "", "■" ], " ds": [ "", "坊" ], " hs": [ "", "■" ], " ts": [ "", "斎" ], " ns": [ "", "苛" ], " ss": [ "", "屁" ], " ;s": [ "", "云" ], " qs": [ "", "俄" ], " js": [ "", "■" ], " ks": [ "", "膠" ], " xs": [ "", "榊" ], " bs": [ "", "漸" ], " ms": [ "", "郊" ], " ws": [ "", "坪" ], " vs": [ "", "葦" ], " zs": [ "", "輝" ], " 1;": [ "", "牝" ], " 2;": [ "", "鮭" ], " 3;": [ "", "瓶" ], " 4;": [ "", "葛" ], " 5;": [ "", "■" ], " 6;": [ "", "甥" ], " 7;": [ "", "巾" ], " 8;": [ "", "勧" ], " 9;": [ "", "■" ], " 0;": [ "", "窃" ], " ';": [ "", "葵" ], " ,;": [ "", "亘" ], " .;": [ "", "遵" ], " p;": [ "", "崖" ], " y;": [ "", "腿" ], " f;": [ "", "■" ], " g;": [ "", "堅" ], " c;": [ "", "巷" ], " r;": [ "", "詮" ], " l;": [ "", "褒" ], " a;": [ "", "■" ], " o;": [ "", "網" ], " e;": [ "", "翠" ], " u;": [ "", "裕" ], " i;": [ "", "馴" ], " d;": [ "", "逝" ], " h;": [ "", "棺" ], " t;": [ "", "虹" ], " n;": [ "", "狐" ], " s;": [ "", "嫉" ], " ;;": [ "", "傭" ], " q;": [ "", "呉" ], " j;": [ "", "■" ], " k;": [ "", "頷" ], " x;": [ "", "超" ], " b;": [ "", "賊" ], " m;": [ "", "軌" ], " w;": [ "", "疼" ], " v;": [ "", "栗" ], " z;": [ "", "睨" ], " 1q": [ "", "咽" ], " 2q": [ "", "姫" ], " 3q": [ "", "閲" ], " 4q": [ "", "軸" ], " 5q": [ "", "■" ], " 6q": [ "", "■" ], " 7q": [ "", "砕" ], " 8q": [ "", "■" ], " 9q": [ "", "坑" ], " 0q": [ "", "播" ], " 'q": [ "", "戒" ], " ,q": [ "", "■" ], " .q": [ "", "尋" ], " pq": [ "", "隔" ], " yq": [ "", "傘" ], " fq": [ "", "悉" ], " gq": [ "", "靱" ], " cq": [ "", "汝" ], " rq": [ "", "犠" ], " lq": [ "", "透" ], " aq": [ "", "廷" ], " oq": [ "", "膝" ], " eq": [ "", "毬" ], " uq": [ "", "妓" ], " iq": [ "", "謄" ], " dq": [ "", "貫" ], " hq": [ "", "臆" ], " tq": [ "", "杜" ], " nq": [ "", "獣" ], " sq": [ "", "飽" ], " ;q": [ "", "■" ], " qq": [ "", "窺" ], " jq": [ "", "憾" ], " kq": [ "", "閾" ], " xq": [ "", "諦" ], " bq": [ "", "該" ], " mq": [ "", "埋" ], " wq": [ "", "爽" ], " vq": [ "", "烏" ], " zq": [ "", "■" ], " 1j": [ "", "瓜" ], " 2j": [ "", "虎" ], " 3j": [ "", "卯" ], " 4j": [ "", "葬" ], " 5j": [ "", "■" ], " 6j": [ "", "厨" ], " 7j": [ "", "紡" ], " 8j": [ "", "熾" ], " 9j": [ "", "嘱" ], " 0j": [ "", "裳" ], " 'j": [ "", "締" ], " ,j": [ "", "黎" ], " .j": [ "", "亮" ], " pj": [ "", "■" ], " yj": [ "", "灼" ], " fj": [ "", "薔" ], " gj": [ "", "■" ], " cj": [ "", "宍" ], " rj": [ "", "緯" ], " lj": [ "", "躍" ], " aj": [ "", "■" ], " oj": [ "", "帽" ], " ej": [ "", "勾" ], " uj": [ "", "墨" ], " ij": [ "", "■" ], " dj": [ "", "唾" ], " hj": [ "", "裡" ], " tj": [ "", "黙" ], " nj": [ "", "鴎" ], " sj": [ "", "膨" ], " ;j": [ "", "斉" ], " qj": [ "", "祥" ], " jj": [ "", "尤" ], " kj": [ "", "杯" ], " xj": [ "", "眩" ], " bj": [ "", "憫" ], " mj": [ "", "恰" ], " wj": [ "", "麺" ], " vj": [ "", "摂" ], " zj": [ "", "套" ], " 1k": [ "", "榎" ], " 2k": [ "", "峡" ], " 3k": [ "", "■" ], " 4k": [ "", "封" ], " 5k": [ "", "棘" ], " 6k": [ "", "怯" ], " 7k": [ "", "凝" ], " 8k": [ "", "痔" ], " 9k": [ "", "錦" ], " 0k": [ "", "距" ], " 'k": [ "", "詠" ], " ,k": [ "", "鐘" ], " .k": [ "", "怖" ], " pk": [ "", "瞥" ], " yk": [ "", "■" ], " fk": [ "", "悔" ], " gk": [ "", "隙" ], " ck": [ "", "揚" ], " rk": [ "", "韮" ], " lk": [ "", "妊" ], " ak": [ "", "婿" ], " ok": [ "", "俯" ], " ek": [ "", "冨" ], " uk": [ "", "殖" ], " ik": [ "", "槍" ], " dk": [ "", "薪" ], " hk": [ "", "』" ], " tk": [ "", "殆" ], " nk": [ "", "胞" ], " sk": [ "", "吾" ], " ;k": [ "", "刹" ], " qk": [ "", "蒐" ], " jk": [ "", "符" ], " kk": [ "", "諜" ], " xk": [ "", "閥" ], " bk": [ "", "諮" ], " mk": [ "", "幽" ], " wk": [ "", "靡" ], " vk": [ "", "涙" ], " zk": [ "", "柿" ], " 1x": [ "", "牡" ], " 2x": [ "", "埠" ], " 3x": [ "", "■" ], " 4x": [ "", "稚" ], " 5x": [ "", "漏" ], " 6x": [ "", "抄" ], " 7x": [ "", "疇" ], " 8x": [ "", "骸" ], " 9x": [ "", "幻" ], " 0x": [ "", "摩" ], " 'x": [ "", "■" ], " ,x": [ "", "寧" ], " .x": [ "", "■" ], " px": [ "", "■" ], " yx": [ "", "蛙" ], " fx": [ "", "拷" ], " gx": [ "", "挨" ], " cx": [ "", "癖" ], " rx": [ "", "■" ], " lx": [ "", "乖" ], " ax": [ "", "裂" ], " ox": [ "", "辱" ], " ex": [ "", "翻" ], " ux": [ "", "叶" ], " ix": [ "", "旦" ], " dx": [ "", "顛" ], " hx": [ "", "畔" ], " tx": [ "", "桧" ], " nx": [ "", "揃" ], " sx": [ "", "塑" ], " ;x": [ "", "憩" ], " qx": [ "", "懲" ], " jx": [ "", "芯" ], " kx": [ "", "祉" ], " xx": [ "", "侮" ], " bx": [ "", "雰" ], " mx": [ "", "嬉" ], " wx": [ "", "↓" ], " vx": [ "", "■" ], " zx": [ "", "菌" ], " 1b": [ "", "慾" ], " 2b": [ "", "窟" ], " 3b": [ "", "藪" ], " 4b": [ "", "叙" ], " 5b": [ "", "唄" ], " 6b": [ "", "贋" ], " 7b": [ "", "臥" ], " 8b": [ "", "燈" ], " 9b": [ "", "酪" ], " 0b": [ "", "■" ], " 'b": [ "", "掃" ], " ,b": [ "", "霞" ], " .b": [ "", "詐" ], " pb": [ "", "痕" ], " yb": [ "", "戴" ], " fb": [ "", "浄" ], " gb": [ "", "翼" ], " cb": [ "", "涸" ], " rb": [ "", "■" ], " lb": [ "", "騒" ], " ab": [ "", "憶" ], " ob": [ "", "禄" ], " eb": [ "", "嚇" ], " ub": [ "", "妄" ], " ib": [ "", "耗" ], " db": [ "", "伎" ], " hb": [ "", "■" ], " tb": [ "", "■" ], " nb": [ "", "■" ], " sb": [ "", "征" ], " ;b": [ "", "鑑" ], " qb": [ "", "拳" ], " jb": [ "", "冒" ], " kb": [ "", "■" ], " xb": [ "", "浪" ], " bb": [ "", "冶" ], " mb": [ "", "衷" ], " wb": [ "", "租" ], " vb": [ "", "随" ], " zb": [ "", "吟" ], " 1m": [ "", "逼" ], " 2m": [ "", "厄" ], " 3m": [ "", "憎" ], " 4m": [ "", "悩" ], " 5m": [ "", "鞭" ], " 6m": [ "", "狩" ], " 7m": [ "", "怪" ], " 8m": [ "", "拘" ], " 9m": [ "", "膏" ], " 0m": [ "", "拍" ], " 'm": [ "", "濫" ], " ,m": [ "", "椅" ], " .m": [ "", "栽" ], " pm": [ "", "闊" ], " ym": [ "", "柴" ], " fm": [ "", "饗" ], " gm": [ "", "忌" ], " cm": [ "", "■" ], " rm": [ "", "吏" ], " lm": [ "", "循" ], " am": [ "", "彩" ], " om": [ "", "庇" ], " em": [ "", "賑" ], " um": [ "", "騙" ], " im": [ "", "■" ], " dm": [ "", "銑" ], " hm": [ "", "頻" ], " tm": [ "", "橘" ], " nm": [ "", "只" ], " sm": [ "", "盃" ], " ;m": [ "", "乏" ], " qm": [ "", "抹" ], " jm": [ "", "肪" ], " km": [ "", "■" ], " xm": [ "", "挽" ], " bm": [ "", "甦" ], " mm": [ "", "■" ], " wm": [ "", "跨" ], " vm": [ "", "唇" ], " zm": [ "", "怠" ], " 1w": [ "", "溜" ], " 2w": [ "", "烈" ], " 3w": [ "", "彫" ], " 4w": [ "", "芋" ], " 5w": [ "", "診" ], " 6w": [ "", "■" ], " 7w": [ "", "采" ], " 8w": [ "", "遜" ], " 9w": [ "", "桃" ], " 0w": [ "", "湧" ], " 'w": [ "", "笹" ], " ,w": [ "", "註" ], " .w": [ "", "芥" ], " pw": [ "", "惧" ], " yw": [ "", "喪" ], " fw": [ "", "覗" ], " gw": [ "", "仰" ], " cw": [ "", "奢" ], " rw": [ "", "諾" ], " lw": [ "", "■" ], " aw": [ "", "楕" ], " ow": [ "", "擬" ], " ew": [ "", "咲" ], " uw": [ "", "誉" ], " iw": [ "", "■" ], " dw": [ "", "凋" ], " hw": [ "", "掻" ], " tw": [ "", "■" ], " nw": [ "", "掟" ], " sw": [ "", "蚤" ], " ;w": [ "", "洲" ], " qw": [ "", "祓" ], " jw": [ "", "搭" ], " kw": [ "", "■" ], " xw": [ "", "症" ], " bw": [ "", "塊" ], " mw": [ "", "什" ], " ww": [ "", "■" ], " vw": [ "", "飢" ], " zw": [ "", "聡" ], " 1v": [ "", "■" ], " 2v": [ "", "召" ], " 3v": [ "", "痴" ], " 4v": [ "", "■" ], " 5v": [ "", "■" ], " 6v": [ "", "刈" ], " 7v": [ "", "■" ], " 8v": [ "", "銚" ], " 9v": [ "", "炊" ], " 0v": [ "", "汁" ], " 'v": [ "", "揄" ], " ,v": [ "", "繕" ], " .v": [ "", "■" ], " pv": [ "", "楷" ], " yv": [ "", "扶" ], " fv": [ "", "覆" ], " gv": [ "", "■" ], " cv": [ "", "蒲" ], " rv": [ "", "諧" ], " lv": [ "", "醒" ], " av": [ "", "狸" ], " ov": [ "", "■" ], " ev": [ "", "嗅" ], " uv": [ "", "枠" ], " iv": [ "", "■" ], " dv": [ "", "■" ], " hv": [ "", "撰" ], " tv": [ "", "■" ], " nv": [ "", "■" ], " sv": [ "", "胴" ], " ;v": [ "", "喩" ], " qv": [ "", "詰" ], " jv": [ "", "■" ], " kv": [ "", "■" ], " xv": [ "", "戯" ], " bv": [ "", "籍" ], " mv": [ "", "樋" ], " wv": [ "", "■" ], " vv": [ "", "■" ], " zv": [ "", "貰" ], " 1z": [ "", "■" ], " 2z": [ "", "迭" ], " 3z": [ "", "粘" ], " 4z": [ "", "棚" ], " 5z": [ "", "疾" ], " 6z": [ "", "鵜" ], " 7z": [ "", "■" ], " 8z": [ "", "賜" ], " 9z": [ "", "紛" ], " 0z": [ "", "赦" ], " 'z": [ "", "篤" ], " ,z": [ "", "栓" ], " .z": [ "", "舶" ], " pz": [ "", "曽" ], " yz": [ "", "■" ], " fz": [ "", "但" ], " gz": [ "", "隆" ], " cz": [ "", "捲" ], " rz": [ "", "■" ], " lz": [ "", "擁" ], " az": [ "", "茎" ], " oz": [ "", "紋" ], " ez": [ "", "逸" ], " uz": [ "", "釘" ], " iz": [ "", "■" ], " dz": [ "", "箔" ], " hz": [ "", "■" ], " tz": [ "", "叡" ], " nz": [ "", "■" ], " sz": [ "", "癒" ], " ;z": [ "", "苗" ], " qz": [ "", "■" ], " jz": [ "", "禍" ], " kz": [ "", "緒" ], " xz": [ "", "匁" ], " bz": [ "", "艇" ], " mz": [ "", "鄙" ], " wz": [ "", "兜" ], " vz": [ "", "叛" ], " zz": [ "", "■" ], "1 ": [ "", "1" ], "2 ": [ "", "2" ], "3 ": [ "", "3" ], "4 ": [ "", "4" ], "5 ": [ "", "5" ], "6 ": [ "", "6" ], "7 ": [ "", "7" ], "8 ": [ "", "8" ], "9 ": [ "", "9" ], "0 ": [ "", "0" ], "' ": [ "", "'" ], ", ": [ "", "," ], ". ": [ "", "." ], "p ": [ "", "p" ], "y ": [ "", "y" ], "f ": [ "", "f" ], "g ": [ "", "g" ], "c ": [ "", "c" ], "r ": [ "", "r" ], "l ": [ "", "l" ], "a ": [ "", "a" ], "o ": [ "", "o" ], "e ": [ "", "e" ], "u ": [ "", "u" ], "i ": [ "", "i" ], "d ": [ "", "d" ], "h ": [ "", "h" ], "t ": [ "", "t" ], "n ": [ "", "n" ], "s ": [ "", "s" ], "; ": [ "", ";" ], "q ": [ "", "q" ], "j ": [ "", "j" ], "k ": [ "", "k" ], "x ": [ "", "x" ], "b ": [ "", "b" ], "m ": [ "", "m" ], "w ": [ "", "w" ], "v ": [ "", "v" ], "z ": [ "", "z" ], " ": [ "", " " ] } } } libkkc-0.3.5/data/rules/tutcode-touch16x/000077500000000000000000000000001244473050600201545ustar00rootroot00000000000000libkkc-0.3.5/data/rules/tutcode-touch16x/Makefile.am000066400000000000000000000010451244473050600222100ustar00rootroot00000000000000rulesdir = $(pkgdatadir)/rules/tutcode-touch16x files = \ keymap/hankaku-katakana.json \ keymap/hiragana.json \ keymap/katakana.json \ keymap/latin.json \ keymap/wide-latin.json \ rom-kana/default.json \ $(NULL) metadata_in = \ metadata.json.in \ $(NULL) nobase_rules_DATA = \ $(files) \ $(metadata_in:.in=) \ $(NULL) EXTRA_DIST = \ $(files) \ $(metadata_in) \ $(NULL) CLEANFILES = \ metadata.json \ $(NULL) -include $(top_srcdir)/data/rules/rule.mk -include $(top_srcdir)/git.mk libkkc-0.3.5/data/rules/tutcode-touch16x/keymap/000077500000000000000000000000001244473050600214425ustar00rootroot00000000000000libkkc-0.3.5/data/rules/tutcode-touch16x/keymap/hankaku-katakana.json000066400000000000000000000000651244473050600255310ustar00rootroot00000000000000{ "include": [ "tutcode/default" ] } libkkc-0.3.5/data/rules/tutcode-touch16x/keymap/hiragana.json000066400000000000000000000000651244473050600241100ustar00rootroot00000000000000{ "include": [ "tutcode/default" ] } libkkc-0.3.5/data/rules/tutcode-touch16x/keymap/katakana.json000066400000000000000000000000651244473050600241110ustar00rootroot00000000000000{ "include": [ "tutcode/default" ] } libkkc-0.3.5/data/rules/tutcode-touch16x/keymap/latin.json000066400000000000000000000000651244473050600234450ustar00rootroot00000000000000{ "include": [ "tutcode/default" ] } libkkc-0.3.5/data/rules/tutcode-touch16x/keymap/wide-latin.json000066400000000000000000000000651244473050600243730ustar00rootroot00000000000000{ "include": [ "tutcode/default" ] } libkkc-0.3.5/data/rules/tutcode-touch16x/metadata.json.in000066400000000000000000000001671244473050600232400ustar00rootroot00000000000000{ "name": _("TUT-Code (Touch16+)"), "description": _("TUT-Code with Touch16+ extension"), "priority": 10 } libkkc-0.3.5/data/rules/tutcode-touch16x/rom-kana/000077500000000000000000000000001244473050600216615ustar00rootroot00000000000000libkkc-0.3.5/data/rules/tutcode-touch16x/rom-kana/default.json000066400000000000000000000006351244473050600242040ustar00rootroot00000000000000{ "include": [ "tutcode/default" ], "define": { "rom-kana": { "tld": [ "", "ぱ" ], "tle": [ "", "ぴ" ], "tlr": [ "", "ぷ" ], "tlg": [ "", "ぺ" ], "tlf": [ "", "ぽ" ], "dlr": [ "", "づ" ], "alu": [ "", "ヴ" ], "eld": [ "", "ヵ" ], "elg": [ "", "ヶ" ] } } } libkkc-0.3.5/data/rules/tutcode/000077500000000000000000000000001244473050600164755ustar00rootroot00000000000000libkkc-0.3.5/data/rules/tutcode/Makefile.am000066400000000000000000000010341244473050600205270ustar00rootroot00000000000000rulesdir = $(pkgdatadir)/rules/tutcode files = \ keymap/hankaku-katakana.json \ keymap/hiragana.json \ keymap/katakana.json \ keymap/latin.json \ keymap/wide-latin.json \ rom-kana/default.json \ $(NULL) metadata_in = \ metadata.json.in \ $(NULL) nobase_rules_DATA = \ $(files) \ $(metadata_in:.in=) \ $(NULL) EXTRA_DIST = \ $(files) \ $(metadata_in) \ $(NULL) CLEANFILES = \ metadata.json \ $(NULL) -include $(top_srcdir)/data/rules/rule.mk -include $(top_srcdir)/git.mk libkkc-0.3.5/data/rules/tutcode/keymap/000077500000000000000000000000001244473050600177635ustar00rootroot00000000000000libkkc-0.3.5/data/rules/tutcode/keymap/hankaku-katakana.json000066400000000000000000000000651244473050600240520ustar00rootroot00000000000000{ "include": [ "default/default" ] } libkkc-0.3.5/data/rules/tutcode/keymap/hiragana.json000066400000000000000000000000651244473050600224310ustar00rootroot00000000000000{ "include": [ "default/default" ] } libkkc-0.3.5/data/rules/tutcode/keymap/katakana.json000066400000000000000000000000651244473050600224320ustar00rootroot00000000000000{ "include": [ "default/default" ] } libkkc-0.3.5/data/rules/tutcode/keymap/latin.json000066400000000000000000000000651244473050600217660ustar00rootroot00000000000000{ "include": [ "default/default" ] } libkkc-0.3.5/data/rules/tutcode/keymap/wide-latin.json000066400000000000000000000000651244473050600227140ustar00rootroot00000000000000{ "include": [ "default/default" ] } libkkc-0.3.5/data/rules/tutcode/metadata.json.in000066400000000000000000000003111244473050600215500ustar00rootroot00000000000000{ "name": _("TUT-Code"), "description": _("Japanese direct input method developed by Hajime Ohiwa and Takaaki Takashima "), "priority": 10 } libkkc-0.3.5/data/rules/tutcode/rom-kana/000077500000000000000000000000001244473050600202025ustar00rootroot00000000000000libkkc-0.3.5/data/rules/tutcode/rom-kana/default.json000066400000000000000000002556371244473050600225430ustar00rootroot00000000000000{ "define": { "rom-kana": { "rk": [ "", "あ" ], "rlk": [ "", "ぁ" ], "ek": [ "", "か" ], "elk": [ "", "が" ], "sk": [ "", "さ" ], "slk": [ "", "ざ" ], "dk": [ "", "た" ], "dlk": [ "", "だ" ], "fk": [ "", "な" ], "tk": [ "", "は" ], "tlk": [ "", "ば" ], "tltk": [ "", "ぱ" ], "wk": [ "", "ま" ], "qk": [ "", "や" ], "qlk": [ "", "ゃ" ], "gk": [ "", "ら" ], "ak": [ "", "わ" ], "alk": [ "", "ゎ" ], "ri": [ "", "い" ], "rli": [ "", "ぃ" ], "ei": [ "", "き" ], "eli": [ "", "ぎ" ], "si": [ "", "し" ], "sli": [ "", "じ" ], "di": [ "", "ち" ], "dli": [ "", "ぢ" ], "fi": [ "", "に" ], "ti": [ "", "ひ" ], "tli": [ "", "び" ], "tlti": [ "", "ぴ" ], "wi": [ "", "み" ], "gi": [ "", "り" ], "ai": [ "", "ゐ" ], "ru": [ "", "う" ], "rlu": [ "", "ぅ" ], "eu": [ "", "く" ], "elu": [ "", "ぐ" ], "su": [ "", "す" ], "slu": [ "", "ず" ], "du": [ "", "つ" ], "dlu": [ "", "っ" ], "dldu": [ "", "づ" ], "fu": [ "", "ぬ" ], "tu": [ "", "ふ" ], "tlu": [ "", "ぶ" ], "tltu": [ "", "ぷ" ], "wu": [ "", "む" ], "qu": [ "", "ゆ" ], "qlu": [ "", "ゅ" ], "gu": [ "", "る" ], "rh": [ "", "え" ], "rlh": [ "", "ぇ" ], "eh": [ "", "け" ], "elh": [ "", "げ" ], "sh": [ "", "せ" ], "slh": [ "", "ぜ" ], "dh": [ "", "て" ], "dlh": [ "", "で" ], "fh": [ "", "ね" ], "th": [ "", "へ" ], "tlh": [ "", "べ" ], "tlth": [ "", "ぺ" ], "wh": [ "", "め" ], "gh": [ "", "れ" ], "ah": [ "", "ゑ" ], "rj": [ "", "お" ], "rlj": [ "", "ぉ" ], "ej": [ "", "こ" ], "elj": [ "", "ご" ], "sj": [ "", "そ" ], "slj": [ "", "ぞ" ], "dj": [ "", "と" ], "dlj": [ "", "ど" ], "fj": [ "", "の" ], "tj": [ "", "ほ" ], "tlj": [ "", "ぼ" ], "tltj": [ "", "ぽ" ], "wj": [ "", "も" ], "qj": [ "", "よ" ], "qlj": [ "", "ょ" ], "gj": [ "", "ろ" ], "aj": [ "", "を" ], "fl": [ "", "ん" ], "rlru": [ "", "ヴ" ], "eleh": [ "", "ヶ" ], "elek": [ "", "ヵ" ], "/ ": [ "", "/" ], "q ": [ "", "“" ], "w ": [ "", "〒" ], "e ": [ "", "ー" ], "r ": [ "", "(" ], "u ": [ "", ")" ], "i ": [ "", "…" ], "o ": [ "", "・" ], "p ": [ "", "”" ], "a ": [ "", "‘" ], "s ": [ "", "☆" ], "j ": [ "", "々" ], "k ": [ "", "※" ], "l ": [ "", "\" ], "; ": [ "", "’" ], "z ": [ "", "〆" ], "x ": [ "", "§" ], "c ": [ "", "〇" ], "v ": [ "", "【" ], "m ": [ "", "】" ], ", ": [ "", "《" ], ". ": [ "", "》" ], "t ": [ "", "「" ], "y ": [ "", "」" ], "g ": [ "", "『" ], "h ": [ "", "』" ], "b ": [ "", "←" ], "n ": [ "", "→" ], "zz": [ "", "雑" ], "xz": [ "", "推" ], "cz": [ "", "渡" ], "vz": [ "", "効" ], "bz": [ "", "宇" ], "nz": [ "", "振" ], "mz": [ "", "鉱" ], ",z": [ "", "敷" ], "az": [ "", "星" ], "sz": [ "", "許" ], "dz": [ "", "街" ], "fz": [ "", "鈴" ], "gz": [ "", "帝" ], "hz": [ "", "精" ], "jz": [ "", "友" ], "kz": [ "", "収" ], "qz": [ "", "返" ], "wz": [ "", "競" ], "ez": [ "", "母" ], "rz": [ "", "熱" ], "tz": [ "", "退" ], "yz": [ "", "企" ], "uz": [ "", "服" ], "iz": [ "", "鋼" ], ".z": [ "", "融" ], "/z": [ "", "浦" ], "lz": [ "", "寺" ], ";z": [ "", "履" ], "oz": [ "", "停" ], "pz": [ "", "州" ], "zx": [ "", "刊" ], "xx": [ "", "徳" ], "cx": [ "", "登" ], "vx": [ "", "冷" ], "bx": [ "", "響" ], "nx": [ "", "津" ], "mx": [ "", "塚" ], ",x": [ "", "尾" ], "ax": [ "", "族" ], "sx": [ "", "従" ], "dx": [ "", "堂" ], "fx": [ "", "兵" ], "gx": [ "", "監" ], "hx": [ "", "浜" ], "jx": [ "", "戸" ], "kx": [ "", "料" ], "qx": [ "", "祭" ], "wx": [ "", "訪" ], "ex": [ "", "諸" ], "rx": [ "", "修" ], "tx": [ "", "版" ], "yx": [ "", "伊" ], "ux": [ "", "週" ], "ix": [ "", "階" ], ".x": [ "", "竹" ], "/x": [ "", "泉" ], "lx": [ "", "火" ], ";x": [ "", "坂" ], "ox": [ "", "労" ], "px": [ "", "板" ], "zc": [ "", "酒" ], "xc": [ "", "御" ], "cc": [ "", "守" ], "vc": [ "", "程" ], "bc": [ "", "史" ], "nc": [ "", "草" ], "mc": [ "", "条" ], ",c": [ "", "栄" ], "ac": [ "", "賃" ], "sc": [ "", "晴" ], "dc": [ "", "独" ], "fc": [ "", "観" ], "gc": [ "", "変" ], "hc": [ "", "南" ], "jc": [ "", "谷" ], "kc": [ "", "道" ], "qc": [ "", "曇" ], "wc": [ "", "注" ], "ec": [ "", "免" ], "rc": [ "", "茶" ], "tc": [ "", "昨" ], "yc": [ "", "科" ], "uc": [ "", "屋" ], "ic": [ "", "映" ], ".c": [ "", "庫" ], "/c": [ "", "波" ], "lc": [ "", "共" ], ";c": [ "", "江" ], "oc": [ "", "阪" ], "pc": [ "", "昇" ], "nv": [ "", "芝" ], "mv": [ "", "幸" ], ",v": [ "", "玉" ], "hv": [ "", "横" ], "jv": [ "", "台" ], "kv": [ "", "橋" ], "yv": [ "", "央" ], "uv": [ "", "池" ], "iv": [ "", "制" ], ".v": [ "", "曜" ], "/v": [ "", "環" ], "lv": [ "", "武" ], ";v": [ "", "宝" ], "ov": [ "", "証" ], "pv": [ "", "浅" ], "nb": [ "", "岩" ], "mb": [ "", "城" ], ",b": [ "", "永" ], "hb": [ "", "軍" ], "jb": [ "", "土" ], "kb": [ "", "神" ], "yb": [ "", "昭" ], "ub": [ "", "宮" ], "ib": [ "", "職" ], ".b": [ "", "秋" ], "/b": [ "", "陸" ], "lb": [ "", "造" ], ";b": [ "", "芸" ], "ob": [ "", "雄" ], "pb": [ "", "春" ], "ng": [ "", "次" ], "mg": [ "", "宅" ], ",g": [ "", "村" ], "hg": [ "", "円" ], "jg": [ "", "四" ], "kg": [ "", "十" ], "yg": [ "", "内" ], "ug": [ "", "千" ], "ig": [ "", "分" ], ".g": [ "", "古" ], "/g": [ "", "袋" ], "lg": [ "", "面" ], ";g": [ "", "教" ], "og": [ "", "立" ], "pg": [ "", "外" ], "zn": [ "", "負" ], "xn": [ "", "認" ], "cn": [ "", "愛" ], "vn": [ "", "着" ], "bn": [ "", "消" ], "an": [ "", "助" ], "sn": [ "", "性" ], "dn": [ "", "話" ], "fn": [ "", "語" ], "gn": [ "", "点" ], "qn": [ "", "必" ], "wn": [ "", "官" ], "en": [ "", "治" ], "rn": [ "", "先" ], "tn": [ "", "初" ], "zm": [ "", "失" ], "xm": [ "", "想" ], "cm": [ "", "流" ], "vm": [ "", "検" ], "bm": [ "", "再" ], "am": [ "", "写" ], "sm": [ "", "募" ], "dm": [ "", "作" ], "fm": [ "", "交" ], "gm": [ "", "重" ], "qm": [ "", "講" ], "wm": [ "", "府" ], "em": [ "", "談" ], "rm": [ "", "協" ], "tm": [ "", "反" ], "z,": [ "", "起" ], "x,": [ "", "命" ], "c,": [ "", "説" ], "v,": [ "", "婦" ], "b,": [ "", "言" ], "n,": [ "", "署" ], "m,": [ "", "害" ], ",,": [ "", "個" ], "a,": [ "", "権" ], "s,": [ "", "選" ], "d,": [ "", "売" ], "f,": [ "", "店" ], "g,": [ "", "男" ], "h,": [ "", "含" ], "j,": [ "", "聞" ], "k,": [ "", "件" ], "q,": [ "", "使" ], "w,": [ "", "真" ], "e,": [ "", "開" ], "r,": [ "", "決" ], "t,": [ "", "美" ], "y,": [ "", "隊" ], "u,": [ "", "飛" ], "i,": [ "", "航" ], ".,": [ "", "巻" ], "/,": [ "", "雨" ], "l,": [ "", "師" ], ";,": [ "", "低" ], "o,": [ "", "寄" ], "p,": [ "", "満" ], "za": [ "", "奏" ], "xa": [ "", "示" ], "ca": [ "", "児" ], "va": [ "", "志" ], "ba": [ "", "未" ], "na": [ "", "研" ], "ma": [ "", "葉" ], ",a": [ "", "倉" ], "aa": [ "", "深" ], "sa": [ "", "管" ], "da": [ "", "勤" ], "fa": [ "", "増" ], "ga": [ "", "習" ], "ha": [ "", "藤" ], "ja": [ "", "付" ], "ka": [ "", "経" ], "qa": [ "", "念" ], "wa": [ "", "右" ], "ea": [ "", "残" ], "ra": [ "", "赤" ], "ta": [ "", "形" ], "ya": [ "", "遇" ], "ua": [ "", "井" ], "ia": [ "", "島" ], ".a": [ "", "菱" ], "/a": [ "", "浴" ], "la": [ "", "正" ], ";a": [ "", "賞" ], "oa": [ "", "士" ], "pa": [ "", "坪" ], "zs": [ "", "医" ], "xs": [ "", "単" ], "cs": [ "", "貸" ], "vs": [ "", "追" ], "bs": [ "", "挙" ], "ns": [ "", "丸" ], "ms": [ "", "卒" ], ",s": [ "", "朝" ], "as": [ "", "毎" ], "ss": [ "", "福" ], "ds": [ "", "他" ], "fs": [ "", "米" ], "gs": [ "", "利" ], "hs": [ "", "代" ], "js": [ "", "月" ], "ks": [ "", "田" ], "qs": [ "", "税" ], "ws": [ "", "質" ], "es": [ "", "団" ], "rs": [ "", "参" ], "ts": [ "", "基" ], "ys": [ "", "機" ], "us": [ "", "野" ], "is": [ "", "前" ], ".s": [ "", "農" ], "/s": [ "", "億" ], "ls": [ "", "後" ], ";s": [ "", "商" ], "os": [ "", "百" ], "ps": [ "", "接" ], "zd": [ "", "評" ], "xd": [ "", "庭" ], "cd": [ "", "改" ], "vd": [ "", "役" ], "bd": [ "", "花" ], "nd": [ "", "急" ], "md": [ "", "海" ], ",d": [ "", "市" ], "ad": [ "", "約" ], "sd": [ "", "有" ], "dd": [ "", "全" ], "fd": [ "", "自" ], "gd": [ "", "住" ], "hd": [ "", "東" ], "jd": [ "", "二" ], "kd": [ "", "日" ], "qd": [ "", "黒" ], "wd": [ "", "資" ], "ed": [ "", "数" ], "rd": [ "", "品" ], "td": [ "", "座" ], "yd": [ "", "学" ], "ud": [ "", "本" ], "id": [ "", "大" ], ".d": [ "", "支" ], "/d": [ "", "森" ], "ld": [ "", "時" ], ";d": [ "", "不" ], "od": [ "", "六" ], "pd": [ "", "株" ], "zf": [ "", "討" ], "xf": [ "", "具" ], "cf": [ "", "防" ], "vf": [ "", "素" ], "bf": [ "", "介" ], "nf": [ "", "光" ], "mf": [ "", "郎" ], ",f": [ "", "文" ], "af": [ "", "直" ], "sf": [ "", "送" ], "df": [ "", "保" ], "ff": [ "", "世" ], "gf": [ "", "現" ], "hf": [ "", "新" ], "jf": [ "", "年" ], "kf": [ "", "一" ], "qf": [ "", "警" ], "wf": [ "", "託" ], "ef": [ "", "公" ], "rf": [ "", "細" ], "tf": [ "", "費" ], "yf": [ "", "工" ], "uf": [ "", "事" ], "if": [ "", "中" ], ".f": [ "", "沢" ], "/f": [ "", "馬" ], "lf": [ "", "同" ], ";f": [ "", "歩" ], "of": [ "", "九" ], "pf": [ "", "午" ], "zh": [ "", "判" ], "xh": [ "", "投" ], "ch": [ "", "戦" ], "vh": [ "", "組" ], "bh": [ "", "多" ], "qh": [ "", "主" ], "zj": [ "", "策" ], "xj": [ "", "備" ], "cj": [ "", "当" ], "vj": [ "", "来" ], "bj": [ "", "強" ], "nj": [ "", "良" ], "mj": [ "", "様" ], ",j": [ "", "省" ], "hj": [ "", "力" ], "jj": [ "", "験" ], "kj": [ "", "間" ], "yj": [ "", "勝" ], "uj": [ "", "氏" ], "ij": [ "", "画" ], ".j": [ "", "型" ], "/j": [ "", "故" ], "lj": [ "", "設" ], ";j": [ "", "号" ], "oj": [ "", "心" ], "pj": [ "", "販" ], "zk": [ "", "若" ], "xk": [ "", "記" ], "ck": [ "", "委" ], "vk": [ "", "入" ], "bk": [ "", "実" ], "nk": [ "", "論" ], "mk": [ "", "値" ], ",k": [ "", "路" ], "hk": [ "", "化" ], "jk": [ "", "下" ], "kk": [ "", "回" ], "yk": [ "", "歳" ], "uk": [ "", "度" ], "ik": [ "", "校" ], ".k": [ "", "装" ], "/k": [ "", "働" ], "lk": [ "", "歴" ], ";k": [ "", "係" ], "ok": [ "", "銀" ], "pk": [ "", "転" ], "zq": [ "", "伸" ], "xq": [ "", "羽" ], "cq": [ "", "静" ], "vq": [ "", "財" ], "bq": [ "", "始" ], "nq": [ "", "河" ], "mq": [ "", "越" ], ",q": [ "", "統" ], "aq": [ "", "悪" ], "sq": [ "", "病" ], "dq": [ "", "早" ], "fq": [ "", "糸" ], "gq": [ "", "試" ], "hq": [ "", "松" ], "jq": [ "", "安" ], "kq": [ "", "都" ], "qq": [ "", "並" ], "wq": [ "", "態" ], "eq": [ "", "両" ], "rq": [ "", "乗" ], "tq": [ "", "専" ], "yq": [ "", "興" ], "uq": [ "", "口" ], "iq": [ "", "洋" ], ".q": [ "", "秀" ], "/q": [ "", "油" ], "lq": [ "", "与" ], ";q": [ "", "清" ], "oq": [ "", "船" ], "pq": [ "", "久" ], "zw": [ "", "裏" ], "xw": [ "", "短" ], "cw": [ "", "何" ], "vw": [ "", "積" ], "bw": [ "", "迎" ], "nw": [ "", "元" ], "mw": [ "", "蔵" ], ",w": [ "", "県" ], "aw": [ "", "根" ], "sw": [ "", "仕" ], "dw": [ "", "無" ], "fw": [ "", "案" ], "gw": [ "", "額" ], "hw": [ "", "動" ], "jw": [ "", "川" ], "kw": [ "", "給" ], "qw": [ "", "伝" ], "ww": [ "", "健" ], "ew": [ "", "待" ], "rw": [ "", "白" ], "tw": [ "", "港" ], "yw": [ "", "水" ], "uw": [ "", "産" ], "iw": [ "", "務" ], ".w": [ "", "築" ], "/w": [ "", "角" ], "lw": [ "", "木" ], ";w": [ "", "佐" ], "ow": [ "", "駅" ], "pw": [ "", "頭" ], "ze": [ "", "類" ], "xe": [ "", "非" ], "ce": [ "", "補" ], "ve": [ "", "軽" ], "be": [ "", "率" ], "ne": [ "", "崎" ], "me": [ "", "宿" ], ",e": [ "", "可" ], "ae": [ "", "天" ], "se": [ "", "今" ], "de": [ "", "各" ], "fe": [ "", "関" ], "ge": [ "", "運" ], "he": [ "", "高" ], "je": [ "", "国" ], "ke": [ "", "三" ], "qe": [ "", "青" ], "we": [ "", "活" ], "ee": [ "", "結" ], "re": [ "", "優" ], "te": [ "", "最" ], "ye": [ "", "金" ], "ue": [ "", "地" ], "ie": [ "", "万" ], ".e": [ "", "室" ], "/e": [ "", "渋" ], "le": [ "", "八" ], ";e": [ "", "北" ], "oe": [ "", "建" ], "pe": [ "", "鉄" ], "zr": [ "", "復" ], "xr": [ "", "遊" ], "cr": [ "", "施" ], "vr": [ "", "帰" ], "br": [ "", "便" ], "nr": [ "", "半" ], "mr": [ "", "岡" ], ",r": [ "", "石" ], "ar": [ "", "寮" ], "sr": [ "", "広" ], "dr": [ "", "平" ], "fr": [ "", "音" ], "gr": [ "", "計" ], "hr": [ "", "山" ], "jr": [ "", "電" ], "kr": [ "", "五" ], "qr": [ "", "整" ], "wr": [ "", "少" ], "er": [ "", "信" ], "rr": [ "", "報" ], "tr": [ "", "太" ], "yr": [ "", "町" ], "ur": [ "", "七" ], "ir": [ "", "京" ], ".r": [ "", "休" ], "/r": [ "", "豊" ], "lr": [ "", "小" ], ";r": [ "", "原" ], "or": [ "", "理" ], "pr": [ "", "営" ], "nt": [ "", "林" ], "mt": [ "", "門" ], ",t": [ "", "格" ], "ht": [ "", "名" ], "jt": [ "", "部" ], "kt": [ "", "業" ], "yt": [ "", "第" ], "ut": [ "", "和" ], "it": [ "", "区" ], ".t": [ "", "吉" ], "/t": [ "", "齢" ], "lt": [ "", "問" ], ";t": [ "", "近" ], "ot": [ "", "西" ], "pt": [ "", "富" ], "zy": [ "", "落" ], "xy": [ "", "情" ], "cy": [ "", "私" ], "vy": [ "", "取" ], "by": [ "", "別" ], "ay": [ "", "書" ], "sy": [ "", "場" ], "dy": [ "", "会" ], "fy": [ "", "上" ], "gy": [ "", "通" ], "qy": [ "", "食" ], "wy": [ "", "持" ], "ey": [ "", "子" ], "ry": [ "", "出" ], "ty": [ "", "行" ], "zu": [ "", "好" ], "xu": [ "", "館" ], "cu": [ "", "調" ], "vu": [ "", "知" ], "bu": [ "", "切" ], "nu": [ "", "庁" ], "mu": [ "", "之" ], ",u": [ "", "旅" ], "au": [ "", "目" ], "hu": [ "", "製" ], "ju": [ "", "種" ], "ku": [ "", "用" ], "yu": [ "", "割" ], "uu": [ "", "及" ], "iu": [ "", "楽" ], ".u": [ "", "仲" ], "/u": [ "", "極" ], "lu": [ "", "界" ], ";u": [ "", "容" ], "ou": [ "", "園" ], "pu": [ "", "終" ], "zi": [ "", "器" ], "xi": [ "", "進" ], "ci": [ "", "対" ], "vi": [ "", "要" ], "bi": [ "", "意" ], "ni": [ "", "然" ], "mi": [ "", "断" ], ",i": [ "", "険" ], "hi": [ "", "連" ], "ji": [ "", "車" ], "ki": [ "", "以" ], "qi": [ "", "相" ], "yi": [ "", "民" ], "ui": [ "", "表" ], "ii": [ "", "夫" ], ".i": [ "", "構" ], "/i": [ "", "郵" ], "li": [ "", "完" ], ";i": [ "", "技" ], "oi": [ "", "加" ], "pi": [ "", "能" ], "z.": [ "", "抜" ], "x.": [ "", "導" ], "c.": [ "", "席" ], "v.": [ "", "録" ], "b.": [ "", "張" ], "n.": [ "", "華" ], "m.": [ "", "量" ], ",.": [ "", "視" ], "a.": [ "", "申" ], "s.": [ "", "風" ], "d.": [ "", "打" ], "f.": [ "", "価" ], "g.": [ "", "込" ], "h.": [ "", "比" ], "j.": [ "", "止" ], "k.": [ "", "審" ], "q.": [ "", "左" ], "w.": [ "", "算" ], "e.": [ "", "指" ], "r.": [ "", "向" ], "t.": [ "", "放" ], "y.": [ "", "減" ], "u.": [ "", "陽" ], "i.": [ "", "払" ], "..": [ "", "彼" ], "/.": [ "", "才" ], "l.": [ "", "殺" ], ";.": [ "", "例" ], "o.": [ "", "顔" ], "p.": [ "", "普" ], "z/": [ "", "違" ], "x/": [ "", "声" ], "c/": [ "", "提" ], "v/": [ "", "答" ], "b/": [ "", "過" ], "n/": [ "", "厚" ], "m/": [ "", "督" ], ",/": [ "", "練" ], "a/": [ "", "確" ], "s/": [ "", "足" ], "d/": [ "", "考" ], "f/": [ "", "望" ], "g/": [ "", "規" ], "h/": [ "", "準" ], "j/": [ "", "難" ], "k/": [ "", "裁" ], "q/": [ "", "展" ], "w/": [ "", "得" ], "e/": [ "", "死" ], "r/": [ "", "輸" ], "t/": [ "", "味" ], "y/": [ "", "丁" ], "u/": [ "", "善" ], "i/": [ "", "材" ], "./": [ "", "況" ], "//": [ "", "景" ], "l/": [ "", "適" ], ";/": [ "", "図" ], "o/": [ "", "差" ], "p/": [ "", "洗" ], "zl": [ "", "任" ], "xl": [ "", "引" ], "cl": [ "", "党" ], "vl": [ "", "受" ], "bl": [ "", "思" ], "nl": [ "", "般" ], "ml": [ "", "編" ], ",l": [ "", "印" ], "gl": [ "", "社" ], "hl": [ "", "夜" ], "jl": [ "", "物" ], "kl": [ "", "所" ], "wl": [ "", "見" ], "yl": [ "", "紙" ], "ul": [ "", "英" ], "il": [ "", "題" ], ".l": [ "", "敗" ], "/l": [ "", "授" ], "ll": [ "", "際" ], ";l": [ "", "側" ], "ol": [ "", "告" ], "pl": [ "", "勢" ], "z;": [ "", "置" ], "x;": [ "", "争" ], "c;": [ "", "義" ], "v;": [ "", "査" ], "b;": [ "", "派" ], "n;": [ "", "末" ], "m;": [ "", "塁" ], ",;": [ "", "状" ], "a;": [ "", "歌" ], "s;": [ "", "明" ], "d;": [ "", "長" ], "f;": [ "", "方" ], "g;": [ "", "政" ], "h;": [ "", "位" ], "j;": [ "", "在" ], "k;": [ "", "式" ], "q;": [ "", "空" ], "w;": [ "", "線" ], "e;": [ "", "合" ], "r;": [ "", "家" ], "t;": [ "", "集" ], "y;": [ "", "王" ], "u;": [ "", "衛" ], "i;": [ "", "劇" ], ".;": [ "", "即" ], "/;": [ "", "辺" ], "l;": [ "", "済" ], ";;": [ "", "究" ], "o;": [ "", "親" ], "p;": [ "", "爆" ], "zo": [ "", "読" ], "xo": [ "", "求" ], "co": [ "", "演" ], "vo": [ "", "術" ], "bo": [ "", "身" ], "no": [ "", "字" ], "mo": [ "", "養" ], ",o": [ "", "撃" ], "ao": [ "", "期" ], "so": [ "", "発" ], "do": [ "", "人" ], "fo": [ "", "員" ], "go": [ "", "生" ], "ho": [ "", "由" ], "jo": [ "", "局" ], "ko": [ "", "体" ], "qo": [ "", "解" ], "wo": [ "", "気" ], "eo": [ "", "者" ], "ro": [ "", "手" ], "to": [ "", "的" ], "yo": [ "", "球" ], "uo": [ "", "院" ], "io": [ "", "番" ], ".o": [ "", "司" ], "/o": [ "", "居" ], "lo": [ "", "薬" ], ";o": [ "", "段" ], "oo": [ "", "常" ], "po": [ "", "領" ], "zp": [ "", "達" ], "xp": [ "", "限" ], "cp": [ "", "応" ], "vp": [ "", "買" ], "bp": [ "", "感" ], "np": [ "", "閣" ], "mp": [ "", "担" ], ",p": [ "", "将" ], "ap": [ "", "続" ], "sp": [ "", "総" ], "dp": [ "", "定" ], "fp": [ "", "女" ], "gp": [ "", "成" ], "hp": [ "", "級" ], "jp": [ "", "課" ], "kp": [ "", "育" ], "qp": [ "", "配" ], "wp": [ "", "予" ], "ep": [ "", "議" ], "rp": [ "", "特" ], "tp": [ "", "法" ], "yp": [ "", "果" ], "up": [ "", "等" ], "ip": [ "", "首" ], ".p": [ "", "械" ], "/p": [ "", "護" ], "lp": [ "", "色" ], ";p": [ "", "巨" ], "op": [ "", "毛" ], "pp": [ "", "券" ], "nnz": [ "", "鵬" ], "mnz": [ "", "桓" ], ",nz": [ "", "讃" ], "hnz": [ "", "嵯" ], "jnz": [ "", "遥" ], "knz": [ "", "劾" ], "ynz": [ "", "鋸" ], "unz": [ "", "裟" ], "inz": [ "", "勃" ], ".nz": [ "", "兎" ], "/nz": [ "", "叶" ], "lnz": [ "", "鹸" ], ";nz": [ "", "詮" ], "onz": [ "", "珊" ], "pnz": [ "", "堆" ], "nmz": [ "", "潰" ], "mmz": [ "", "硯" ], ",mz": [ "", "宍" ], "hmz": [ "", "蓉" ], "jmz": [ "", "朔" ], "kmz": [ "", "茜" ], "ymz": [ "", "鉱" ], "umz": [ "", "雫" ], "imz": [ "", "怨" ], ".mz": [ "", "諜" ], "/mz": [ "", "脆" ], "lmz": [ "", "謎" ], ";mz": [ "", "匙" ], "omz": [ "", "肘" ], "pmz": [ "", "俣" ], "nnx": [ "", "竪" ], "mnx": [ "", "凧" ], ",nx": [ "", "茨" ], "hnx": [ "", "勾" ], "jnx": [ "", "蛮" ], "knx": [ "", "憤" ], "ynx": [ "", "峨" ], "unx": [ "", "怜" ], "inx": [ "", "茎" ], ".nx": [ "", "弛" ], "/nx": [ "", "葛" ], "lnx": [ "", "妖" ], ";nx": [ "", "隙" ], "onx": [ "", "詣" ], "pnx": [ "", "柑" ], "nmx": [ "", "歎" ], "mmx": [ "", "檀" ], ",mx": [ "", "秦" ], "hmx": [ "", "拷" ], "jmx": [ "", "哉" ], "kmx": [ "", "俺" ], "ymx": [ "", "伶" ], "umx": [ "", "鳳" ], "imx": [ "", "磯" ], ".mx": [ "", "苛" ], "/mx": [ "", "箕" ], "lmx": [ "", "儒" ], ";mx": [ "", "挨" ], "omx": [ "", "麓" ], "pmx": [ "", "蛋" ], "nnc": [ "", "溢" ], "mnc": [ "", "琵" ], ",nc": [ "", "藻" ], "hnc": [ "", "叱" ], "jnc": [ "", "皿" ], "knc": [ "", "励" ], "ync": [ "", "洲" ], "unc": [ "", "虞" ], "inc": [ "", "伺" ], ".nc": [ "", "櫛" ], "/nc": [ "", "椀" ], "lnc": [ "", "衷" ], ";nc": [ "", "嚇" ], "onc": [ "", "釘" ], "pnc": [ "", "樽" ], "nmc": [ "", "迂" ], "mmc": [ "", "餅" ], ",mc": [ "", "藻" ], "hmc": [ "", "狼" ], "jmc": [ "", "虐" ], "kmc": [ "", "涙" ], "ymc": [ "", "爺" ], "umc": [ "", "錘" ], "imc": [ "", "軌" ], ".mc": [ "", "帖" ], "/mc": [ "", "剥" ], "lmc": [ "", "訟" ], ";mc": [ "", "肇" ], "omc": [ "", "呆" ], "pmc": [ "", "汲" ], "nnv": [ "", "腺" ], "mnv": [ "", "蛙" ], ",nv": [ "", "禄" ], "hnv": [ "", "昆" ], "jnv": [ "", "矛" ], "knv": [ "", "惨" ], "ynv": [ "", "萎" ], "unv": [ "", "尭" ], "inv": [ "", "恨" ], ".nv": [ "", "迄" ], "/nv": [ "", "碍" ], "lnv": [ "", "襟" ], ";nv": [ "", "寅" ], "onv": [ "", "麺" ], "pnv": [ "", "稜" ], "nmv": [ "", "鮭" ], "mmv": [ "", "蝿" ], ",mv": [ "", "孟" ], "hmv": [ "", "愁" ], "jmv": [ "", "殴" ], "kmv": [ "", "握" ], "ymv": [ "", "矯" ], "umv": [ "", "藍" ], "imv": [ "", "繭" ], ".mv": [ "", "戚" ], "/mv": [ "", "醐" ], "lmv": [ "", "租" ], ";mv": [ "", "斡" ], "omv": [ "", "笹" ], "pmv": [ "", "俄" ], "nnb": [ "", "鷲" ], "mnb": [ "", "糞" ], ",nb": [ "", "姦" ], "hnb": [ "", "蕗" ], "jnb": [ "", "冗" ], "knb": [ "", "隈" ], "ynb": [ "", "萎" ], "unb": [ "", "悌" ], "inb": [ "", "醜" ], ".nb": [ "", "姐" ], "/nb": [ "", "劫" ], "lnb": [ "", "覇" ], ";nb": [ "", "堺" ], "onb": [ "", "箔" ], "pnb": [ "", "膝" ], "nmb": [ "", "杖" ], "mmb": [ "", "屍" ], ",mb": [ "", "蔑" ], "hmb": [ "", "嘱" ], "jmb": [ "", "惰" ], "kmb": [ "", "蘭" ], "ymb": [ "", "蔦" ], "umb": [ "", "蘇" ], "imb": [ "", "呑" ], ".mb": [ "", "薮" ], "/mb": [ "", "凌" ], "lmb": [ "", "殉" ], ";mb": [ "", "廓" ], "omb": [ "", "甫" ], "pmb": [ "", "吠" ], "nna": [ "", "罫" ], "mna": [ "", "屯" ], ",na": [ "", "喝" ], "hna": [ "", "旺" ], "jna": [ "", "蝶" ], "kna": [ "", "床" ], "yna": [ "", "嫡" ], "una": [ "", "棟" ], "ina": [ "", "輩" ], ".na": [ "", "諺" ], "/na": [ "", "烏" ], "lna": [ "", "庸" ], ";na": [ "", "拭" ], "ona": [ "", "惣" ], "pna": [ "", "梨" ], "nma": [ "", "酉" ], "mma": [ "", "篠" ], ",ma": [ "", "盆" ], "hma": [ "", "苑" ], "jma": [ "", "胴" ], "kma": [ "", "菅" ], "yma": [ "", "緯" ], "uma": [ "", "崖" ], "ima": [ "", "幾" ], ".ma": [ "", "萌" ], "/ma": [ "", "仔" ], "lma": [ "", "尿" ], ";ma": [ "", "渥" ], "oma": [ "", "蹴" ], "pma": [ "", "腎" ], "nns": [ "", "岬" ], "mns": [ "", "膜" ], ",ns": [ "", "坐" ], "hns": [ "", "隔" ], "jns": [ "", "奉" ], "kns": [ "", "浮" ], "yns": [ "", "婿" ], "uns": [ "", "汗" ], "ins": [ "", "沈" ], ".ns": [ "", "抹" ], "/ns": [ "", "龍" ], "lns": [ "", "憂" ], ";ns": [ "", "膨" ], "ons": [ "", "堕" ], "pns": [ "", "飢" ], "nms": [ "", "湧" ], "mms": [ "", "鮎" ], ",ms": [ "", "閥" ], "hms": [ "", "揚" ], "jms": [ "", "卓" ], "kms": [ "", "載" ], "yms": [ "", "俗" ], "ums": [ "", "妊" ], "ims": [ "", "芦" ], ".ms": [ "", "蔭" ], "/ms": [ "", "倭" ], "lms": [ "", "懇" ], ";ms": [ "", "瞳" ], "oms": [ "", "湿" ], "pms": [ "", "壱" ], "nnd": [ "", "衿" ], "mnd": [ "", "苗" ], ",nd": [ "", "諭" ], "hnd": [ "", "寛" ], "jnd": [ "", "暮" ], "knd": [ "", "片" ], "ynd": [ "", "巴" ], "und": [ "", "趣" ], "ind": [ "", "徴" ], ".nd": [ "", "淋" ], "/nd": [ "", "餓" ], "lnd": [ "", "律" ], ";nd": [ "", "紛" ], "ond": [ "", "誉" ], "pnd": [ "", "款" ], "nmd": [ "", "詐" ], "mmd": [ "", "朴" ], ",md": [ "", "据" ], "hmd": [ "", "還" ], "jmd": [ "", "悲" ], "kmd": [ "", "危" ], "ymd": [ "", "鐘" ], "umd": [ "", "忙" ], "imd": [ "", "桂" ], ".md": [ "", "叙" ], "/md": [ "", "駿" ], "lmd": [ "", "躍" ], ";md": [ "", "獣" ], "omd": [ "", "磨" ], "pmd": [ "", "嘩" ], "nnf": [ "", "絢" ], "mnf": [ "", "棚" ], ",nf": [ "", "殖" ], "hnf": [ "", "眠" ], "jnf": [ "", "亀" ], "knf": [ "", "弱" ], "ynf": [ "", "肺" ], "unf": [ "", "泣" ], "inf": [ "", "逮" ], ".nf": [ "", "丑" ], "/nf": [ "", "爾" ], "lnf": [ "", "襲" ], ";nf": [ "", "寒" ], "onf": [ "", "貌" ], "pnf": [ "", "邪" ], "nmf": [ "", "脈" ], "mmf": [ "", "縛" ], ",mf": [ "", "繰" ], "hmf": [ "", "堅" ], "jmf": [ "", "献" ], "kmf": [ "", "乞" ], "ymf": [ "", "鷹" ], "umf": [ "", "訂" ], "imf": [ "", "弟" ], ".mf": [ "", "妃" ], "/mf": [ "", "匁" ], "lmf": [ "", "欠" ], ";mf": [ "", "溜" ], "omf": [ "", "柔" ], "pmf": [ "", "壷" ], "nng": [ "", "瑞" ], "mng": [ "", "艶" ], ",ng": [ "", "粒" ], "hng": [ "", "奨" ], "jng": [ "", "絵" ], "kng": [ "", "勇" ], "yng": [ "", "敢" ], "ung": [ "", "兆" ], "ing": [ "", "忍" ], ".ng": [ "", "峻" ], "/ng": [ "", "褒" ], "lng": [ "", "釣" ], ";ng": [ "", "瓦" ], "ong": [ "", "諾" ], "png": [ "", "剖" ], "nmg": [ "", "狙" ], "mmg": [ "", "戴" ], ",mg": [ "", "碁" ], "hmg": [ "", "悩" ], "jmg": [ "", "童" ], "kmg": [ "", "替" ], "ymg": [ "", "簿" ], "umg": [ "", "欺" ], "img": [ "", "棄" ], ".mg": [ "", "愉" ], "/mg": [ "", "姑" ], "lmg": [ "", "栃" ], ";mg": [ "", "浸" ], "omg": [ "", "腐" ], "pmg": [ "", "糎" ], "nnq": [ "", "勿" ], "mnq": [ "", "阜" ], ",nq": [ "", "聡" ], "hnq": [ "", "斤" ], "jnq": [ "", "憶" ], "knq": [ "", "嘉" ], "ynq": [ "", "歪" ], "unq": [ "", "噂" ], "inq": [ "", "軸" ], ".nq": [ "", "烹" ], "/nq": [ "", "縞" ], "lnq": [ "", "妓" ], ";nq": [ "", "馨" ], "onq": [ "", "喉" ], "pnq": [ "", "飴" ], "nmq": [ "", "妾" ], "mmq": [ "", "碇" ], ",mq": [ "", "酌" ], "hmq": [ "", "斜" ], "jmq": [ "", "枕" ], "kmq": [ "", "誕" ], "ymq": [ "", "股" ], "umq": [ "", "薪" ], "imq": [ "", "顕" ], ".mq": [ "", "牡" ], "/mq": [ "", "獅" ], "lmq": [ "", "猟" ], ";mq": [ "", "萩" ], "omq": [ "", "倣" ], "pmq": [ "", "痔" ], "nnw": [ "", "頓" ], "mnw": [ "", "粍" ], ",nw": [ "", "稼" ], "hnw": [ "", "嶺" ], "jnw": [ "", "卵" ], "knw": [ "", "仮" ], "ynw": [ "", "謁" ], "unw": [ "", "循" ], "inw": [ "", "狭" ], ".nw": [ "", "苔" ], "/nw": [ "", "娼" ], "lnw": [ "", "屈" ], ";nw": [ "", "賠" ], "onw": [ "", "嬉" ], "pnw": [ "", "蛍" ], "nmw": [ "", "吊" ], "mmw": [ "", "頻" ], ",mw": [ "", "蚊" ], "hmw": [ "", "炎" ], "jmw": [ "", "庶" ], "kmw": [ "", "序" ], "ymw": [ "", "裸" ], "umw": [ "", "坑" ], "imw": [ "", "遭" ], ".mw": [ "", "允" ], "/mw": [ "", "溺" ], "lmw": [ "", "帽" ], ";mw": [ "", "爵" ], "omw": [ "", "賭" ], "pmw": [ "", "朋" ], "nne": [ "", "亨" ], "mne": [ "", "践" ], ",ne": [ "", "暇" ], "hne": [ "", "縦" ], "jne": [ "", "騒" ], "kne": [ "", "辞" ], "yne": [ "", "隅" ], "une": [ "", "往" ], "ine": [ "", "銃" ], ".ne": [ "", "渇" ], "/ne": [ "", "琢" ], "lne": [ "", "壁" ], ";ne": [ "", "酔" ], "one": [ "", "泡" ], "pne": [ "", "錯" ], "nme": [ "", "燥" ], "mme": [ "", "癖" ], ",me": [ "", "腹" ], "hme": [ "", "淡" ], "jme": [ "", "誇" ], "kme": [ "", "被" ], "yme": [ "", "棋" ], "ume": [ "", "圏" ], "ime": [ "", "衝" ], ".me": [ "", "云" ], "/me": [ "", "畿" ], "lme": [ "", "貫" ], ";me": [ "", "劣" ], "ome": [ "", "岐" ], "pme": [ "", "蒼" ], "nnr": [ "", "彬" ], "mnr": [ "", "狗" ], ",nr": [ "", "恭" ], "hnr": [ "", "涼" ], "jnr": [ "", "肌" ], "knr": [ "", "牧" ], "ynr": [ "", "扉" ], "unr": [ "", "騰" ], "inr": [ "", "砲" ], ".nr": [ "", "惇" ], "/nr": [ "", "枠" ], "lnr": [ "", "炊" ], ";nr": [ "", "唆" ], "onr": [ "", "窟" ], "pnr": [ "", "帆" ], "nmr": [ "", "蚕" ], "mmr": [ "", "鈎" ], ",mr": [ "", "衡" ], "hmr": [ "", "佳" ], "jmr": [ "", "裳" ], "kmr": [ "", "縮" ], "ymr": [ "", "漢" ], "umr": [ "", "幻" ], "imr": [ "", "妹" ], ".mr": [ "", "箇" ], "/mr": [ "", "塵" ], "lmr": [ "", "嵐" ], ";mr": [ "", "噴" ], "omr": [ "", "縁" ], "pmr": [ "", "廿" ], "nnt": [ "", "畏" ], "mnt": [ "", "赦" ], ",nt": [ "", "崩" ], "hnt": [ "", "奮" ], "jnt": [ "", "蓄" ], "knt": [ "", "勧" ], "ynt": [ "", "膳" ], "unt": [ "", "咲" ], "int": [ "", "拒" ], ".nt": [ "", "汎" ], "/nt": [ "", "牝" ], "lnt": [ "", "蓮" ], ";nt": [ "", "沸" ], "ont": [ "", "郭" ], "pnt": [ "", "撒" ], "nmt": [ "", "繍" ], "mmt": [ "", "鯉" ], ",mt": [ "", "拙" ], "hmt": [ "", "挑" ], "jmt": [ "", "粛" ], "kmt": [ "", "吹" ], "ymt": [ "", "紫" ], "umt": [ "", "芽" ], "imt": [ "", "搭" ], ".mt": [ "", "釦" ], "/mt": [ "", "瓜" ], "lmt": [ "", "貞" ], ";mt": [ "", "盲" ], "omt": [ "", "蛇" ], "pmt": [ "", "肢" ], "zgn": [ "", "芥" ], "xgn": [ "", "把" ], "cgn": [ "", "謄" ], "vgn": [ "", "漆" ], "bgn": [ "", "楓" ], "agn": [ "", "淑" ], "sgn": [ "", "麦" ], "dgn": [ "", "箱" ], "fgn": [ "", "鴨" ], "ggn": [ "", "慢" ], "qgn": [ "", "喰" ], "wgn": [ "", "窒" ], "egn": [ "", "侵" ], "rgn": [ "", "墓" ], "tgn": [ "", "粗" ], "zgm": [ "", "佑" ], "xgm": [ "", "欽" ], "cgm": [ "", "透" ], "vgm": [ "", "囚" ], "bgm": [ "", "紘" ], "agm": [ "", "隻" ], "sgm": [ "", "俳" ], "dgm": [ "", "存" ], "fgm": [ "", "菓" ], "ggm": [ "", "弦" ], "qgm": [ "", "符" ], "wgm": [ "", "廊" ], "egm": [ "", "黄" ], "rgm": [ "", "脚" ], "tgm": [ "", "慰" ], "zg,": [ "", "鍾" ], "xg,": [ "", "剃" ], "cg,": [ "", "麗" ], "vg,": [ "", "拳" ], "bg,": [ "", "帥" ], "ag,": [ "", "奪" ], "sg,": [ "", "露" ], "dg,": [ "", "乳" ], "fg,": [ "", "看" ], "gg,": [ "", "腰" ], "qg,": [ "", "怖" ], "wg,": [ "", "埋" ], "eg,": [ "", "綱" ], "rg,": [ "", "贈" ], "tg,": [ "", "獲" ], "zgh": [ "", "雀" ], "xgh": [ "", "墜" ], "cgh": [ "", "銭" ], "vgh": [ "", "帳" ], "bgh": [ "", "桐" ], "agh": [ "", "倒" ], "sgh": [ "", "笑" ], "dgh": [ "", "婚" ], "fgh": [ "", "絶" ], "ggh": [ "", "障" ], "qgh": [ "", "尚" ], "wgh": [ "", "憲" ], "egh": [ "", "肉" ], "rgh": [ "", "衣" ], "tgh": [ "", "繁" ], "zgj": [ "", "勘" ], "xgj": [ "", "翌" ], "cgj": [ "", "里" ], "vgj": [ "", "掃" ], "bgj": [ "", "唯" ], "agj": [ "", "維" ], "sgj": [ "", "盤" ], "dgj": [ "", "幹" ], "fgj": [ "", "舎" ], "ggj": [ "", "瀬" ], "qgj": [ "", "詩" ], "wgj": [ "", "沖" ], "egj": [ "", "丘" ], "rgj": [ "", "散" ], "tgj": [ "", "願" ], "zgk": [ "", "距" ], "xgk": [ "", "坊" ], "cgk": [ "", "渉" ], "vgk": [ "", "簡" ], "bgk": [ "", "到" ], "agk": [ "", "拡" ], "sgk": [ "", "降" ], "dgk": [ "", "供" ], "fgk": [ "", "圧" ], "ggk": [ "", "繊" ], "qgk": [ "", "快" ], "wgk": [ "", "麻" ], "egk": [ "", "杉" ], "rgk": [ "", "捕" ], "tgk": [ "", "貿" ], "zgy": [ "", "培" ], "xgy": [ "", "堪" ], "cgy": [ "", "浩" ], "vgy": [ "", "液" ], "bgy": [ "", "奴" ], "agy": [ "", "納" ], "sgy": [ "", "郷" ], "dgy": [ "", "奥" ], "fgy": [ "", "又" ], "ggy": [ "", "筆" ], "qgy": [ "", "哲" ], "wgy": [ "", "弾" ], "egy": [ "", "炭" ], "rgy": [ "", "稲" ], "tgy": [ "", "為" ], "zgu": [ "", "貢" ], "xgu": [ "", "肝" ], "cgu": [ "", "俊" ], "vgu": [ "", "契" ], "bgu": [ "", "恩" ], "agu": [ "", "痛" ], "sgu": [ "", "順" ], "dgu": [ "", "周" ], "fgu": [ "", "荒" ], "ggu": [ "", "錠" ], "qgu": [ "", "錦" ], "wgu": [ "", "罪" ], "egu": [ "", "績" ], "rgu": [ "", "昼" ], "tgu": [ "", "熊" ], "zgi": [ "", "醸" ], "xgi": [ "", "鋳" ], "cgi": [ "", "雲" ], "vgi": [ "", "也" ], "bgi": [ "", "抵" ], "agi": [ "", "牛" ], "sgi": [ "", "織" ], "dgi": [ "", "夏" ], "fgi": [ "", "援" ], "ggi": [ "", "盟" ], "qgi": [ "", "蒲" ], "wgi": [ "", "候" ], "egi": [ "", "盛" ], "rgi": [ "", "激" ], "tgi": [ "", "批" ], "zg.": [ "", "拶" ], "xg.": [ "", "釧" ], "cg.": [ "", "耗" ], "vg.": [ "", "侮" ], "bg.": [ "", "幌" ], "ag.": [ "", "滋" ], "sg.": [ "", "壇" ], "dg.": [ "", "亡" ], "fg.": [ "", "敵" ], "gg.": [ "", "凡" ], "qg.": [ "", "餌" ], "wg.": [ "", "穏" ], "eg.": [ "", "胃" ], "rg.": [ "", "聖" ], "tg.": [ "", "僕" ], "zg/": [ "", "樋" ], "xg/": [ "", "槍" ], "cg/": [ "", "凹" ], "vg/": [ "", "祐" ], "bg/": [ "", "燐" ], "ag/": [ "", "愚" ], "sg/": [ "", "倫" ], "dg/": [ "", "控" ], "fg/": [ "", "鉛" ], "gg/": [ "", "懲" ], "qg/": [ "", "隼" ], "wg/": [ "", "傘" ], "eg/": [ "", "唄" ], "rg/": [ "", "罰" ], "tg/": [ "", "臥" ], "zgl": [ "", "磁" ], "xgl": [ "", "召" ], "cgl": [ "", "徹" ], "vgl": [ "", "汚" ], "bgl": [ "", "喪" ], "agl": [ "", "禁" ], "sgl": [ "", "底" ], "dgl": [ "", "節" ], "fgl": [ "", "焼" ], "ggl": [ "", "移" ], "qgl": [ "", "骨" ], "wgl": [ "", "荘" ], "egl": [ "", "帯" ], "rgl": [ "", "捜" ], "tgl": [ "", "逆" ], "zg;": [ "", "陪" ], "xg;": [ "", "肖" ], "cg;": [ "", "艦" ], "vg;": [ "", "概" ], "bg;": [ "", "疎" ], "ag;": [ "", "虫" ], "sg;": [ "", "菜" ], "dg;": [ "", "異" ], "fg;": [ "", "努" ], "gg;": [ "", "困" ], "qg;": [ "", "靴" ], "wg;": [ "", "奇" ], "eg;": [ "", "紅" ], "rg;": [ "", "窓" ], "tg;": [ "", "掛" ], "zgo": [ "", "丞" ], "xgo": [ "", "瓶" ], "cgo": [ "", "啓" ], "vgo": [ "", "恒" ], "bgo": [ "", "尽" ], "ago": [ "", "弥" ], "sgo": [ "", "承" ], "dgo": [ "", "域" ], "fgo": [ "", "君" ], "ggo": [ "", "幕" ], "qgo": [ "", "誘" ], "wgo": [ "", "剤" ], "ego": [ "", "弁" ], "rgo": [ "", "歯" ], "tgo": [ "", "祥" ], "zgp": [ "", "詔" ], "xgp": [ "", "寧" ], "cgp": [ "", "斗" ], "vgp": [ "", "媒" ], "bgp": [ "", "詠" ], "agp": [ "", "添" ], "sgp": [ "", "却" ], "dgp": [ "", "幡" ], "fgp": [ "", "震" ], "ggp": [ "", "灯" ], "qgp": [ "", "匠" ], "wgp": [ "", "淵" ], "egp": [ "", "宗" ], "rgp": [ "", "鬼" ], "tgp": [ "", "慣" ], "nhz": [ "", "卦" ], "mhz": [ "", "羅" ], ",hz": [ "", "殻" ], "hhz": [ "", "胎" ], "jhz": [ "", "尊" ], "khz": [ "", "零" ], "yhz": [ "", "迅" ], "uhz": [ "", "牲" ], "ihz": [ "", "抑" ], ".hz": [ "", "賎" ], "/hz": [ "", "醍" ], "lhz": [ "", "赴" ], ";hz": [ "", "漸" ], "ohz": [ "", "弔" ], "phz": [ "", "拐" ], "nhx": [ "", "玩" ], "mhx": [ "", "伐" ], ",hx": [ "", "喧" ], "hhx": [ "", "梶" ], "jhx": [ "", "至" ], "khx": [ "", "宙" ], "yhx": [ "", "偉" ], "uhx": [ "", "拓" ], "ihx": [ "", "亭" ], ".hx": [ "", "芯" ], "/hx": [ "", "銚" ], "lhx": [ "", "糧" ], ";hx": [ "", "酢" ], "ohx": [ "", "涯" ], "phx": [ "", "幣" ], "nhc": [ "", "絞" ], "mhc": [ "", "痢" ], ",hc": [ "", "壊" ], "hhc": [ "", "脂" ], "jhc": [ "", "儀" ], "khc": [ "", "喫" ], "yhc": [ "", "垣" ], "uhc": [ "", "排" ], "ihc": [ "", "逃" ], ".hc": [ "", "頑" ], "/hc": [ "", "且" ], "lhc": [ "", "謝" ], ";hc": [ "", "硬" ], "ohc": [ "", "孫" ], "phc": [ "", "閑" ], "nhv": [ "", "塀" ], "mhv": [ "", "翻" ], ",hv": [ "", "拍" ], "hhv": [ "", "鏡" ], "jhv": [ "", "飲" ], "khv": [ "", "欧" ], "yhv": [ "", "遂" ], "uhv": [ "", "潮" ], "ihv": [ "", "混" ], ".hv": [ "", "矩" ], "/hv": [ "", "敦" ], "lhv": [ "", "穴" ], ";hv": [ "", "豚" ], "ohv": [ "", "征" ], "phv": [ "", "妨" ], "nhb": [ "", "塀" ], "mhb": [ "", "陵" ], ",hb": [ "", "畔" ], "hhb": [ "", "抽" ], "jhb": [ "", "賦" ], "khb": [ "", "致" ], "yhb": [ "", "炉" ], "uhb": [ "", "驚" ], "ihb": [ "", "雅" ], ".hb": [ "", "鉢" ], "/hb": [ "", "咽" ], "lhb": [ "", "姉" ], ";hb": [ "", "丈" ], "ohb": [ "", "僧" ], "phb": [ "", "机" ], "nha": [ "", "偶" ], "mha": [ "", "刃" ], ",ha": [ "", "扶" ], "hha": [ "", "兼" ], "jha": [ "", "因" ], "kha": [ "", "筋" ], "yha": [ "", "淳" ], "uha": [ "", "阿" ], "iha": [ "", "刷" ], ".ha": [ "", "吏" ], "/ha": [ "", "或" ], "lha": [ "", "湾" ], ";ha": [ "", "預" ], "oha": [ "", "棒" ], "pha": [ "", "触" ], "nhs": [ "", "阻" ], "mhs": [ "", "呉" ], ",hs": [ "", "囲" ], "hhs": [ "", "飯" ], "jhs": [ "", "象" ], "khs": [ "", "系" ], "yhs": [ "", "慮" ], "uhs": [ "", "乱" ], "ihs": [ "", "房" ], ".hs": [ "", "穀" ], "/hs": [ "", "謀" ], "lhs": [ "", "傷" ], ";hs": [ "", "柳" ], "ohs": [ "", "塗" ], "phs": [ "", "措" ], "nhd": [ "", "泳" ], "mhd": [ "", "包" ], ",hd": [ "", "端" ], "hhd": [ "", "責" ], "jhd": [ "", "康" ], "khd": [ "", "針" ], "yhd": [ "", "紀" ], "uhd": [ "", "賀" ], "ihd": [ "", "突" ], ".hd": [ "", "肥" ], "/hd": [ "", "己" ], "lhd": [ "", "締" ], ";hd": [ "", "債" ], "ohd": [ "", "互" ], "phd": [ "", "著" ], "nhf": [ "", "籍" ], "mhf": [ "", "息" ], ",hf": [ "", "季" ], "hhf": [ "", "依" ], "jhf": [ "", "紡" ], "khf": [ "", "徒" ], "yhf": [ "", "輪" ], "uhf": [ "", "純" ], "ihf": [ "", "糖" ], ".hf": [ "", "斎" ], "/hf": [ "", "巳" ], "lhf": [ "", "換" ], ";hf": [ "", "汽" ], "ohf": [ "", "竜" ], "phf": [ "", "絹" ], "nhg": [ "", "撲" ], "mhg": [ "", "踏" ], ",hg": [ "", "荻" ], "hhg": [ "", "盗" ], "jhg": [ "", "識" ], "khg": [ "", "喜" ], "yhg": [ "", "老" ], "uhg": [ "", "奈" ], "ihg": [ "", "干" ], ".hg": [ "", "陳" ], "/hg": [ "", "巧" ], "lhg": [ "", "犯" ], ";hg": [ "", "塩" ], "ohg": [ "", "夢" ], "phg": [ "", "複" ], "nhq": [ "", "叉" ], "mhq": [ "", "掌" ], ",hq": [ "", "呂" ], "hhq": [ "", "寝" ], "jhq": [ "", "扱" ], "khq": [ "", "豪" ], "yhq": [ "", "函" ], "uhq": [ "", "孝" ], "ihq": [ "", "陣" ], ".hq": [ "", "馳" ], "/hq": [ "", "褐" ], "lhq": [ "", "眼" ], ";hq": [ "", "窯" ], "ohq": [ "", "緩" ], "phq": [ "", "妥" ], "nhw": [ "", "擁" ], "mhw": [ "", "捨" ], ",hw": [ "", "殿" ], "hhw": [ "", "就" ], "jhw": [ "", "父" ], "khw": [ "", "謡" ], "yhw": [ "", "殊" ], "uhw": [ "", "償" ], "ihw": [ "", "余" ], ".hw": [ "", "虜" ], "/hw": [ "", "堤" ], "lhw": [ "", "災" ], ";hw": [ "", "葬" ], "ohw": [ "", "封" ], "phw": [ "", "促" ], "nhe": [ "", "撮" ], "mhe": [ "", "昌" ], ",he": [ "", "鶴" ], "hhe": [ "", "須" ], "jhe": [ "", "布" ], "khe": [ "", "舞" ], "yhe": [ "", "弘" ], "uhe": [ "", "延" ], "ihe": [ "", "彦" ], ".he": [ "", "珍" ], "/he": [ "", "旋" ], "lhe": [ "", "破" ], ";he": [ "", "忠" ], "ohe": [ "", "樹" ], "phe": [ "", "鮮" ], "nhr": [ "", "陛" ], "mhr": [ "", "訓" ], ",hr": [ "", "燃" ], "hhr": [ "", "操" ], "jhr": [ "", "温" ], "khr": [ "", "密" ], "yhr": [ "", "巣" ], "uhr": [ "", "標" ], "ihr": [ "", "押" ], ".hr": [ "", "暦" ], "/hr": [ "", "偵" ], "lhr": [ "", "舗" ], ";hr": [ "", "遺" ], "ohr": [ "", "梅" ], "phr": [ "", "冬" ], "nht": [ "", "其" ], "mht": [ "", "穂" ], ",ht": [ "", "診" ], "hht": [ "", "招" ], "jht": [ "", "血" ], "kht": [ "", "遠" ], "yht": [ "", "摩" ], "uht": [ "", "旧" ], "iht": [ "", "核" ], ".ht": [ "", "蒸" ], "/ht": [ "", "篤" ], "lht": [ "", "豆" ], ";ht": [ "", "礎" ], "oht": [ "", "了" ], "pht": [ "", "裕" ], "zvn": [ "", "遡" ], "xvn": [ "", "峯" ], "cvn": [ "", "榊" ], "vvn": [ "", "撫" ], "bvn": [ "", "慾" ], "avn": [ "", "豹" ], "svn": [ "", "漏" ], "dvn": [ "", "摂" ], "fvn": [ "", "煩" ], "gvn": [ "", "桶" ], "qvn": [ "", "肋" ], "wvn": [ "", "碧" ], "evn": [ "", "銑" ], "rvn": [ "", "狐" ], "tvn": [ "", "脹" ], "zbn": [ "", "堰" ], "xbn": [ "", "蕉" ], "cbn": [ "", "厭" ], "vbn": [ "", "采" ], "bbn": [ "", "膿" ], "abn": [ "", "柵" ], "sbn": [ "", "虹" ], "dbn": [ "", "椅" ], "fbn": [ "", "尺" ], "gbn": [ "", "芙" ], "qbn": [ "", "灼" ], "wbn": [ "", "叩" ], "ebn": [ "", "頬" ], "rbn": [ "", "暢" ], "tbn": [ "", "冥" ], "zvm": [ "", "茸" ], "xvm": [ "", "雁" ], "cvm": [ "", "妄" ], "vvm": [ "", "芭" ], "bvm": [ "", "埼" ], "avm": [ "", "牙" ], "svm": [ "", "陥" ], "dvm": [ "", "宛" ], "fvm": [ "", "迭" ], "gvm": [ "", "累" ], "qvm": [ "", "燕" ], "wvm": [ "", "搾" ], "evm": [ "", "菩" ], "rvm": [ "", "濫" ], "tvm": [ "", "喬" ], "zbm": [ "", "屠" ], "xbm": [ "", "蓬" ], "cbm": [ "", "遼" ], "vbm": [ "", "楚" ], "bbm": [ "", "伽" ], "abm": [ "", "耶" ], "sbm": [ "", "欣" ], "dbm": [ "", "偽" ], "fbm": [ "", "廉" ], "gbm": [ "", "溝" ], "qbm": [ "", "謬" ], "wbm": [ "", "賑" ], "ebm": [ "", "丙" ], "rbm": [ "", "匡" ], "tbm": [ "", "煎" ], "zv,": [ "", "悶" ], "xv,": [ "", "閃" ], "cv,": [ "", "勺" ], "vv,": [ "", "魁" ], "bv,": [ "", "蜜" ], "av,": [ "", "弐" ], "sv,": [ "", "架" ], "dv,": [ "", "雇" ], "fv,": [ "", "窮" ], "gv,": [ "", "晶" ], "qv,": [ "", "灸" ], "wv,": [ "", "濡" ], "ev,": [ "", "魂" ], "rv,": [ "", "穣" ], "tv,": [ "", "姻" ], "zb,": [ "", "酋" ], "xb,": [ "", "噌" ], "cb,": [ "", "塑" ], "vb,": [ "", "牢" ], "bb,": [ "", "尤" ], "ab,": [ "", "梢" ], "sb,": [ "", "頒" ], "db,": [ "", "升" ], "fb,": [ "", "刀" ], "gb,": [ "", "蹟" ], "qb,": [ "", "夷" ], "wb,": [ "", "淫" ], "eb,": [ "", "廻" ], "rb,": [ "", "舌" ], "tb,": [ "", "柏" ], "zvh": [ "", "梱" ], "xvh": [ "", "閲" ], "cvh": [ "", "釜" ], "vvh": [ "", "凝" ], "bvh": [ "", "灰" ], "avh": [ "", "滑" ], "svh": [ "", "詳" ], "dvh": [ "", "駐" ], "fvh": [ "", "摘" ], "gvh": [ "", "濃" ], "qvh": [ "", "繕" ], "wvh": [ "", "似" ], "evh": [ "", "泰" ], "rvh": [ "", "搬" ], "tvh": [ "", "迷" ], "zbh": [ "", "串" ], "xbh": [ "", "紗" ], "cbh": [ "", "虚" ], "vbh": [ "", "穫" ], "bbh": [ "", "晋" ], "abh": [ "", "騎" ], "sbh": [ "", "稿" ], "dbh": [ "", "刑" ], "fbh": [ "", "宏" ], "gbh": [ "", "笠" ], "qbh": [ "", "葦" ], "wbh": [ "", "某" ], "ebh": [ "", "冊" ], "rbh": [ "", "紋" ], "tbh": [ "", "吐" ], "zvj": [ "", "稔" ], "xvj": [ "", "附" ], "cvj": [ "", "孤" ], "vvj": [ "", "厄" ], "bvj": [ "", "酬" ], "avj": [ "", "誰" ], "svj": [ "", "戻" ], "dvj": [ "", "礼" ], "fvj": [ "", "犬" ], "gvj": [ "", "暖" ], "qvj": [ "", "雰" ], "wvj": [ "", "辻" ], "evj": [ "", "聴" ], "rvj": [ "", "祉" ], "tvj": [ "", "琴" ], "zbj": [ "", "禎" ], "xbj": [ "", "沙" ], "cbj": [ "", "撤" ], "vbj": [ "", "徐" ], "bbj": [ "", "梓" ], "abj": [ "", "猛" ], "sbj": [ "", "彰" ], "dbj": [ "", "揮" ], "fbj": [ "", "傾" ], "gbj": [ "", "銅" ], "qbj": [ "", "芋" ], "wbj": [ "", "庄" ], "ebj": [ "", "晩" ], "rbj": [ "", "潜" ], "tbj": [ "", "乏" ], "zvk": [ "", "汐" ], "xvk": [ "", "径" ], "cvk": [ "", "称" ], "vvk": [ "", "憎" ], "bvk": [ "", "狩" ], "avk": [ "", "抱" ], "svk": [ "", "更" ], "dvk": [ "", "倍" ], "fvk": [ "", "鎌" ], "gvk": [ "", "珠" ], "qvk": [ "", "胞" ], "wvk": [ "", "覧" ], "evk": [ "", "乃" ], "rvk": [ "", "瞬" ], "tvk": [ "", "縫" ], "zbk": [ "", "渦" ], "xbk": [ "", "僅" ], "cbk": [ "", "頁" ], "vbk": [ "", "李" ], "bbk": [ "", "婆" ], "abk": [ "", "弊" ], "sbk": [ "", "熟" ], "dbk": [ "", "影" ], "fbk": [ "", "欲" ], "gbk": [ "", "胸" ], "qbk": [ "", "鍋" ], "wbk": [ "", "諮" ], "ebk": [ "", "射" ], "rbk": [ "", "臓" ], "tbk": [ "", "准" ], "zvy": [ "", "砦" ], "xvy": [ "", "闇" ], "cvy": [ "", "鍵" ], "vvy": [ "", "渓" ], "bvy": [ "", "抄" ], "avy": [ "", "尉" ], "svy": [ "", "軟" ], "dvy": [ "", "辰" ], "fvy": [ "", "祖" ], "gvy": [ "", "彫" ], "qvy": [ "", "桟" ], "wvy": [ "", "頃" ], "evy": [ "", "篇" ], "rvy": [ "", "猿" ], "tvy": [ "", "析" ], "zby": [ "", "舷" ], "xby": [ "", "柿" ], "cby": [ "", "鈍" ], "vby": [ "", "醤" ], "bby": [ "", "柴" ], "aby": [ "", "盾" ], "sby": [ "", "猫" ], "dby": [ "", "漫" ], "fby": [ "", "敬" ], "gby": [ "", "唐" ], "qby": [ "", "璽" ], "wby": [ "", "尼" ], "eby": [ "", "拝" ], "rby": [ "", "弓" ], "tby": [ "", "匂" ], "zvu": [ "", "杜" ], "xvu": [ "", "綴" ], "cvu": [ "", "購" ], "vvu": [ "", "裾" ], "bvu": [ "", "介" ], "avu": [ "", "賜" ], "svu": [ "", "犠" ], "dvu": [ "", "隆" ], "fvu": [ "", "沿" ], "gvu": [ "", "魔" ], "qvu": [ "", "訊" ], "wvu": [ "", "漂" ], "evu": [ "", "畜" ], "rvu": [ "", "没" ], "tvu": [ "", "裂" ], "zbu": [ "", "瞭" ], "xbu": [ "", "塔" ], "cbu": [ "", "峠" ], "vbu": [ "", "剛" ], "bbu": [ "", "罷" ], "abu": [ "", "如" ], "sbu": [ "", "耕" ], "dbu": [ "", "緑" ], "fbu": [ "", "腕" ], "gbu": [ "", "脇" ], "qbu": [ "", "葵" ], "wbu": [ "", "忌" ], "ebu": [ "", "滞" ], "rbu": [ "", "烈" ], "tbu": [ "", "賓" ], "zvi": [ "", "槙" ], "xvi": [ "", "娯" ], "cvi": [ "", "伯" ], "vvi": [ "", "遍" ], "bvi": [ "", "享" ], "avi": [ "", "袖" ], "svi": [ "", "粧" ], "dvi": [ "", "頼" ], "fvi": [ "", "峰" ], "gvi": [ "", "祝" ], "qvi": [ "", "嫌" ], "wvi": [ "", "班" ], "evi": [ "", "墨" ], "rvi": [ "", "披" ], "tvi": [ "", "舶" ], "zbi": [ "", "槙" ], "xbi": [ "", "瑛" ], "cbi": [ "", "貼" ], "vbi": [ "", "播" ], "bbi": [ "", "毅" ], "abi": [ "", "袖" ], "sbi": [ "", "酵" ], "dbi": [ "", "迫" ], "fbi": [ "", "娘" ], "gbi": [ "", "貝" ], "qbi": [ "", "悼" ], "wbi": [ "", "滴" ], "ebi": [ "", "菌" ], "rbi": [ "", "伏" ], "tbi": [ "", "筈" ], "zv.": [ "", "蕪" ], "xv.": [ "", "腿" ], "cv.": [ "", "湘" ], "vv.": [ "", "卿" ], "bv.": [ "", "鎚" ], "av.": [ "", "洛" ], "sv.": [ "", "馴" ], "dv.": [ "", "后" ], "fv.": [ "", "洪" ], "gv.": [ "", "宰" ], "qv.": [ "", "麹" ], "wv.": [ "", "昏" ], "ev.": [ "", "惟" ], "rv.": [ "", "痕" ], "tv.": [ "", "諒" ], "zb.": [ "", "醒" ], "xb.": [ "", "苅" ], "cb.": [ "", "淀" ], "vb.": [ "", "槻" ], "bb.": [ "", "耽" ], "ab.": [ "", "叡" ], "sb.": [ "", "唾" ], "db.": [ "", "礁" ], "fb.": [ "", "雌" ], "gb.": [ "", "諏" ], "qb.": [ "", "綻" ], "wb.": [ "", "碓" ], "eb.": [ "", "圭" ], "rb.": [ "", "亮" ], "tb.": [ "", "牌" ], "zv/": [ "", "袴" ], "xv/": [ "", "壬" ], "cv/": [ "", "蛾" ], "vv/": [ "", "曾" ], "bv/": [ "", "汀" ], "av/": [ "", "祇" ], "sv/": [ "", "亘" ], "dv/": [ "", "駈" ], "fv/": [ "", "臆" ], "gv/": [ "", "癒" ], "qv/": [ "", "倦" ], "wv/": [ "", "灘" ], "ev/": [ "", "鞍" ], "rv/": [ "", "凪" ], "tv/": [ "", "舘" ], "zb/": [ "", "鞭" ], "xb/": [ "", "屑" ], "cb/": [ "", "狽" ], "vb/": [ "", "竿" ], "bb/": [ "", "饗" ], "ab/": [ "", "樫" ], "sb/": [ "", "奄" ], "db/": [ "", "卯" ], "fb/": [ "", "靖" ], "gb/": [ "", "迦" ], "qb/": [ "", "弄" ], "wb/": [ "", "捺" ], "eb/": [ "", "宋" ], "rb/": [ "", "諦" ], "tb/": [ "", "贋" ], "zvl": [ "", "凱" ], "xvl": [ "", "喚" ], "cvl": [ "", "溶" ], "vvl": [ "", "旭" ], "bvl": [ "", "隷" ], "avl": [ "", "拾" ], "svl": [ "", "薦" ], "dvl": [ "", "兄" ], "fvl": [ "", "陰" ], "gvl": [ "", "杯" ], "qvl": [ "", "杏" ], "wvl": [ "", "汁" ], "evl": [ "", "戒" ], "rvl": [ "", "宵" ], "tvl": [ "", "雷" ], "zbl": [ "", "琶" ], "xbl": [ "", "亦" ], "cbl": [ "", "睡" ], "vbl": [ "", "辱" ], "bbl": [ "", "麿" ], "abl": [ "", "衰" ], "sbl": [ "", "浄" ], "dbl": [ "", "刻" ], "fbl": [ "", "誤" ], "gbl": [ "", "脅" ], "qbl": [ "", "胤" ], "wbl": [ "", "胡" ], "ebl": [ "", "髪" ], "rbl": [ "", "駆" ], "tbl": [ "", "姓" ], "zv;": [ "", "潅" ], "xv;": [ "", "俸" ], "cv;": [ "", "腫" ], "vv;": [ "", "庵" ], "bv;": [ "", "凸" ], "av;": [ "", "蓋" ], "sv;": [ "", "俵" ], "dv;": [ "", "厘" ], "fv;": [ "", "筒" ], "gv;": [ "", "叫" ], "qv;": [ "", "呪" ], "wv;": [ "", "幽" ], "ev;": [ "", "羊" ], "rv;": [ "", "棺" ], "tv;": [ "", "轄" ], "zb;": [ "", "註" ], "xb;": [ "", "汰" ], "cb;": [ "", "稽" ], "vb;": [ "", "痘" ], "bb;": [ "", "牟" ], "ab;": [ "", "墳" ], "sb;": [ "", "辛" ], "db;": [ "", "索" ], "fb;": [ "", "廷" ], "gb;": [ "", "濁" ], "qb;": [ "", "咳" ], "wb;": [ "", "嵩" ], "eb;": [ "", "揺" ], "rb;": [ "", "憾" ], "tb;": [ "", "只" ], "zvo": [ "", "髭" ], "xvo": [ "", "郁" ], "cvo": [ "", "逢" ], "vvo": [ "", "緋" ], "bvo": [ "", "貰" ], "avo": [ "", "寂" ], "svo": [ "", "霊" ], "dvo": [ "", "桑" ], "fvo": [ "", "勲" ], "gvo": [ "", "携" ], "qvo": [ "", "輔" ], "wvo": [ "", "匿" ], "evo": [ "", "潔" ], "rvo": [ "", "肪" ], "tvo": [ "", "括" ], "zbo": [ "", "楯" ], "xbo": [ "", "粟" ], "cbo": [ "", "缶" ], "vbo": [ "", "嘘" ], "bbo": [ "", "榎" ], "abo": [ "", "巾" ], "sbo": [ "", "剰" ], "dbo": [ "", "芳" ], "fbo": [ "", "鍛" ], "gbo": [ "", "怠" ], "qbo": [ "", "睦" ], "wbo": [ "", "恰" ], "ebo": [ "", "賄" ], "rbo": [ "", "鯨" ], "tbo": [ "", "寡" ], "zvp": [ "", "蒙" ], "xvp": [ "", "箸" ], "cvp": [ "", "遮" ], "vvp": [ "", "舵" ], "bvp": [ "", "嶋" ], "avp": [ "", "楠" ], "svp": [ "", "濯" ], "dvp": [ "", "悟" ], "fvp": [ "", "峡" ], "gvp": [ "", "斐" ], "qvp": [ "", "苫" ], "wvp": [ "", "殆" ], "evp": [ "", "暫" ], "rvp": [ "", "壌" ], "tvp": [ "", "疫" ], "zbp": [ "", "椎" ], "xbp": [ "", "鼠" ], "cbp": [ "", "栓" ], "vbp": [ "", "冨" ], "bbp": [ "", "乎" ], "abp": [ "", "渚" ], "sbp": [ "", "慌" ], "dbp": [ "", "曽" ], "fbp": [ "", "洞" ], "gbp": [ "", "翁" ], "qbp": [ "", "樺" ], "wbp": [ "", "甥" ], "ebp": [ "", "漬" ], "rbp": [ "", "凄" ], "tbp": [ "", "癌" ], "ztn": [ "", "兜" ], "xtn": [ "", "蟻" ], "ctn": [ "", "紐" ], "vtn": [ "", "朕" ], "btn": [ "", "斧" ], "atn": [ "", "唇" ], "stn": [ "", "嬢" ], "dtn": [ "", "網" ], "ftn": [ "", "虎" ], "gtn": [ "", "惜" ], "qtn": [ "", "奔" ], "wtn": [ "", "痴" ], "etn": [ "", "威" ], "rtn": [ "", "耐" ], "ttn": [ "", "侍" ], "ztm": [ "", "倶" ], "xtm": [ "", "羨" ], "ctm": [ "", "擦" ], "vtm": [ "", "挟" ], "btm": [ "", "椿" ], "atm": [ "", "漠" ], "stm": [ "", "鎖" ], "dtm": [ "", "畑" ], "ftm": [ "", "浪" ], "gtm": [ "", "黙" ], "qtm": [ "", "娠" ], "wtm": [ "", "揃" ], "etm": [ "", "患" ], "rtm": [ "", "句" ], "ttm": [ "", "笛" ], "zt,": [ "", "尖" ], "xt,": [ "", "爪" ], "ct,": [ "", "酪" ], "vt,": [ "", "昂" ], "bt,": [ "", "盃" ], "at,": [ "", "禅" ], "st,": [ "", "郊" ], "dt,": [ "", "皮" ], "ft,": [ "", "鳴" ], "gt,": [ "", "微" ], "qt,": [ "", "胆" ], "wt,": [ "", "貧" ], "et,": [ "", "略" ], "rt,": [ "", "克" ], "tt,": [ "", "謹" ], "zth": [ "", "勅" ], "xth": [ "", "酷" ], "cth": [ "", "閉" ], "vth": [ "", "煮" ], "bth": [ "", "糾" ], "ath": [ "", "翼" ], "sth": [ "", "占" ], "dth": [ "", "恵" ], "fth": [ "", "均" ], "gth": [ "", "列" ], "qth": [ "", "範" ], "wth": [ "", "紹" ], "eth": [ "", "走" ], "rth": [ "", "香" ], "tth": [ "", "層" ], "ztj": [ "", "霜" ], "xtj": [ "", "隠" ], "ctj": [ "", "旗" ], "vtj": [ "", "泊" ], "btj": [ "", "嗣" ], "atj": [ "", "折" ], "stj": [ "", "誌" ], "dtj": [ "", "岸" ], "ftj": [ "", "譲" ], "gtj": [ "", "魚" ], "qtj": [ "", "救" ], "wtj": [ "", "臨" ], "etj": [ "", "妻" ], "rtj": [ "", "処" ], "ttj": [ "", "留" ], "ztk": [ "", "槽" ], "xtk": [ "", "賢" ], "ctk": [ "", "廃" ], "vtk": [ "", "甘" ], "btk": [ "", "朱" ], "atk": [ "", "恋" ], "stk": [ "", "療" ], "dtk": [ "", "客" ], "ftk": [ "", "除" ], "gtk": [ "", "典" ], "qtk": [ "", "継" ], "wtk": [ "", "砂" ], "etk": [ "", "革" ], "rtk": [ "", "請" ], "ttk": [ "", "亜" ], "zty": [ "", "亥" ], "xty": [ "", "朽" ], "cty": [ "", "懸" ], "vty": [ "", "臭" ], "bty": [ "", "眉" ], "aty": [ "", "縄" ], "sty": [ "", "探" ], "dty": [ "", "歓" ], "fty": [ "", "催" ], "gty": [ "", "需" ], "qty": [ "", "智" ], "wty": [ "", "誠" ], "ety": [ "", "訳" ], "rty": [ "", "源" ], "tty": [ "", "恐" ], "ztu": [ "", "髄" ], "xtu": [ "", "骸" ], "ctu": [ "", "掘" ], "vtu": [ "", "彩" ], "btu": [ "", "泌" ], "atu": [ "", "皆" ], "stu": [ "", "矢" ], "dtu": [ "", "副" ], "ftu": [ "", "幅" ], "gtu": [ "", "遅" ], "qtu": [ "", "忘" ], "wtu": [ "", "覚" ], "etu": [ "", "秘" ], "rtu": [ "", "雪" ], "ttu": [ "", "紳" ], "zti": [ "", "宜" ], "xti": [ "", "誓" ], "cti": [ "", "硫" ], "vti": [ "", "謙" ], "bti": [ "", "刈" ], "ati": [ "", "滝" ], "sti": [ "", "鹿" ], "dti": [ "", "固" ], "fti": [ "", "堀" ], "gti": [ "", "創" ], "qti": [ "", "魅" ], "wti": [ "", "述" ], "eti": [ "", "令" ], "rti": [ "", "測" ], "tti": [ "", "朗" ], "zt.": [ "", "茅" ], "xt.": [ "", "脊" ], "ct.": [ "", "慧" ], "vt.": [ "", "瑠" ], "bt.": [ "", "禿" ], "at.": [ "", "鳩" ], "st.": [ "", "薫" ], "dt.": [ "", "舟" ], "ft.": [ "", "妙" ], "gt.": [ "", "祈" ], "qt.": [ "", "飽" ], "wt.": [ "", "楼" ], "et.": [ "", "是" ], "rt.": [ "", "択" ], "tt.": [ "", "凶" ], "zt/": [ "", "漕" ], "xt/": [ "", "稀" ], "ct/": [ "", "糊" ], "vt/": [ "", "粕" ], "bt/": [ "", "逗" ], "at/": [ "", "遵" ], "st/": [ "", "墾" ], "dt/": [ "", "柱" ], "ft/": [ "", "粋" ], "gt/": [ "", "遷" ], "qt/": [ "", "筑" ], "wt/": [ "", "韻" ], "et/": [ "", "削" ], "rt/": [ "", "孔" ], "tt/": [ "", "巌" ], "ztl": [ "", "粘" ], "xtl": [ "", "恥" ], "ctl": [ "", "剣" ], "vtl": [ "", "澄" ], "btl": [ "", "崇" ], "atl": [ "", "照" ], "stl": [ "", "銘" ], "dtl": [ "", "漁" ], "ftl": [ "", "桜" ], "gtl": [ "", "宣" ], "qtl": [ "", "詰" ], "wtl": [ "", "双" ], "etl": [ "", "属" ], "rtl": [ "", "抗" ], "ttl": [ "", "伴" ], "zt;": [ "", "鞄" ], "xt;": [ "", "逝" ], "ct;": [ "", "覆" ], "vt;": [ "", "甚" ], "bt;": [ "", "坦" ], "at;": [ "", "旨" ], "st;": [ "", "凍" ], "dt;": [ "", "脱" ], "ft;": [ "", "唱" ], "gt;": [ "", "毒" ], "qt;": [ "", "寸" ], "wt;": [ "", "軒" ], "et;": [ "", "脳" ], "rt;": [ "", "跡" ], "tt;": [ "", "狂" ], "zto": [ "", "畝" ], "xto": [ "", "倹" ], "cto": [ "", "傑" ], "vto": [ "", "錬" ], "bto": [ "", "斥" ], "ato": [ "", "怪" ], "sto": [ "", "焦" ], "dto": [ "", "綿" ], "fto": [ "", "則" ], "gto": [ "", "踊" ], "qto": [ "", "嫁" ], "wto": [ "", "損" ], "eto": [ "", "隣" ], "rto": [ "", "慶" ], "tto": [ "", "既" ], "ztp": [ "", "莫" ], "xtp": [ "", "窪" ], "ctp": [ "", "垂" ], "vtp": [ "", "叔" ], "btp": [ "", "汝" ], "atp": [ "", "鶏" ], "stp": [ "", "譜" ], "dtp": [ "", "勉" ], "ftp": [ "", "充" ], "gtp": [ "", "緒" ], "qtp": [ "", "嘆" ], "wtp": [ "", "釈" ], "etp": [ "", "厳" ], "rtp": [ "", "惑" ], "ttp": [ "", "憩" ], "nyz": [ "", "塞" ], "myz": [ "", "此" ], ",yz": [ "", "詫" ], "hyz": [ "", "燈" ], "jyz": [ "", "仰" ], "kyz": [ "", "較" ], "yyz": [ "", "橘" ], "uyz": [ "", "綜" ], "iyz": [ "", "戯" ], ".yz": [ "", "覗" ], "/yz": [ "", "恕" ], "lyz": [ "", "仇" ], ";yz": [ "", "該" ], "oyz": [ "", "霞" ], "pyz": [ "", "挿" ], "nyx": [ "", "憧" ], "myx": [ "", "玲" ], ",yx": [ "", "侯" ], "hyx": [ "", "哀" ], "jyx": [ "", "怒" ], "kyx": [ "", "染" ], "yyx": [ "", "擬" ], "uyx": [ "", "姫" ], "iyx": [ "", "腸" ], ".yx": [ "", "桧" ], "/yx": [ "", "斑" ], "lyx": [ "", "於" ], ";yx": [ "", "碑" ], "oyx": [ "", "斬" ], "pyx": [ "", "慨" ], "nyc": [ "", "佃" ], "myc": [ "", "旦" ], ",yc": [ "", "砕" ], "hyc": [ "", "畳" ], "jyc": [ "", "項" ], "kyc": [ "", "硝" ], "yyc": [ "", "駄" ], "uyc": [ "", "煙" ], "iyc": [ "", "症" ], ".yc": [ "", "韓" ], "/yc": [ "", "蝕" ], "lyc": [ "", "暑" ], ";yc": [ "", "斉" ], "oyc": [ "", "鼻" ], "pyc": [ "", "但" ], "nyv": [ "", "曳" ], "myv": [ "", "曲" ], ",yv": [ "", "伍" ], "hyv": [ "", "桃" ], "jyv": [ "", "吾" ], "kyv": [ "", "臣" ], "yyv": [ "", "鎮" ], "uyv": [ "", "慎" ], "iyv": [ "", "拠" ], ".yv": [ "", "頚" ], "/yv": [ "", "畠" ], "lyv": [ "", "泥" ], ";yv": [ "", "栽" ], "oyv": [ "", "滅" ], "pyv": [ "", "疾" ], "nyb": [ "", "蟹" ], "myb": [ "", "挺" ], ",yb": [ "", "肯" ], "hyb": [ "", "綾" ], "jyb": [ "", "伎" ], "kyb": [ "", "疲" ], "yyb": [ "", "膚" ], "uyb": [ "", "昔" ], "iyb": [ "", "栗" ], ".yb": [ "", "燭" ], "/yb": [ "", "狸" ], "lyb": [ "", "悦" ], ";yb": [ "", "偏" ], "oyb": [ "", "詞" ], "pyb": [ "", "懐" ], "nya": [ "", "猪" ], "mya": [ "", "篭" ], ",ya": [ "", "尋" ], "hya": [ "", "掲" ], "jya": [ "", "岳" ], "kya": [ "", "寿" ], "yya": [ "", "稚" ], "uya": [ "", "賛" ], "iya": [ "", "貨" ], ".ya": [ "", "鯛" ], "/ya": [ "", "璃" ], "lya": [ "", "獄" ], ";ya": [ "", "冒" ], "oya": [ "", "鋭" ], "pya": [ "", "潤" ], "nys": [ "", "吟" ], "mys": [ "", "壮" ], ",ys": [ "", "随" ], "hys": [ "", "薄" ], "jys": [ "", "秒" ], "kys": [ "", "攻" ], "yys": [ "", "陶" ], "uys": [ "", "暴" ], "iys": [ "", "郡" ], ".ys": [ "", "禍" ], "/ys": [ "", "塊" ], "lys": [ "", "像" ], ";ys": [ "", "輝" ], "oys": [ "", "貴" ], "pys": [ "", "幼" ], "nyd": [ "", "艇" ], "myd": [ "", "乾" ], ",yd": [ "", "緊" ], "hyd": [ "", "湯" ], "jyd": [ "", "闘" ], "kyd": [ "", "邦" ], "yyd": [ "", "群" ], "uyd": [ "", "苦" ], "iyd": [ "", "模" ], ".yd": [ "", "宴" ], "/yd": [ "", "逸" ], "lyd": [ "", "酸" ], ";yd": [ "", "柄" ], "oyd": [ "", "票" ], "pyd": [ "", "途" ], "nyf": [ "", "暁" ], "myf": [ "", "秩" ], ",yf": [ "", "仁" ], "hyf": [ "", "呼" ], "jyf": [ "", "疑" ], "kyf": [ "", "衆" ], "yyf": [ "", "否" ], "uyf": [ "", "察" ], "iyf": [ "", "希" ], ".yf": [ "", "眺" ], "/yf": [ "", "慈" ], "lyf": [ "", "札" ], ";yf": [ "", "甲" ], "oyf": [ "", "背" ], "pyf": [ "", "沼" ], "nyg": [ "", "賊" ], "myg": [ "", "頂" ], ",yg": [ "", "吸" ], "hyg": [ "", "絡" ], "jyg": [ "", "仏" ], "kyg": [ "", "姿" ], "yyg": [ "", "荷" ], "uyg": [ "", "速" ], "iyg": [ "", "邸" ], ".yg": [ "", "逐" ], "/yg": [ "", "枯" ], "lyg": [ "", "丹" ], ";yg": [ "", "避" ], "oyg": [ "", "刺" ], "pyg": [ "", "束" ], "nyq": [ "", "臼" ], "myq": [ "", "跳" ], ",yq": [ "", "慕" ], "hyq": [ "", "匹" ], "jyq": [ "", "旬" ], "kyq": [ "", "潟" ], "yyq": [ "", "玄" ], "uyq": [ "", "鑑" ], "iyq": [ "", "僚" ], ".yq": [ "", "蜂" ], "/yq": [ "", "曙" ], "lyq": [ "", "扇" ], ";yq": [ "", "尻" ], "oyq": [ "", "耳" ], "pyq": [ "", "傍" ], "nyw": [ "", "洩" ], "myw": [ "", "拘" ], ",yw": [ "", "乙" ], "hyw": [ "", "皇" ], "jyw": [ "", "飾" ], "kyw": [ "", "博" ], "yyw": [ "", "氷" ], "uyw": [ "", "茂" ], "iyw": [ "", "粉" ], ".yw": [ "", "悔" ], "/yw": [ "", "晃" ], "lyw": [ "", "届" ], ";yw": [ "", "敏" ], "oyw": [ "", "貯" ], "pyw": [ "", "我" ], "nye": [ "", "猶" ], "mye": [ "", "遣" ], ",ye": [ "", "霧" ], "hye": [ "", "湖" ], "jye": [ "", "採" ], "kye": [ "", "境" ], "yye": [ "", "植" ], "uye": [ "", "去" ], "iye": [ "", "易" ], ".ye": [ "", "紺" ], "/ye": [ "", "逓" ], "lye": [ "", "併" ], ";ye": [ "", "卸" ], "oye": [ "", "章" ], "pye": [ "", "超" ], "nyr": [ "", "鼓" ], "myr": [ "", "欄" ], ",yr": [ "", "肩" ], "hyr": [ "", "仙" ], "jyr": [ "", "離" ], "kyr": [ "", "借" ], "yyr": [ "", "暗" ], "uyr": [ "", "訴" ], "iyr": [ "", "鳥" ], ".yr": [ "", "悠" ], "/yr": [ "", "弧" ], "lyr": [ "", "執" ], ";yr": [ "", "駒" ], "oyr": [ "", "呈" ], "pyr": [ "", "曹" ], "ppnyt":[ "", "枢" ], "myt": [ "", "薩" ], ",yt": [ "", "顧" ], "hyt": [ "", "描" ], "jyt": [ "", "功" ], "kyt": [ "", "夕" ], "yyt": [ "", "暗" ], "uyt": [ "", "訴" ], "iyt": [ "", "枚" ], ".yt": [ "", "窃" ], "/yt": [ "", "卑" ], "lyt": [ "", "菊" ], ";yt": [ "", "那" ], "oyt": [ "", "巡" ], "pyt": [ "", "飼" ] } } } libkkc-0.3.5/data/templates/000077500000000000000000000000001244473050600156725ustar00rootroot00000000000000libkkc-0.3.5/data/templates/Makefile.am000066400000000000000000000024511244473050600177300ustar00rootroot00000000000000# Copyright (C) 2011-2014 Daiki Ueno # Copyright (C) 2011-2014 Red Hat, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . templatesdir = $(pkgdatadir)/templates nobase_dist_templates_DATA = \ libkkc-data/tools/sortlm.py \ libkkc-data/tools/genfilter.py \ libkkc-data/tools/Makefile.am \ libkkc-data/configure.ac.in \ libkkc-data/data/Makefile.am \ libkkc-data/data/models/Makefile.sorted2 \ libkkc-data/data/models/Makefile.sorted3 \ libkkc-data/data/models/sorted2/metadata.json \ libkkc-data/data/models/sorted3/metadata.json \ libkkc-data/data/models/text2/metadata.json \ libkkc-data/data/models/text3/metadata.json \ libkkc-data/Makefile.am \ $(NULL) -include $(top_srcdir)/git.mk libkkc-0.3.5/data/templates/libkkc-data/000077500000000000000000000000001244473050600200405ustar00rootroot00000000000000libkkc-0.3.5/data/templates/libkkc-data/Makefile.am000066400000000000000000000014031244473050600220720ustar00rootroot00000000000000# Copyright (C) 2011-2014 Daiki Ueno # Copyright (C) 2011-2014 Red Hat, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . SUBDIRS = data tools ACLOCAL_AMFLAGS = -I m4 libkkc-0.3.5/data/templates/libkkc-data/configure.ac.in000066400000000000000000000021351244473050600227340ustar00rootroot00000000000000# Copyright (C) 2012-2014 Daiki Ueno # Copyright (C) 2012-2014 Red Hat, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . AC_PREREQ(2.63) AC_CONFIG_MACRO_DIR([m4]) AC_INIT([@PACKAGE_NAME@], [@PACKAGE_VERSION@], [@PACKAGE_BUGREPORT@]) dnl Init automake AM_INIT_AUTOMAKE([dist-xz no-dist-gzip silent-rules]) AM_MAINTAINER_MODE([enable]) AC_GNU_SOURCE dnl Check for programs AC_PROG_INSTALL dnl Check python AM_PATH_PYTHON AC_CONFIG_FILES([Makefile data/Makefile data/models/Makefile tools/Makefile]) AC_OUTPUT libkkc-0.3.5/data/templates/libkkc-data/data/000077500000000000000000000000001244473050600207515ustar00rootroot00000000000000libkkc-0.3.5/data/templates/libkkc-data/data/Makefile.am000066400000000000000000000013471244473050600230120ustar00rootroot00000000000000# Copyright (C) 2012-2014 Daiki Ueno # Copyright (C) 2012-2014 Red Hat, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . SUBDIRS = models libkkc-0.3.5/data/templates/libkkc-data/data/models/000077500000000000000000000000001244473050600222345ustar00rootroot00000000000000libkkc-0.3.5/data/templates/libkkc-data/data/models/Makefile.sorted2000066400000000000000000000032411244473050600252550ustar00rootroot00000000000000# Copyright (C) 2012-2014 Daiki Ueno # Copyright (C) 2012-2014 Red Hat, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . text2_data_files = \ text2/data.arpa \ $(NULL) text2_files = \ text2/metadata.json \ $(text2_data_files) \ $(NULL) sorted2_data_files = \ sorted2/data.input \ sorted2/data.1gram.index \ sorted2/data.1gram \ sorted2/data.2gram \ sorted2/data.2gram.filter \ $(NULL) sorted2_files = \ sorted2/metadata.json \ $(sorted2_data_files) \ $(NULL) $(sorted2_data_files): sorted2-data.stamp sorted2-data.stamp: $(text2_data_files) @$(MKDIR_P) sorted2 $(AM_V_GEN)$(PYTHON) -B $(top_srcdir)/tools/sortlm.py \ $(srcdir)/text2/data.arpa sorted2/data $(AM_V_GEN)$(PYTHON) -B $(top_srcdir)/tools/genfilter.py \ sorted2/data.2gram \ sorted2/data.2gram.filter \ 12 @touch sorted2-data.stamp all-local: sorted2-data.stamp modelsdir = $(libdir)/libkkc/models nobase_models_DATA = $(sorted2_files) CLEANFILES = $(sorted2_data_files) sorted2-data.stamp EXTRA_DIST = \ sorted2/metadata.json \ $(text2_files) \ $(NULL) libkkc-0.3.5/data/templates/libkkc-data/data/models/Makefile.sorted3000066400000000000000000000035151244473050600252620ustar00rootroot00000000000000# Copyright (C) 2012-2014 Daiki Ueno # Copyright (C) 2012-2014 Red Hat, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . text3_data_files = \ text3/data.arpa \ $(NULL) text3_files = \ text3/metadata.json \ $(text3_data_files) \ $(NULL) sorted3_data_files = \ sorted3/data.input \ sorted3/data.1gram.index \ sorted3/data.1gram \ sorted3/data.2gram \ sorted3/data.2gram.filter \ sorted3/data.3gram \ sorted3/data.3gram.filter \ $(NULL) sorted3_files = \ sorted3/metadata.json \ $(sorted3_data_files) \ $(NULL) $(sorted3_data_files): sorted3-data.stamp sorted3-data.stamp: $(text3_data_files) @$(MKDIR_P) sorted3 $(AM_V_GEN)$(PYTHON) -B $(top_srcdir)/tools/sortlm.py \ $(srcdir)/text3/data.arpa sorted3/data $(AM_V_GEN)$(PYTHON) -B $(top_srcdir)/tools/genfilter.py \ sorted3/data.2gram \ sorted3/data.2gram.filter \ 12 $(AM_V_GEN)$(PYTHON) -B $(top_srcdir)/tools/genfilter.py \ sorted3/data.3gram \ sorted3/data.3gram.filter \ 10 @touch sorted3-data.stamp all-local: sorted3-data.stamp modelsdir = $(libdir)/libkkc/models nobase_models_DATA = $(sorted3_files) CLEANFILES = $(sorted3_data_files) sorted3-data.stamp EXTRA_DIST = \ sorted3/metadata.json \ $(text3_files) \ $(NULL) libkkc-0.3.5/data/templates/libkkc-data/data/models/sorted2/000077500000000000000000000000001244473050600236165ustar00rootroot00000000000000libkkc-0.3.5/data/templates/libkkc-data/data/models/sorted2/metadata.json000066400000000000000000000001461244473050600262720ustar00rootroot00000000000000{ "name": "sorted2", "description": "binary based 2-gram dictionary", "type": "sorted2" } libkkc-0.3.5/data/templates/libkkc-data/data/models/sorted3/000077500000000000000000000000001244473050600236175ustar00rootroot00000000000000libkkc-0.3.5/data/templates/libkkc-data/data/models/sorted3/metadata.json000066400000000000000000000001461244473050600262730ustar00rootroot00000000000000{ "name": "sorted3", "description": "binary based 3-gram dictionary", "type": "sorted3" } libkkc-0.3.5/data/templates/libkkc-data/data/models/text2/000077500000000000000000000000001244473050600233025ustar00rootroot00000000000000libkkc-0.3.5/data/templates/libkkc-data/data/models/text2/metadata.json000066400000000000000000000001561244473050600257570ustar00rootroot00000000000000{ "name": "text2", "description": "text based 2-gram dictionary (for testing)", "type": "text2" } libkkc-0.3.5/data/templates/libkkc-data/data/models/text3/000077500000000000000000000000001244473050600233035ustar00rootroot00000000000000libkkc-0.3.5/data/templates/libkkc-data/data/models/text3/metadata.json000066400000000000000000000001561244473050600257600ustar00rootroot00000000000000{ "name": "text3", "description": "text based 3-gram dictionary (for testing)", "type": "text3" } libkkc-0.3.5/data/templates/libkkc-data/tools/000077500000000000000000000000001244473050600212005ustar00rootroot00000000000000libkkc-0.3.5/data/templates/libkkc-data/tools/Makefile.am000066400000000000000000000013721244473050600232370ustar00rootroot00000000000000# Copyright (C) 2011-2014 Daiki Ueno # Copyright (C) 2011-2014 Red Hat, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . EXTRA_DIST = sortlm.py genfilter.py libkkc-0.3.5/data/templates/libkkc-data/tools/genfilter.py000066400000000000000000000065731244473050600235440ustar00rootroot00000000000000#!/usr/bin/python # Copyright (C) 2011-2014 Daiki Ueno # Copyright (C) 2011-2014 Red Hat, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . import os import mmap import math import struct ERROR_RATE = 0.25 def murmur_hash3_32(b0, b1, seed): h1 = seed c1 = 0xcc9e2d51 c2 = 0x1b873593 # body: b0 b0 *= c1 b0 &= 0xFFFFFFFF b0 = (b0 << 15) | (b0 >> (32 - 15)) b0 &= 0xFFFFFFFF b0 *= c2 b0 &= 0xFFFFFFFF h1 ^= b0 h1 &= 0xFFFFFFFF h1 = (h1 << 13) | (h1 >> (32 - 13)) h1 &= 0xFFFFFFFF h1 = h1 * 5 + 0xe6546b64 h1 &= 0xFFFFFFFF # body: b1 b1 *= c1 b1 &= 0xFFFFFFFF b1 = (b1 << 15) | (b1 >> (32 - 15)) b1 &= 0xFFFFFFFF b1 *= c2 b1 &= 0xFFFFFFFF h1 ^= b1 h1 &= 0xFFFFFFFF h1 = (h1 << 13) | (h1 >> (32 - 13)) h1 &= 0xFFFFFFFF h1 = h1 * 5 + 0xe6546b64 h1 &= 0xFFFFFFFF # No tail processing needed. # fmix h1 ^= 8 h1 &= 0xFFFFFFFF h1 ^= h1 >> 16 h1 &= 0xFFFFFFFF h1 *= 0x85ebca6b h1 &= 0xFFFFFFFF h1 ^= h1 >> 13 h1 &= 0xFFFFFFFF h1 *= 0xc2b2ae35 h1 &= 0xFFFFFFFF h1 ^= h1 >> 16 h1 &= 0xFFFFFFFF return h1 class FilterGenerator(object): def __init__(self, infile, outfile, record_size): self.infile = infile self.outfile = outfile self.record_size = record_size def generate(self): size = os.fstat(self.infile.fileno()).st_size n = size / self.record_size m = int(math.ceil(-n*math.log10(ERROR_RATE) / math.pow(math.log10(2), 2))) m = (m/8 + 1)*8 inmem = mmap.mmap(self.infile.fileno(), size, access=mmap.ACCESS_READ) outmem = bytearray(m/8) for i in xrange(0, n): offset = i*self.record_size b0, b1 = struct.unpack("=LL", inmem[offset:offset+8]) for k in xrange(0, 4): h = murmur_hash3_32(b0, b1, k) h = int(h * (m / float(0xFFFFFFFF))) outmem[h/8] |= (1 << (h%8)) inmem.close() # Convert bytearray to str, for Python 2.6 compatibility. self.outfile.write(str(outmem)) if __name__ == '__main__': import sys import argparse parser = argparse.ArgumentParser(description='filter') parser.add_argument('infile', type=argparse.FileType('r'), help='input file') parser.add_argument('outfile', type=argparse.FileType('w'), help='output file') parser.add_argument('record_size', type=int, help='record size') args = parser.parse_args() generator = FilterGenerator(args.infile, args.outfile, args.record_size) generator.generate() libkkc-0.3.5/data/templates/libkkc-data/tools/sortlm.py000066400000000000000000000151431244473050600230760ustar00rootroot00000000000000#!/usr/bin/python # Copyright (C) 2011-2014 Daiki Ueno # Copyright (C) 2011-2014 Red Hat, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . import struct import marisa import re NGRAM = 3 NGRAM_LINE_REGEX = '^([-0-9.]+)[ \t]+([^\t]+?)(?:[ \t]+([-0-9.]+))?$' class SortedGenerator(object): def __init__(self, infile, output_prefix): self.__infile = infile self.__output_prefix = output_prefix self.__ngram_line_regex = re.compile(NGRAM_LINE_REGEX) self.__ngram_entries = [{} for x in range(0, NGRAM)] self.__vocab_keyset = marisa.Keyset() self.__input_keyset = marisa.Keyset() self.__vocab_trie = marisa.Trie() self.__input_trie = marisa.Trie() self.__min_cost = 0.0 def read(self): print "reading N-grams" self.__read_tries() self.__read_ngrams() print "min cost = %lf" % self.__min_cost def __read_tries(self): while True: line = self.__infile.readline() if line == "": break if line.startswith("\\1-grams"): break unigram_count = 0 while True: line = self.__infile.readline() if line == "": break line = line.strip() if line == "": break match = self.__ngram_line_regex.match(line) if not match: continue strv = match.groups() self.__vocab_keyset.push_back(strv[1]) if not strv[1] in ("", "", ""): if "/" not in strv[1]: continue (input, output) = strv[1].split("/") self.__input_keyset.push_back(input) self.__vocab_trie.build(self.__vocab_keyset) self.__input_trie.build(self.__input_keyset) def __read_ngrams(self): self.__infile.seek(0) for n in range(1, NGRAM + 1): while True: line = self.__infile.readline() if line == "": break if line.startswith("\\%s-grams:" % n): break while True: line = self.__infile.readline() if line == "": break line = line.strip() if line == "": break match = self.__ngram_line_regex.match(line) if not match: continue strv = match.groups() ngram = strv[1].split(" ") ids = [] for word in ngram: agent = marisa.Agent() agent.set_query(word) if not self.__vocab_trie.lookup(agent): continue ids.append(agent.key_id()) cost = float(strv[0]) if cost != -99 and cost < self.__min_cost: self.__min_cost = cost backoff = 0.0 if strv[2]: backoff = float(strv[2]) self.__ngram_entries[n - 1][tuple(ids)] = (cost, backoff) def write(self): self.__min_cost = -8.0 self.__write_tries() self.__write_ngrams() def __write_tries(self): self.__vocab_trie.save(self.__output_prefix + ".1gram.index") self.__input_trie.save(self.__output_prefix + ".input") def __write_ngrams(self): def quantize(cost, min_cost): return max(0, min(65535, int(cost * 65535 / min_cost))) def cmp_header(a, b): return cmp(a[0], b[0]) print "writing 1-gram file" unigram_offsets = {} unigram_file = open("%s.1gram" % self.__output_prefix, "wb") offset = 0 for ids, value in sorted(self.__ngram_entries[0].iteritems()): unigram_offsets[ids[0]] = offset s = struct.pack("=HHH", quantize(value[0], self.__min_cost), quantize(value[1], self.__min_cost), 0 # reserved ) unigram_file.write(s) offset += 1 unigram_file.close() print "writing 2-gram file" bigram_offsets = {} bigram_file = open("%s.2gram" % self.__output_prefix, "wb") keys = self.__ngram_entries[1].keys() items = [(struct.pack("=LL", ids[1], unigram_offsets[ids[0]]), ids) for ids in keys] offset = 0 for header, ids in sorted(items, cmp=cmp_header): value = self.__ngram_entries[1][ids] bigram_offsets[ids] = offset s = struct.pack("=HH", quantize(value[0], self.__min_cost), quantize(value[1], self.__min_cost)) bigram_file.write(header + s) offset += 1 bigram_file.close() if len(self.__ngram_entries[2]) > 0: print "writing 3-gram file" trigram_file = open("%s.3gram" % self.__output_prefix, "wb") keys = self.__ngram_entries[2].keys() items = [(struct.pack("=LL", ids[2], bigram_offsets[(ids[0], ids[1])]), ids) for ids in keys] for header, ids in sorted(items, cmp=cmp_header): value = self.__ngram_entries[2][ids] s = struct.pack("=H", quantize(value[0], self.__min_cost)) trigram_file.write(header + s) trigram_file.close() if __name__ == '__main__': import sys import argparse parser = argparse.ArgumentParser(description='sortlm') parser.add_argument('infile', nargs='?', type=argparse.FileType('r'), default=sys.stdin, help='language model file') parser.add_argument('output_prefix', metavar='OUTPUT_PREFIX', type=str, help='output file prefix') args = parser.parse_args() generator = SortedGenerator(args.infile, args.output_prefix) generator.read(); generator.write(); libkkc-0.3.5/docs/000077500000000000000000000000001244473050600137135ustar00rootroot00000000000000libkkc-0.3.5/docs/Makefile.am000066400000000000000000000041031244473050600157450ustar00rootroot00000000000000distclean_dirs = \ libkkc \ gtk-doc \ $(NULL) docs = \ libkkc-doc \ libkkc-gtk-doc \ $(NULL) libkkcdocdir=$(datadir)/devhelp/references/libkkc libkkcimgdir=$(datadir)/devhelp/references/libkkc/img libkkcgtkdocdir=$(datadir)/gtk-doc/html/libkkc common_doc_files = \ *.css \ *.png \ *.js \ index.htm \ *.html \ $(NULL) libkkcdoc_DATA = \ libkkc/libkkc/libkkc.devhelp2 \ $(addprefix libkkc/libkkc/,$(common_doc_files)) \ $(NULL) libkkcgtkdoc_DATA = gtk-doc/libkkc/html/* $(libkkcdoc_DATA) $(libkkcimg_DATA): libkkc-doc.stamp $(libkkcgtkdoc_DATA): libkkc-gtk-doc.stamp valadoc_flags = \ --force \ --package-version $(PACKAGE_VERSION) \ $(NULL) # libkkc documentation libkkc_doc_files_blacklist = \ $(NULL) # this expands the list of files, so we can filter out elements libkkc_doc_files_all = \ $(wildcard $(top_srcdir)/libkkc/*.vala) \ $(top_srcdir)/libkkc/keysyms.vapi \ $(NULL) # FIXME: sort the files manually to work around the native doclet portion of # bgo#662784 libkkc_doc_files = \ $(sort \ $(filter-out $(libkkc_doc_files_blacklist),$(libkkc_doc_files_all))) libkkc_doc_deps = \ config \ glib-2.0 \ gio-2.0 \ gee-0.8 \ posix \ json-glib-1.0 \ marisa-glib \ $(NULL) valadoc_flags_libkkc = \ $(valadoc_flags) \ -X $(top_srcdir)/libkkc/libkkc.h \ $(addprefix --pkg=,$(libkkc_doc_deps)) \ --vapidir=$(top_srcdir)/libkkc \ --vapidir=$(top_builddir)/libkkc \ --vapidir=$(top_srcdir)/marisa-glib \ --vapidir=$(top_builddir)/marisa-glib \ $(libkkc_doc_files) \ $(NULL) libkkc-doc.stamp: $(libkkc_doc_files) $(AM_V_GEN)$(VALADOC) \ -o libkkc/ \ --doclet=devhelp \ $(valadoc_flags_libkkc) \ $(NULL) @touch $@ libkkc-gtk-doc.stamp: $(libkkc_doc_files) $(AM_V_GEN)$(VALADOC) \ -X -l -X $(top_builddir)/libkkc/.libs/libkkc.so \ -o gtk-doc/libkkc \ --doclet=gtkdoc \ $(valadoc_flags_libkkc) \ $(NULL) @touch $@ stamps = $(addsuffix .stamp, $(docs)) all: $(stamps) CLEANFILES = $(stamps) distclean-local: distclean-docs distclean-docs: rm -rf $(distclean_dirs) GITIGNOREFILES = \ libkkc/ \ gtk-doc/ \ $(NULL) -include $(top_srcdir)/git.mk libkkc-0.3.5/git.mk000066400000000000000000000155701244473050600141070ustar00rootroot00000000000000# git.mk # # Copyright 2009, Red Hat, Inc. # Copyright 2010,2011 Behdad Esfahbod # Written by Behdad Esfahbod # # Copying and distribution of this file, with or without modification, # is permitted in any medium without royalty provided the copyright # notice and this notice are preserved. # # The latest version of this file can be downloaded from: # https://raw.github.com/behdad/git.mk/master/git.mk # Bugs, etc, should be reported upstream at: # https://github.com/behdad/git.mk # # To use in your project, import this file in your git repo's toplevel, # then do "make -f git.mk". This modifies all Makefile.am files in # your project to -include git.mk. Remember to add that line to new # Makefile.am files you create in your project, or just rerun the # "make -f git.mk". # # This enables automatic .gitignore generation. If you need to ignore # more files, add them to the GITIGNOREFILES variable in your Makefile.am. # But think twice before doing that. If a file has to be in .gitignore, # chances are very high that it's a generated file and should be in one # of MOSTLYCLEANFILES, CLEANFILES, DISTCLEANFILES, or MAINTAINERCLEANFILES. # # The only case that you need to manually add a file to GITIGNOREFILES is # when remove files in one of mostlyclean-local, clean-local, distclean-local, # or maintainer-clean-local make targets. # # Note that for files like editor backup, etc, there are better places to # ignore them. See "man gitignore". # # If "make maintainer-clean" removes the files but they are not recognized # by this script (that is, if "git status" shows untracked files still), send # me the output of "git status" as well as your Makefile.am and Makefile for # the directories involved and I'll diagnose. # # For a list of toplevel files that should be in MAINTAINERCLEANFILES, see # Makefile.am.sample in the git.mk git repo. # # Don't EXTRA_DIST this file. It is supposed to only live in git clones, # not tarballs. It serves no useful purpose in tarballs and clutters the # build dir. # # This file knows how to handle autoconf, automake, libtool, gtk-doc, # gnome-doc-utils, yelp.m4, mallard, intltool, gsettings, dejagnu. # # This makefile provides the following targets: # # - all: "make all" will build all gitignore files. # - gitignore: makes all gitignore files in the current dir and subdirs. # - .gitignore: make gitignore file for the current dir. # - gitignore-recurse: makes all gitignore files in the subdirs. # # KNOWN ISSUES: # # - Recursive configure doesn't work as $(top_srcdir)/git.mk inside the # submodule doesn't find us. If you have configure.{in,ac} files in # subdirs, add a proxy git.mk file in those dirs that simply does: # "include $(top_srcdir)/../git.mk". Add more ..'s to your taste. # And add those files to git. See vte/gnome-pty-helper/git.mk for # example. # git-all: git-mk-install git-mk-install: @echo Installing git makefile @any_failed=; \ find "`test -z "$(top_srcdir)" && echo . || echo "$(top_srcdir)"`" -name Makefile.am | while read x; do \ if grep 'include .*/git.mk' $$x >/dev/null; then \ echo $$x already includes git.mk; \ else \ failed=; \ echo "Updating $$x"; \ { cat $$x; \ echo ''; \ echo '-include $$(top_srcdir)/git.mk'; \ } > $$x.tmp || failed=1; \ if test x$$failed = x; then \ mv $$x.tmp $$x || failed=1; \ fi; \ if test x$$failed = x; then : else \ echo Failed updating $$x; >&2 \ any_failed=1; \ fi; \ fi; done; test -z "$$any_failed" .PHONY: git-all git-mk-install ### .gitignore generation $(srcdir)/.gitignore: Makefile.am $(top_srcdir)/git.mk $(AM_V_GEN) \ { \ if test "x$(DOC_MODULE)" = x -o "x$(DOC_MAIN_SGML_FILE)" = x; then :; else \ for x in \ $(DOC_MODULE)-decl-list.txt \ $(DOC_MODULE)-decl.txt \ tmpl/$(DOC_MODULE)-unused.sgml \ "tmpl/*.bak" \ xml html \ ; do echo /$$x; done; \ fi; \ if test "x$(DOC_MODULE)$(DOC_ID)" = x -o "x$(DOC_LINGUAS)" = x; then :; else \ for lc in $(DOC_LINGUAS); do \ for x in \ $(if $(DOC_MODULE),$(DOC_MODULE).xml) \ $(DOC_PAGES) \ $(DOC_INCLUDES) \ ; do echo /$$lc/$$x; done; \ done; \ for x in \ $(_DOC_OMF_ALL) \ $(_DOC_DSK_ALL) \ $(_DOC_HTML_ALL) \ $(_DOC_MOFILES) \ $(DOC_H_FILE) \ "*/.xml2po.mo" \ "*/*.omf.out" \ ; do echo /$$x; done; \ fi; \ if test "x$(HELP_ID)" = x -o "x$(HELP_LINGUAS)" = x; then :; else \ for lc in $(HELP_LINGUAS); do \ for x in \ $(HELP_FILES) \ "$$lc.stamp" \ "$$lc.mo" \ ; do echo /$$lc/$$x; done; \ done; \ fi; \ if test "x$(gsettings_SCHEMAS)" = x; then :; else \ for x in \ $(gsettings_SCHEMAS:.xml=.valid) \ $(gsettings__enum_file) \ ; do echo /$$x; done; \ fi; \ if test -f $(srcdir)/po/Makefile.in.in; then \ for x in \ po/Makefile.in.in \ po/Makefile.in \ po/Makefile \ po/POTFILES \ po/stamp-it \ po/.intltool-merge-cache \ "po/*.gmo" \ "po/*.mo" \ po/$(GETTEXT_PACKAGE).pot \ intltool-extract.in \ intltool-merge.in \ intltool-update.in \ ; do echo /$$x; done; \ fi; \ if test -f $(srcdir)/configure; then \ for x in \ autom4te.cache \ configure \ config.h \ stamp-h1 \ libtool \ config.lt \ ; do echo /$$x; done; \ fi; \ if test "x$(DEJATOOL)" = x; then :; else \ for x in \ $(DEJATOOL) \ ; do echo /$$x.sum; echo /$$x.log; done; \ echo /site.exp; \ fi; \ for x in \ .gitignore \ $(GITIGNOREFILES) \ $(CLEANFILES) \ $(PROGRAMS) $(check_PROGRAMS) $(EXTRA_PROGRAMS) \ $(LIBRARIES) $(check_LIBRARIES) $(EXTRA_LIBRARIES) \ $(LTLIBRARIES) $(check_LTLIBRARIES) $(EXTRA_LTLIBRARIES) \ so_locations \ .libs _libs \ $(MOSTLYCLEANFILES) \ "*.$(OBJEXT)" \ "*.lo" \ $(DISTCLEANFILES) \ $(am__CONFIG_DISTCLEAN_FILES) \ $(CONFIG_CLEAN_FILES) \ TAGS ID GTAGS GRTAGS GSYMS GPATH tags \ "*.tab.c" \ $(MAINTAINERCLEANFILES) \ $(BUILT_SOURCES) \ $(DEPDIR) \ Makefile \ Makefile.in \ "*.orig" \ "*.rej" \ "*.bak" \ "*~" \ ".*.sw[nop]" \ ".dirstamp" \ ; do echo /$$x; done; \ } | \ sed "s@^/`echo "$(srcdir)" | sed 's/\(.\)/[\1]/g'`/@/@" | \ sed 's@/[.]/@/@g' | \ LC_ALL=C sort | uniq > $@.tmp && \ mv $@.tmp $@; all: $(srcdir)/.gitignore gitignore-recurse-maybe gitignore: $(srcdir)/.gitignore gitignore-recurse gitignore-recurse-maybe: @for subdir in $(DIST_SUBDIRS); do \ case " $(SUBDIRS) " in \ *" $$subdir "*) :;; \ *) test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) .gitignore gitignore-recurse-maybe || echo "Skipping $$subdir");; \ esac; \ done gitignore-recurse: @for subdir in $(DIST_SUBDIRS); do \ test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) .gitignore gitignore-recurse || echo "Skipping $$subdir"); \ done maintainer-clean: gitignore-clean gitignore-clean: -rm -f $(srcdir)/.gitignore .PHONY: gitignore-clean gitignore gitignore-recurse gitignore-recurse-maybe libkkc-0.3.5/lcov.mk000066400000000000000000000012551244473050600142620ustar00rootroot00000000000000# From http://cgit.freedesktop.org/telepathy/telepathy-glib/tree/tools/lcov.am lcov-reset: lcov --directory @top_srcdir@ --zerocounters lcov-report: lcov --directory @top_srcdir@ --capture \ --output-file @top_builddir@/lcov.info $(mkdir_p) @top_builddir@/lcov.html git_commit=`GIT_DIR=@top_srcdir@/.git git log -1 --pretty=format:%h 2>/dev/null`;\ genhtml --title "@PACKAGE_STRING@ $$git_commit" \ --output-directory @top_builddir@/lcov.html lcov.info @echo @echo 'lcov report can be found in:' @echo 'file://@abs_top_builddir@/lcov.html/index.html' @echo lcov-check: $(MAKE) lcov-reset $(MAKE) check $(LCOV_CHECK_ARGS) $(MAKE) lcov-report ## vim:set ft=automake: libkkc-0.3.5/libkkc/000077500000000000000000000000001244473050600142225ustar00rootroot00000000000000libkkc-0.3.5/libkkc/Makefile.am000066400000000000000000000110741244473050600162610ustar00rootroot00000000000000# Copyright (C) 2012-2014 Daiki Ueno # Copyright (C) 2012-2014 Red Hat, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . # force include config.h before gi18n.h. AM_CPPFLAGS = -include $(CONFIG_HEADER) lib_LTLIBRARIES = libkkc.la noinst_LTLIBRARIES = libkkc-internals.la libkkc_la_VALAFLAGS = \ --includedir=libkkc \ -H libkkc.h \ --vapi kkc-@KKC_API_VERSION@.vapi \ -h libkkc-internals.h \ --vapidir=. \ --vapidir=$(top_srcdir)/marisa-glib \ --pkg config \ --pkg keysyms \ --pkg glib-2.0 \ --pkg gio-2.0 \ --pkg gee-0.8 \ --pkg json-glib-1.0 \ --pkg marisa-glib \ --internal-vapi kkc-internals-@KKC_API_VERSION@.vapi \ --library kkc-@KKC_API_VERSION@ \ --gir Kkc-@KKC_API_VERSION@.gir \ --symbols libkkc.symbols \ $(VALAFLAGS) \ $(NULL) libkkc_la_CFLAGS = \ $(CODE_COVERAGE_CFLAGS) \ $(LIBKKC_CFLAGS) \ -DLIBDIR=\"$(libdir)\" \ -DPKGDATADIR=\"$(pkgdatadir)\" \ -DLOCALEDIR=\"$(datadir)/locale\" \ -I $(top_srcdir) \ $(NULL) libkkc_la_LIBADD = $(LIBKKC_LIBS) $(top_builddir)/marisa-glib/libmarisa-glib.la libkkc_la_LDFLAGS = \ $(CODE_COVERAGE_LDFLAGS) \ -version-info "$(LT_CURRENT)":"$(LT_REVISION)":"$(LT_AGE)" \ -export-dynamic \ -export-symbols $(srcdir)/libkkc.symbols \ $(NULL) libkkc_internals_la_DEPENDENCIES = \ $(libkkc_la_OBJECTS) \ $(NULL) libkkc_internals_la_CFLAGS = \ $(libkkc_la_CFLAGS) \ $(NULL) libkkc_internals_la_LIBADD = \ $(libkkc_la_LIBADD) \ $(libkkc_la_OBJECTS) \ $(MARISA_GLIB_STATIC_DEPENDENCIES) \ $(NULL) libkkc_internals_la_LDFLAGS = \ $(CODE_COVERAGE_LDFLAGS) \ $(NULL) libkkc_internals_la_SOURCES = libkkcincludedir = $(includedir)/libkkc libkkcinclude_HEADERS = \ libkkc.h \ $(NULL) libkkc_shell_sources = \ candidate-list.vala \ candidate.vala \ key-event-filter.vala \ key-event.vala \ keymap.vala \ keysyms.vala \ map-file.vala \ nicola.vala \ rom-kana-utils.vala \ rom-kana.vala \ rule.vala \ user-rule.vala \ context.vala \ state.vala \ initial-state-handler.vala \ convert-sentence-state-handler.vala \ convert-segment-state-handler.vala \ dictionary.vala \ segment-dictionary.vala \ system-segment-dictionary.vala \ user-segment-dictionary.vala \ sentence-dictionary.vala \ user-sentence-dictionary.vala \ user-dictionary.vala \ dictionary-list.vala \ encoding.vala \ template.vala \ numeric-template.vala \ expression.vala \ $(NULL) libkkc_la_SOURCES = \ metadata-file.vala \ trellis-node.vala \ language-model.vala \ text-bigram-language-model.vala \ text-trigram-language-model.vala \ sorted-bigram-language-model.vala \ sorted-trigram-language-model.vala \ language-model-utils.vala \ decoder.vala \ bigram-decoder.vala \ trigram-decoder.vala \ segment-list.vala \ segment.vala \ bloom-filter.vala \ $(libkkc_shell_sources) \ utils.vala \ kkc.vala \ $(NULL) if HAVE_INTROSPECTION girdir = $(datadir)/gir-1.0 gir_DATA = Kkc-@KKC_API_VERSION@.gir typelibdir = $(libdir)/girepository-1.0 typelib_DATA = Kkc-@KKC_API_VERSION@.typelib Kkc-@KKC_API_VERSION@.typelib: Kkc-@KKC_API_VERSION@.gir @INTROSPECTION_COMPILER@ --shared-library=libkkc -o $@ $^ endif Kkc-@KKC_API_VERSION@.gir kkc-internals-@KKC_API_VERSION@.vapi kkc-@KKC_API_VERSION@.vapi: libkkc.la GITIGNOREFILES = \ $(libkkc_la_SOURCES:.vala=.c) \ libkkc_la_vala.stamp \ libkkc.h \ libkkc-internals.h \ libkkc.symbols \ $(NULL) CLEANFILES = \ kkc-@KKC_API_VERSION@.vapi \ kkc-internals-@KKC_API_VERSION@.vapi \ Kkc-@KKC_API_VERSION@.typelib \ Kkc-@KKC_API_VERSION@.gir \ kkc-1.0.pc \ $(NULL) pkgconfigdir = $(libdir)/pkgconfig pkgconfig_DATA = kkc-1.0.pc vapi_DATA = kkc-1.0.vapi kkc-1.0.deps vapidir = $(datadir)/vala/vapi EXTRA_DIST = \ config.vapi \ kkc-1.0.deps \ libkkc.symbols \ ks_tables.h \ keysyms.h \ keysyms.vapi \ $(NULL) -include $(top_srcdir)/git.mk libkkc-0.3.5/libkkc/bigram-decoder.vala000066400000000000000000000302061244473050600177340ustar00rootroot00000000000000/* * Copyright (C) 2012-2014 Daiki Ueno * Copyright (C) 2012-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { class NbestNode { public TrellisNode node; public double gn = 0.0; public double fn = double.MAX; public NbestNode? next; public NbestNode (TrellisNode node) { this.node = node; } } public class BigramDecoder : Decoder { public override Segment[] decode (string input, int nbest, int[] constraint) { return decode_with_costs (input, nbest, constraint, double.MAX, -double.MAX); } public override Segment[] decode_with_costs (string input, int nbest, int[] constraint, double max_distance, double min_path_cost) { var trellis = build_trellis (input, constraint); add_unknown_nodes (trellis, input, constraint); forward_search (trellis, input); var segments = backward_search (trellis, nbest, max_distance, min_path_cost); for (var i = 0; i < trellis.length; i++) { trellis[i].clear (); } return segments; } protected void add_unknown_nodes (ArrayList[] trellis, string input, int[] constraint) { for (var i = 1; i < trellis.length; i++) { for (var j = i; j < trellis.length && trellis[j].is_empty; j++) { if (!check_overlaps (constraint, i, j)) continue; long offset = input.index_of_nth_char (i - 1); long length = input.index_of_nth_char (j) - offset; var _input = input.substring (offset, length); LanguageModelEntry entry = { _input, _input, 2 }; var node = new UnigramTrellisNode (entry, j); trellis[j].add (node); } } } protected ArrayList[] build_trellis (string input, int[] constraint) { var length = input.char_count (); var trellis = new ArrayList[length + 2]; for (var i = 0; i < trellis.length; i++) { trellis[i] = new ArrayList (); } var bos_node = new UnigramTrellisNode (model.bos, 1); trellis[0].add (bos_node); var eos_node = new UnigramTrellisNode (model.eos, length + 1); trellis[length + 1].add (eos_node); for (var i = 0; i < length; i++) { long byte_offset = input.index_of_nth_char (i); var _input = input.substring (byte_offset); var entries = model.entries (_input); foreach (var entry in entries) { var j = i + entry.input.char_count (); if (!check_constraint (constraint, i, j)) continue; var node = new UnigramTrellisNode (entry, j); trellis[j].add (node); } } return trellis; } bool check_constraint (int[] constraint, int i, int j) { int last_c = 0; foreach (var c in constraint) { if (i == last_c && j == c) { return true; } last_c = c; } return i >= last_c; } bool check_overlaps (int[] constraint, int i, int j) { int last_c = 0; foreach (var c in constraint) { if ((last_c <= i && i <= c) && (last_c <= j && j <= c)) return true; last_c = c; } return i >= last_c; } protected void forward_search (ArrayList[] trellis, string input) { for (var i = 1; i < trellis.length; i++) { foreach (var node in trellis[i]) { int j = i - (int) node.length; if (j < 0) continue; double max_cost = - double.MAX; TrellisNode? max_pnode = null; foreach (var pnode in trellis[j]) { var cost = pnode.cumulative_cost + path_cost (pnode, node, j); if (cost > max_cost) { max_pnode = pnode; max_cost = cost; } } if (max_pnode == null) { max_pnode = trellis[i][0]; } node.cumulative_cost = max_cost; node.previous = max_pnode; #if DEBUG stdout.printf ("%s -> %s: %lf %lf %d %d\n", max_pnode.to_string (), node.to_string(), max_cost, path_cost (max_pnode, node, j), j, i); #endif } } } protected virtual double path_cost (TrellisNode pnode, TrellisNode node, int endpos) { var upnode = pnode as UnigramTrellisNode; var unode = node as UnigramTrellisNode; assert (upnode != null && unode != null); return model.bigram_backoff_cost (upnode.entry, unode.entry); } Segment nbest_node_to_segment (NbestNode nbest_node) { Segment? start_segment = null; Segment? previous_segment = null; for (; nbest_node.next != null; nbest_node = nbest_node.next) { for (var i = 0; i < nbest_node.node.entries.length; i++) { var entry = nbest_node.node.entries[i]; var segment = new Segment (entry.input, entry.output); if (start_segment == null) start_segment = segment; if (previous_segment != null) previous_segment.next = segment; previous_segment = segment; } } return start_segment; } protected Segment[] backward_search (ArrayList[] trellis, int nbest, double max_distance, double min_path_cost) { var bos_trellis_node = trellis[0][0]; var eos_trellis_node = trellis[trellis.length - 1][0]; if (nbest == 1) { Segment? segment = null; Segment? next_segment = null; for (var node = eos_trellis_node.previous; node != null; node = node.previous) { for (var i = node.entries.length - 1; i >= 0; i--) { var entry = node.entries[i]; if (entry == model.bos) break; segment = new Segment (entry.input, entry.output); segment.next = next_segment; next_segment = segment; } } return new Segment[] { segment }; } var trellis_nbest_map = new HashMap (); var open_list = new PriorityQueue (compare_nbest_node); var close_list = new PriorityQueue (compare_nbest_node); var duplicates = new Gee.HashSet (); var eos_nbest_node = new NbestNode (eos_trellis_node); trellis_nbest_map.set (eos_trellis_node, eos_nbest_node); open_list.add (eos_nbest_node); while (!open_list.is_empty) { var current_nbest_node = open_list.poll (); if (current_nbest_node.node == bos_trellis_node) { var output = concat_nbest_node_outputs (current_nbest_node); if (!duplicates.contains (output)) { if (eos_trellis_node.cumulative_cost - current_nbest_node.fn > max_distance) break; close_list.add (current_nbest_node); if (close_list.size == nbest) break; duplicates.add (output); } } else if (current_nbest_node.node.endpos >= current_nbest_node.node.length) { var i = (int) current_nbest_node.node.endpos - current_nbest_node.node.length; foreach (var trellis_node in trellis[i]) { var nbest_node = new NbestNode (trellis_node); var cost = path_cost (nbest_node.node, current_nbest_node.node, (int) i); if (trellis_node != bos_trellis_node && cost < min_path_cost) continue; nbest_node.gn = cost + current_nbest_node.gn; nbest_node.fn = nbest_node.gn + nbest_node.node.cumulative_cost; nbest_node.next = current_nbest_node; trellis_nbest_map.set (trellis_node, nbest_node); open_list.add (nbest_node); } } } ArrayList segments = new ArrayList (); foreach (var nbest_node in close_list) segments.add (nbest_node_to_segment (nbest_node.next)); return segments.to_array (); } static int compare_nbest_node (NbestNode a, NbestNode b) { if (a.fn == b.fn) return 0; else if (a.fn < b.fn) return 1; else return -1; } string concat_nbest_node_outputs (NbestNode nbest_node) { var builder = new StringBuilder (); while (nbest_node != null) { builder.append (nbest_node.node.output); nbest_node = nbest_node.next; } return builder.str; } BigramLanguageModel _model; public BigramLanguageModel model { get { return _model; } } public BigramDecoder (BigramLanguageModel model) { _model = model; } } } libkkc-0.3.5/libkkc/bloom-filter.vala000066400000000000000000000044531244473050600174700ustar00rootroot00000000000000/* * Copyright (C) 2012-2014 Daiki Ueno * Copyright (C) 2012-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ namespace Kkc { static uint32 murmur_hash3_32 (uint32 b0, uint32 b1, uint32 seed) { uint32 h1 = seed; const uint32 c1 = 0xcc9e2d51U; const uint32 c2 = 0x1b873593U; // body: b0 b0 *= c1; b0 = (b0 << 15) | (b0 >> (32 - 15)); b0 *= c2; h1 ^= b0; h1 = (h1 << 13) | (h1 >> (32 - 13)); h1 = h1 * 5 + 0xe6546b64U; // body: b1 b1 *= c1; b1 = (b1 << 15) | (b1 >> (32 - 15)); b1 *= c2; h1 ^= b1; h1 = (h1 << 13) | (h1 >> (32 - 13)); h1 = h1 * 5 + 0xe6546b64U; // No tail processing needed. // fmix h1 ^= 8; h1 ^= h1 >> 16; h1 *= 0x85ebca6bU; h1 ^= h1 >> 13; h1 *= 0xc2b2ae35U; h1 ^= h1 >> 16; return h1; } class BloomFilter : Object { MappedFile mmap; public BloomFilter (string filename) throws Error { this.mmap = new MappedFile (filename, false); } bool is_bit_set (uint32 index) { assert (index / 8 < mmap.get_length ()); uint8 *p = (uint8 *) mmap.get_contents () + index / 8; return (*p & (1 << (index % 8))) != 0; } public bool contains (uint32 b0, uint32 b1) { for (var k = 0; k < 4; k++) { var h = murmur_hash3_32 (b0, b1, k); var i = (uint32) (h * (mmap.get_length () * 8 / (double) 0xFFFFFFFF)); if (!is_bit_set (i)) return false; } return true; } } } libkkc-0.3.5/libkkc/candidate-list.vala000066400000000000000000000236411244473050600177620ustar00rootroot00000000000000/* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { /** * Object representing a candidate list. */ public class CandidateList : Object { ArrayList _candidates = new ArrayList (); // Don't make this a object property. In some cases we need // to update the cursor position without property // notification. See clear(). int _cursor_pos; /** * Current cursor position. */ public int cursor_pos { get { return _cursor_pos; } set { _cursor_pos = value; } } /** * Get the current candidate at the given index. * * @param index candidate position (-1 for the current cursor position) * * @return a Candidate */ public new Candidate @get (int index = -1) { if (index < 0) index = _cursor_pos; assert (0 <= index && index < size); return _candidates.get (index); } /** * The number of candidate in the candidate list. */ public int size { get { return _candidates.size; } } Map seen = new Gee.HashMap (); internal void clear () { bool is_populated = false; bool is_cursor_changed = false; seen.clear (); if (_candidates.size > 0) { _candidates.clear (); is_populated = true; } if (_cursor_pos >= 0) { _cursor_pos = -1; is_cursor_changed = true; } // To avoid race condition in the caller side where // monitoring the property changes, emit signals after // modifying _candidates and _cursor_pos. if (is_populated) { populated (); } if (is_cursor_changed) { notify_property ("cursor-pos"); } } internal bool contains (Candidate candidate) { return candidate.output in seen; } internal bool add (Candidate candidate) { if (candidate.output in seen) { var c = seen.get (candidate.output); // If the given candidate has annotation and the // existing one doesn't, copy it. if (c.annotation == null && candidate.annotation != null) c.annotation = candidate.annotation; return false; } else { _candidates.add (candidate); seen.set (candidate.output, candidate); return true; } } internal bool add_all (CandidateList other) { bool retval = false; foreach (var c in other._candidates) { if (add (c)) retval = true; } return retval; } internal Candidate[] to_array () { return _candidates.to_array (); } uint get_page_start_cursor_pos (uint pos) { return (pos / page_size) * page_size; } /** * Select a candidate in the current page. * * @param index_in_page cursor position in the page to select * * @return `true` if a candidate is selected, `false` otherwise */ public bool select_at (uint index_in_page) { assert (index_in_page < page_size); var page_offset = get_page_start_cursor_pos (cursor_pos); if (page_offset + index_in_page < size) { _cursor_pos = (int) (page_offset + index_in_page); notify_property ("cursor-pos"); select (); return true; } return false; } /** * Select the current candidate. */ public void select () { Candidate candidate = this.get (); selected (candidate); } /** * Create a new CandidateList. * * @param page_start starting index of pagination * @param page_size page size * @param round whether to loop over the candidate list * * @return a new CandidateList */ public CandidateList (uint page_start = 4, uint page_size = 7, bool round = false) { this.page_start = page_start; this.page_size = page_size; this.round = round; } /** * Select the first candidate. * * @return `true` if cursor position has changed, `false` otherwise */ public bool first () { if (_candidates.size > 0) { _cursor_pos = 0; notify_property ("cursor-pos"); return true; } return false; } /** * Move cursor forward. * * @return `true` if cursor position has changed, `false` otherwise */ public virtual bool next () { if (cursor_pos < page_start) { return cursor_down (); } else { return page_down (); } } /** * Move cursor backward. * * @return `true` if cursor position has changed, `false` otherwise */ public virtual bool previous () { if (cursor_pos <= page_start) { return cursor_up (); } else { return page_up (); } } bool cursor_move (int step) { if (_candidates.is_empty || step == 0) return false; if (round) { var pos = (_cursor_pos + step) % _candidates.size; if (pos < 0) pos += _candidates.size; _cursor_pos = pos; notify_property ("cursor-pos"); return true; } else { var pos = _cursor_pos + step; if (0 <= pos && pos < _candidates.size) { _cursor_pos = pos; notify_property ("cursor-pos"); return true; } } return false; } /** * Move cursor to the previous candidate. * * @return `true` if cursor position has changed, `false` otherwise. */ public bool cursor_up () { return cursor_move (-1); } /** * Move cursor to the next candidate. * * @return `true` if cursor position has changed, `false` otherwise */ public bool cursor_down () { return cursor_move (1); } bool page_move (int step) { if (_candidates.is_empty || step == 0) return false; if (round) { var pos = (_cursor_pos + page_size * step) % _candidates.size; if (pos < 0) pos += _candidates.size; pos = get_page_start_cursor_pos (pos); if (pos != _cursor_pos) { _cursor_pos = (int) pos; notify_property ("cursor-pos"); return true; } } else { var pos = _cursor_pos + page_size * step; if (0 <= pos && pos < _candidates.size) { pos = get_page_start_cursor_pos (pos); if (pos != _cursor_pos) { _cursor_pos = (int) pos; notify_property ("cursor-pos"); return true; } } } return false; } /** * Move cursor to the previous page. * * @return `true` if cursor position has changed, `false` otherwise */ public bool page_up () { return page_move (-1); } /** * Move cursor to the next page. * * @return `true` if cursor position has changed, `false` otherwise */ public bool page_down () { return page_move (1); } /** * Starting index of paging. */ public uint page_start { get; set; } /** * Page size. */ public uint page_size { get; set; } /** * Flag to indicate whether to loop over the candidates. */ public bool round { get; set; } /** * Flag to indicate whether page (lookup table) is visible. */ public bool page_visible { get { return _cursor_pos >= (int) page_start; } } /** * Signal emitted when candidates are filled and ready for traversal. */ public signal void populated (); /** * Signal emitted when a candidate is selected. * * @param candidate selected candidate */ public signal void selected (Candidate candidate); } } libkkc-0.3.5/libkkc/candidate.vala000066400000000000000000000055501244473050600170100ustar00rootroot00000000000000/* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { /** * Object representing a candidate in dictionaries. */ public class Candidate : Object { /** * Midasi word which generated this candidate. */ public string midasi { get; construct set; } /** * Flag to indicate whether this candidate is generated as a * result of okuri-ari conversion. */ public bool okuri { get; construct set; } /** * Base string value of the candidate. */ public string text { get; set; } /** * Optional annotation text associated with the candidate. */ public string? annotation { get; set; } /** * Output string shown instead of text. * * This is particularly useful to display a candidate of * numeric conversion. */ public string output { get; set; } /** * Convert the candidate to string. * @return a string representing the candidate */ public string to_string () { if (annotation != null) { return text + ";" + annotation; } else { return text; } } /** * Create a new Candidate. * * @param midasi midasi (index) word which generate the candidate * @param okuri whether the candidate is a result of okuri-ari conversion * @param text base string value of the candidate * @param annotation optional annotation text to the candidate * @param output optional output text used instead of text * * @return a new KkcCandidate */ public Candidate (string midasi, bool okuri, string text, string? annotation = null, string? output = null) { this.midasi = midasi; this.okuri = okuri; this.text = text; this.annotation = annotation; this.output = output == null ? text : output; } } } libkkc-0.3.5/libkkc/config.vapi000066400000000000000000000006151244473050600163520ustar00rootroot00000000000000[CCode (cprefix = "", lower_case_cprefix = "", cheader_filename = "config.h")] namespace Config { public const string PACKAGE_DATADIR; public const string PACKAGE_NAME; public const string PACKAGE_VERSION; public const string DATADIR; public const string LIBDIR; public const string PKGDATADIR; public const string LOCALEDIR; public const string GETTEXT_PACKAGE; } libkkc-0.3.5/libkkc/context.vala000066400000000000000000000264221244473050600165610ustar00rootroot00000000000000/* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { /** * Main entry point of libkkc. */ public class Context : Object { /** * Dictionaries. */ public DictionaryList dictionaries { get { return state.dictionaries; } set { state.dictionaries = value; } } /** * Current candidates. */ public CandidateList candidates { get { return state.candidates; } } /** * Current segments. */ public SegmentList segments { get { return state.segments; } } /** * Current input string. */ public string input { owned get { return state.get_input (); } } /** * Current cursor position in input string. */ public int input_cursor_pos { get { return state.input_cursor_pos; } } /** * Current cursor width in input string. */ public uint input_cursor_width { get { return state.input_cursor_width; } } State state; Gee.Map handlers = new HashMap (); /** * Current input mode. */ public InputMode input_mode { get { return state.input_mode; } set { state.input_mode = value; } } /** * Punctuation style used in romaji-to-kana conversion. */ public PunctuationStyle punctuation_style { get { return state.punctuation_style; } set { state.punctuation_style = value; } } /** * Flag to indicate if romaji-to-kana conversion is auto-corrected. */ public bool auto_correct { get { return state.auto_correct; } set { state.auto_correct = value; } } void filter_forwarded_cb (KeyEvent key) { process_key_event_internal (key); } /** * The name of typing rule. */ public Rule typing_rule { get { return state.typing_rule; } set { state.typing_rule.filter.forwarded.disconnect ( filter_forwarded_cb); state.typing_rule = value; state.typing_rule.filter.forwarded.connect ( filter_forwarded_cb); } } /** * Filter which runs before process_key_event. * * This is particularly useful for NICOLA. * @see NicolaKeyEventFilter */ public KeyEventFilter key_event_filter { owned get { return state.typing_rule.filter; } } /** * Create a new Context. * * @param model a language model * * @return a new Context */ public Context (LanguageModel model) { handlers.set (typeof (InitialStateHandler), new InitialStateHandler ()); handlers.set (typeof (ConvertSentenceStateHandler), new ConvertSentenceStateHandler ()); handlers.set (typeof (ConvertSegmentStateHandler), new ConvertSegmentStateHandler ()); state = new State (model, new DictionaryList ()); connect_state_signals (state); } ~Context () { disconnect_state_signals (state); dictionaries.clear (); } void notify_input_mode_cb (Object s, ParamSpec? p) { notify_property ("input-mode"); } void candidates_selected_cb () { notify_property ("input"); } void request_selection_text_cb () { request_selection_text (); } void connect_state_signals (State state) { state.notify["input-mode"].connect (notify_input_mode_cb); state.request_selection_text.connect (request_selection_text_cb); state.candidates.selected.connect (candidates_selected_cb); } void disconnect_state_signals (State state) { state.notify["input-mode"].disconnect (notify_input_mode_cb); state.request_selection_text.disconnect (request_selection_text_cb); state.candidates.selected.disconnect (candidates_selected_cb); } public signal void request_selection_text (); /** * Set the current selection text. * * @param text selection text */ public void set_selection_text (string? text) { if (text == null) state.selection.erase (); else state.selection.assign (text); } /** * Pass key events (separated by spaces) to the context. * * This function is rarely used in programs but in unit tests. * * @param keyseq a string representing key events, separated by " " * * @return `true` if any of key events are handled, `false` otherwise */ public bool process_key_events (string keyseq) throws KeyEventFormatError { Gee.List keys = new ArrayList (); var builder = new StringBuilder (); bool complex = false; bool escaped = false; int index = 0; unichar uc; while (keyseq.get_next_char (ref index, out uc)) { if (escaped) { builder.append_unichar (uc); escaped = false; continue; } switch (uc) { case '\\': escaped = true; break; case '(': if (complex) throw new KeyEventFormatError.PARSE_FAILED ( "bare '(' is not allowed in complex keyseq"); complex = true; builder.append_unichar (uc); break; case ')': if (!complex) { throw new KeyEventFormatError.PARSE_FAILED ( "bare ')' is not allowed in simple keyseq"); } complex = false; builder.append_unichar (uc); keys.add (builder.str); builder.erase (); break; case ' ': if (complex) builder.append_unichar (uc); else if (builder.len > 0) { keys.add (builder.str); builder.erase (); } break; default: builder.append_unichar (uc); break; } } if (complex) throw new KeyEventFormatError.PARSE_FAILED ( "premature end of key events"); if (builder.len > 0) keys.add (builder.str); bool retval = false; foreach (var key in keys) { if (key == "SPC") key = "space"; else if (key == "TAB") key = "Tab"; else if (key == "RET") key = "Return"; else if (key == "DEL") key = "BackSpace"; KeyEvent ev = new KeyEvent.from_string (key); if (process_key_event (ev) && !retval) retval = true; } return retval; } /** * Pass one key event to the context. * * @param key a key event * * @return `true` if the key event is handled, `false` otherwise */ public bool process_key_event (KeyEvent key) { KeyEvent? _key = key_event_filter.filter_key_event (key); if (_key == null) { return false; } return process_key_event_internal (_key); } bool process_key_event_internal (KeyEvent key) { while (true) { var handler_type = state.handler_type; var handler = handlers.get (handler_type); state.this_command_key = key; if (handler.process_key_event (state, key)) { notify_property ("input"); state.last_command_key = key; return true; } // state.handler_type may change if handler cannot // handle the event. In that case retry with the new // handler. Otherwise exit the loop. if (handler_type == state.handler_type) { return false; } } } /** * Reset the context. */ public void reset () { // will clear state.candidates, state.segments, but not state.output state.reset (); clear_output (); } /** * Check if there is pending output * * @return `true` if there is output, `false` otherwise */ public bool has_output () { return state.output.len > 0; } string retrieve_output (bool clear) { var output = ""; if (state.output.len > 0) output = state.output.str; if (clear) { state.output.erase (); } return output; } /** * Peek (retrieve, but not remove) the current output string. * * @return an output string */ public string peek_output () { return retrieve_output (false); } /** * Poll (retrieve and remove) the current output string. * * @return an output string */ public string poll_output () { return retrieve_output (true); } /** * Clear the output buffer. */ public void clear_output () { state.output.erase (); } } } libkkc-0.3.5/libkkc/convert-segment-state-handler.vala000066400000000000000000000073511244473050600227460ustar00rootroot00000000000000/* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ namespace Kkc { class ConvertSegmentStateHandler : StateHandler { construct { register_command_callback ("next-candidate", do_next_candidate); register_command_callback ("previous-candidate", do_previous_candidate); register_command_callback ("purge-candidate", do_purge_candidate); register_command_callback ("abort", do_clear_unhandled); register_command_callback ("next-segment", do_select_unhandled); register_command_callback ("previous-segment", do_select_unhandled); register_command_callback ("first-segment", do_select_unhandled); register_command_callback ("last-segment", do_select_unhandled); register_command_callback ("delete", do_clear_unhandled); register_command_callback ("original-candidate", do_clear_unhandled); var enum_class = (EnumClass) typeof (KanaMode).class_ref (); for (int i = enum_class.minimum; i <= enum_class.maximum; i++) { var enum_value = enum_class.get_value (i); if (enum_value != null) register_command_callback ( "convert-" + enum_value.value_nick, do_clear_unhandled); } register_command_callback (null, do_select_unhandled); } bool do_next_candidate (string? command, State state, KeyEvent key) { state.candidates.cursor_down (); return true; } bool do_previous_candidate (string? command, State state, KeyEvent key) { state.candidates.cursor_up (); return true; } bool do_purge_candidate (string? command, State state, KeyEvent key) { if (state.candidates.cursor_pos >= 0) { var candidate = state.candidates.get (); state.purge_candidate (candidate); state.reset (); } return true; } bool do_select_unhandled (string? command, State state, KeyEvent key) { if (state.candidates.cursor_pos >= 0) state.candidates.select (); state.handler_type = typeof (ConvertSentenceStateHandler); return false; } bool do_clear_unhandled (string? command, State state, KeyEvent key) { state.candidates.clear (); state.handler_type = typeof (ConvertSentenceStateHandler); return false; } public override bool process_key_event (State state, KeyEvent key) { return dispatch_command (state, key); } } } libkkc-0.3.5/libkkc/convert-sentence-state-handler.vala000066400000000000000000000131731244473050600231070ustar00rootroot00000000000000/* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ namespace Kkc { class ConvertSentenceStateHandler : StateHandler { class ConvertCommandHandler : CommandHandler, Object { KanaMode mode; public ConvertCommandHandler (KanaMode mode) { this.mode = mode; } public bool call (string? command, State state, KeyEvent key) { state.convert_segment_by_kana_mode (mode); return true; } } construct { register_command_callback ("next-candidate", do_start_segment_conversion); register_command_callback ("previous-candidate", do_start_segment_conversion); register_command_callback ("purge-candidate", do_start_segment_conversion); register_command_callback ("original-candidate", do_original_candidate); register_command_callback ("expand-segment", do_expand_segment); register_command_callback ("shrink-segment", do_shrink_segment); register_command_callback ("next-segment", do_next_segment); register_command_callback ("previous-segment", do_previous_segment); register_command_callback ("first-segment", do_first_segment); register_command_callback ("last-segment", do_last_segment); register_command_callback ("abort", do_clear_unhandled); register_command_callback ("delete", do_clear_unhandled); var enum_class = (EnumClass) typeof (KanaMode).class_ref (); for (int i = enum_class.minimum; i <= enum_class.maximum; i++) { var enum_value = enum_class.get_value (i); if (enum_value != null) register_command_handler ( "convert-" + enum_value.value_nick, new ConvertCommandHandler ( (KanaMode) enum_value.value)); } register_command_callback (null, do_); } bool do_original_candidate (string? command, State state, KeyEvent key) { var segment = state.segments[state.segments.cursor_pos]; segment.output = segment.input; return true; } bool do_expand_segment (string? command, State state, KeyEvent key) { if (state.segments.cursor_pos < state.segments.size - 1) state.resize_segment (1); return true; } bool do_shrink_segment (string? command, State state, KeyEvent key) { if (state.segments[state.segments.cursor_pos].input.char_count () > 1) state.resize_segment (-1); return true; } bool do_next_segment (string? command, State state, KeyEvent key) { state.segments.next_segment (); return true; } bool do_previous_segment (string? command, State state, KeyEvent key) { state.segments.previous_segment (); return true; } bool do_first_segment (string? command, State state, KeyEvent key) { state.segments.first_segment (); return true; } bool do_last_segment (string? command, State state, KeyEvent key) { state.segments.last_segment (); return true; } bool do_start_segment_conversion (string? command, State state, KeyEvent key) { state.lookup (state.segments[state.segments.cursor_pos]); state.candidates.first (); state.handler_type = typeof (ConvertSegmentStateHandler); return false; } bool do_clear_unhandled (string? command, State state, KeyEvent key) { state.segments.clear (); state.handler_type = typeof (InitialStateHandler); return true; } bool do_ (string? command, State state, KeyEvent key) { state.output.append (state.segments.get_output ()); state.select_sentence (); state.reset (); if (command == "commit" || // Consider non-printable key as commit command // FIXME: Make this check more reliable (command == null && key.unicode == '\0')) return true; if (command == null && (key.modifiers == 0 || key.modifiers == Kkc.ModifierType.SHIFT_MASK)) return false; return true; } public override bool process_key_event (State state, KeyEvent key) { return dispatch_command (state, key); } } } libkkc-0.3.5/libkkc/decoder.vala000066400000000000000000000033311244473050600164740ustar00rootroot00000000000000/* * Copyright (C) 2012-2014 Daiki Ueno * Copyright (C) 2012-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { public abstract class Decoder : Object { public abstract Segment[] decode (string input, int nbest, int[] constraint); public abstract Segment[] decode_with_costs (string input, int nbest, int[] constraint, double max_distance, double min_path_cost); public static Decoder? create (LanguageModel model) { if (model is TrigramLanguageModel) { return new TrigramDecoder (model as TrigramLanguageModel); } else if (model is BigramLanguageModel) { return new BigramDecoder (model as BigramLanguageModel); } else { assert_not_reached (); } } } } libkkc-0.3.5/libkkc/dictionary-list.vala000066400000000000000000000060031244473050600202040ustar00rootroot00000000000000/* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { /** * Type to specify how a dictionary callback is handled. */ public enum DictionaryCallbackReturn { /** * Continue to the next dictionary. */ CONTINUE, /** * Stop the processing. */ REMOVE } public class DictionaryList : Object { Gee.List dictionaries = new ArrayList (); /** * The number of dictionaries registered. */ public int size { get { return dictionaries.size; } } /** * Register dictionary. * * @param dictionary a dictionary */ public void add (Dictionary dictionary) { dictionaries.add (dictionary); } /** * Unregister dictionary. * * @param dictionary a dictionary */ public void remove (Dictionary dictionary) { dictionaries.remove (dictionary); } /** * Remove all dictionaries. */ public void clear () { dictionaries.clear (); } public delegate DictionaryCallbackReturn DictionaryCallback ( Dictionary dictionary); /** * Call function with dictionaries. * * @param type type of dictionary * @param callback callback */ public void call (Type? type, DictionaryCallback callback) { foreach (var dictionary in dictionaries) { if ((type == null || dictionary.get_type ().is_a (type)) && callback (dictionary) == DictionaryCallbackReturn.REMOVE) return; } } /** * Save dictionaries on to disk. */ public void save () { call (null, (dictionary) => { try { dictionary.save (); } catch (Error e) { warning ("can't save dictionary: %s", e.message); } return DictionaryCallbackReturn.CONTINUE; }); } } }libkkc-0.3.5/libkkc/dictionary.vala000066400000000000000000000114751244473050600172440ustar00rootroot00000000000000/* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ namespace Kkc { abstract class DictionaryUtils : Object { /** * Parse a line consisting of candidates separated by "/". * * @param line a line consisting of candidates * @return an array of Candidates */ public static Candidate[] split_candidates (string midasi, bool okuri, string line) { var strv = line.strip ().slice (1, -1).split ("/"); Candidate[] candidates = new Candidate[strv.length]; for (int i = 0; i < strv.length; i++) { var candidate_str = unescape (strv[i]); var text_annotation = candidate_str.split (";", 2); string text, annotation; if (text_annotation.length == 2) { text = text_annotation[0]; annotation = text_annotation[1]; } else { text = candidate_str; annotation = null; } candidates[i] = new Candidate (midasi, okuri, text, annotation); } return candidates; } /** * Format an array of Candidates to be saved in a dictionary file. * * @param candidates an array of Candidate * @return a string */ public static string join_candidates (Candidate[] candidates) { var strv = new string[candidates.length]; for (int i = 0; i < candidates.length; i++) { strv[i] = escape (candidates[i].to_string ()); } return "/" + string.joinv ("/", strv) + "/"; } public static string escape (string input) { var builder = new StringBuilder (); int index = 0; unichar uc; while (input.get_next_char (ref index, out uc)) { switch (uc) { case '\\': case '/': case ' ': case '\t': case '\n': builder.append ("\\x%02x".printf (uc)); break; default: builder.append_unichar (uc); break; } } return builder.str; } static bool unescape_eval (MatchInfo info, StringBuilder result) { var hex = info.fetch (1); assert (hex != null); result.append (Utils.parse_hex (hex)); return false; } public static string unescape (string input) { try { return escape_regex.replace_eval (input, -1, 0, 0, unescape_eval); } catch (GLib.RegexError e) { assert_not_reached (); } } static Regex escape_regex; static construct { try { escape_regex = new Regex ( "\\\\x([0-9A-Fa-f]{1,2})"); } catch (GLib.RegexError e) { assert_not_reached (); } } } /** * Base interface of dictionaries. */ public interface Dictionary : Object { /** * Reload the dictionary. * * @throws GLib.Error when reading the dictionary failed. */ public abstract void reload () throws GLib.Error; /** * Save the dictionary on disk. * * @throws GLib.Error if the dictionary cannot be saved. */ public virtual void save () throws GLib.Error { // FIXME: throw an error when the dictionary is read only } } public errordomain DictionaryError { NOT_READABLE, MALFORMED_INPUT } } libkkc-0.3.5/libkkc/encoding.vala000066400000000000000000000105211244473050600166540ustar00rootroot00000000000000/* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ namespace Kkc { // XXX: we use Vala string to represent byte array, assuming that // it does not contain null element class EncodingConverter : Object, Initable { static const int BUFSIZ = 4096; static const string INTERNAL_ENCODING = "UTF-8"; struct EncodingCodingSystemEntry { string key; string value; } static const EncodingCodingSystemEntry ENCODING_TO_CODING_SYSTEM_RULE[] = { { "UTF-8", "utf-8" }, { "EUC-JP", "euc-jp" }, { "Shift_JIS", "shift_jis" }, { "ISO-2022-JP", "iso-2022-jp" }, { "EUC-JISX0213", "euc-jisx0213" }, { "EUC-JISX0213", "euc-jis-2004" }, { "SHIFT_JISX0213", "shift_jis-2004" } }; static Regex coding_cookie_regex; static construct { try { coding_cookie_regex = new Regex ( "-\\*-.*[ \t]coding:[ \t]*([^ \t;]+?)[ \t;].*-\\*-"); } catch (GLib.RegexError e) { assert_not_reached (); } } internal static string? extract_coding_system (string line) { MatchInfo info = null; if (coding_cookie_regex.match (line, 0, out info)) { return info.fetch (1); } return null; } public string encoding { get; construct set; } CharsetConverter encoder; CharsetConverter decoder; public bool init (GLib.Cancellable? cancellable = null) throws Error { encoder = new CharsetConverter (encoding, INTERNAL_ENCODING); decoder = new CharsetConverter (INTERNAL_ENCODING, encoding); return true; } internal EncodingConverter (string encoding) throws Error { Object (encoding: encoding); init (null); } internal EncodingConverter.from_coding_system (string coding) throws Error { foreach (var entry in ENCODING_TO_CODING_SYSTEM_RULE) { if (entry.value == coding) { this (entry.key); return; } } assert_not_reached (); } string convert (CharsetConverter converter, string str) throws GLib.Error { uint8[] inbuf = str.data; uint8[] outbuf = new uint8[BUFSIZ]; StringBuilder builder = new StringBuilder (); size_t total_bytes_read = 0; while (total_bytes_read < inbuf.length) { size_t bytes_read, bytes_written; // FIXME: we could split inbuf to small segments (< // BUFSIZ) here to reduce memory copy. However it // requires proper error handling when the end of // segmented buffer lies across a UTF-8 character // boundary. converter.convert (inbuf[total_bytes_read : inbuf.length], outbuf, ConverterFlags.INPUT_AT_END, out bytes_read, out bytes_written); for (int i = 0; i < bytes_written; i++) builder.append_c ((char)outbuf[i]); total_bytes_read += bytes_read; } return builder.str; } internal string encode (string internal_str) throws GLib.Error { return convert (encoder, internal_str); } internal string decode (string external_str) throws GLib.Error { return convert (decoder, external_str); } } } libkkc-0.3.5/libkkc/expression.vala000066400000000000000000000175511244473050600172770ustar00rootroot00000000000000/* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { enum ExpressionNodeType { ARRAY, SYMBOL, STRING } struct ExpressionNode { public ExpressionNodeType type; public LinkedList nodes; public string data; public ExpressionNode (ExpressionNodeType type) { this.type = type; } } class ExpressionReader : Object { public ExpressionNode read_symbol (string expr, ref int index) { var builder = new StringBuilder (); bool stop = false; unichar uc = '\0'; while (!stop && expr.get_next_char (ref index, out uc)) { switch (uc) { case '\\': if (expr.get_next_char (ref index, out uc)) { builder.append_unichar (uc); } break; case '(': case ')': case '"': case ' ': stop = true; break; default: builder.append_unichar (uc); break; } } var node = ExpressionNode (ExpressionNodeType.SYMBOL); node.data = builder.str; return node; } public ExpressionNode? read_string (string expr, ref int index) { return_val_if_fail (index < expr.length && expr[index] == '"', null); var builder = new StringBuilder (); index++; bool stop = false; unichar uc = '\0'; while (!stop && expr.get_next_char (ref index, out uc)) { switch (uc) { case '\\': if (expr.get_next_char (ref index, out uc)) { switch (uc) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': int start = index; int num = (int) uc - '0'; while (expr.get_next_char (ref index, out uc)) { if (index - start == 3) break; if (uc < '0' || uc > '7') break; num <<= 3; num += (int) uc - '0'; } index--; uc = (unichar) num; break; case 'x': int num = 0; while (expr.get_next_char (ref index, out uc)) { uc = uc.tolower (); if ('0' <= uc && uc <= '9') { num <<= 4; num += (int) uc - '0'; } else if ('a' <= uc && uc <= 'f') { num <<= 4; num += (int) uc - 'a' + 10; } else break; } index--; uc = (unichar) num; break; default: break; } builder.append_unichar (uc); } break; case '\"': stop = true; break; default: builder.append_unichar (uc); break; } } var node = ExpressionNode (ExpressionNodeType.STRING); node.data = builder.str; return node; } public ExpressionNode? read (string expr, ref int index) { return_val_if_fail (index < expr.length && expr[index] == '(', null); var nodes = new LinkedList (); bool stop = false; index++; unichar uc = '\0'; while (!stop && expr.get_next_char (ref index, out uc)) { switch (uc) { case ' ': break; case ')': index++; stop = true; break; case '(': index--; nodes.add (read (expr, ref index)); break; case '"': index--; nodes.add (read_string (expr, ref index)); break; default: index--; nodes.add (read_symbol (expr, ref index)); break; } } var node = ExpressionNode (ExpressionNodeType.ARRAY); node.nodes = nodes; return node; } } class ExpressionEvaluator : Object { public string? eval (ExpressionNode node) { if (node.type == ExpressionNodeType.ARRAY) { var iter = node.nodes.list_iterator (); if (iter.next ()) { var funcall = iter.get (); if (funcall.type == ExpressionNodeType.SYMBOL) { // FIXME support other functions in more extensible way if (funcall.data == "concat") { var builder = new StringBuilder (); while (iter.next ()) { var arg = iter.get (); if (arg.type == ExpressionNodeType.STRING) { builder.append (arg.data); } } return builder.str; } else if (funcall.data == "current-time-string") { var datetime = new DateTime.now_local (); return datetime.format ("%a, %d %b %Y %T %z"); } else if (funcall.data == "pwd") { return Environment.get_current_dir (); } else if (funcall.data == "kkc-version") { return "%s/%s".printf (Config.PACKAGE_NAME, Config.PACKAGE_VERSION); } } } } return null; } } abstract class Expression : Object { public static string eval (string text) { if (text.has_prefix ("(")) { var reader = new ExpressionReader (); int index = 0; var node = reader.read (text, ref index); var evaluator = new ExpressionEvaluator (); var result = evaluator.eval (node); if (result != null) return result; } return text; } } } libkkc-0.3.5/libkkc/initial-state-handler.vala000066400000000000000000000341111244473050600212510ustar00rootroot00000000000000/* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ namespace Kkc { class InitialStateHandler : StateHandler { class ConvertCommandHandler : CommandHandler, Object { KanaMode mode; public ConvertCommandHandler (KanaMode mode) { this.mode = mode; } public bool call (string? command, State state, KeyEvent key) { state.finish_input_editing (); if (state.input_characters.size > 0) { state.selection.erase (); state.overriding_input = state.convert_rom_kana_characters_by_kana_mode ( state.input_characters, mode); return true; } return false; } } construct { var enum_class = (EnumClass) typeof (KanaMode).class_ref (); for (int i = enum_class.minimum; i <= enum_class.maximum; i++) { var enum_value = enum_class.get_value (i); if (enum_value != null) register_command_handler ( "convert-" + enum_value.value_nick, new ConvertCommandHandler ( (KanaMode) enum_value.value)); } register_command_callback ("abort", do_abort); register_command_callback ("complete", do_complete); register_command_callback ("delete", do_delete); register_command_callback ("delete-forward", do_delete_forward); register_command_callback ("next-candidate", do_next_candidate); register_command_callback ("next-segment", do_next_character); register_command_callback ("previous-segment", do_previous_character); register_command_callback ("first-segment", do_first_character); register_command_callback ("last-segment", do_last_character); register_command_callback ("quote", do_quote); register_command_callback ("register", do_register); register_command_callback (null, do_); } bool do_quote (string? command, State state, KeyEvent key) { state.quoted = true; return true; } bool do_register (string? command, State state, KeyEvent key) { state.request_selection_text (); return true; } bool do_abort (string? command, State state, KeyEvent key) { if (state.overriding_input != null) { state.overriding_input = null; return true; } if (state.input_characters.size > 0 || state.rom_kana_converter.pending_output.length > 0) { state.reset (); return true; } return false; } bool do_delete (string? command, State state, KeyEvent key) { if (state.overriding_input != null) { state.overriding_input = null; return true; } if (state.rom_kana_converter.delete ()) return true; if (state.input_characters_cursor_pos >= 0) { if (state.input_characters_cursor_pos > 0) state.input_characters.remove_at ( --state.input_characters_cursor_pos); return true; } if (state.input_characters.size > 0) { state.input_characters.remove_at ( state.input_characters.size - 1); return true; } return false; } bool do_delete_forward (string? command, State state, KeyEvent key) { if (state.input_characters_cursor_pos >= 0 && state.input_characters_cursor_pos < state.input_characters.size) { state.input_characters.remove_at ( state.input_characters_cursor_pos); if (state.input_characters_cursor_pos == state.input_characters.size) state.input_characters_cursor_pos = -1; return true; } return false; } bool do_complete (string? command, State state, KeyEvent key) { state.finish_input_editing (); if (state.input_characters.size > 0) { if (state.completion_iterator == null) state.completion_start (state.get_input ()); if (state.completion_iterator != null) { state.overriding_input = state.completion_iterator.get (); if (state.completion_iterator.has_next ()) state.completion_iterator.next (); } return true; } return false; } bool do_next_candidate (string? command, State state, KeyEvent key) { state.finish_input_editing (); if (state.input_characters.size == 0) return false; if (state.selection.len > 0) { var input = state.get_input (); var segment = new Segment (input, state.selection.str); state.selection.erase (); state.segments.set_segments (segment); state.segments.first_segment (); state.lookup (state.segments[state.segments.cursor_pos]); state.candidates.first (); state.handler_type = typeof (ConvertSegmentStateHandler); return true; } if (state.segments.size == 0) { state.finish_input_editing (); string input = RomKanaUtils.get_hiragana (state.get_input ()); var output = state.lookup_single (input); if (output != null) { var segment = new Segment (input, output); state.segments.set_segments (segment); } else { state.convert_sentence (input); } state.segments.first_segment (); state.handler_type = typeof (ConvertSentenceStateHandler); return true; } return true; } bool do_next_character (string? command, State state, KeyEvent key) { state.finish_input_editing (); if (state.input_characters.size == 0) return false; if (state.input_characters_cursor_pos == state.input_characters.size - 1) state.input_characters_cursor_pos = -1; else if (state.input_characters_cursor_pos >= 0 && state.input_characters_cursor_pos < state.input_characters.size - 1) state.input_characters_cursor_pos++; return true; } bool do_previous_character (string? command, State state, KeyEvent key) { state.finish_input_editing (); if (state.input_characters.size == 0) return false; if (state.input_characters_cursor_pos < 0) { state.finish_input_editing (); state.input_characters_cursor_pos = state.input_characters.size - 1; return true; } if (state.input_characters_cursor_pos > 0) state.input_characters_cursor_pos--; return true; } bool do_first_character (string? command, State state, KeyEvent key) { state.finish_input_editing (); if (state.input_characters.size == 0) return false; state.input_characters_cursor_pos = 0; return true; } bool do_last_character (string? command, State state, KeyEvent key) { state.finish_input_editing (); if (state.input_characters.size == 0) return false; state.input_characters_cursor_pos = state.input_characters.size - 1; return true; } bool do_ (string? command, State state, KeyEvent key) { bool retval = false; if (state.overriding_input != null) { state.output.append (state.get_input ()); state.overriding_input = null; state.reset (); retval = true; } if ((key.modifiers == 0 || key.modifiers == Kkc.ModifierType.SHIFT_MASK)) { if (state.rom_kana_converter.is_valid (key.unicode)) { state.rom_kana_converter.append (key.unicode); if (state.rom_kana_converter.produced.size > 0) { if (state.input_characters_cursor_pos >= 0) { state.input_characters.insert_all ( state.input_characters_cursor_pos, state.rom_kana_converter.produced); foreach (var c in state.rom_kana_converter.produced) { state.input_characters_cursor_pos += c.output.char_count (); } } else { state.input_characters.add_all ( state.rom_kana_converter.produced); } state.rom_kana_converter.produced.clear (); } return true; } else if (0x21 <= key.unicode && key.unicode <= 0x7E) { state.finish_input_editing (); var c = RomKanaCharacter () { output = RomKanaUtils.convert_by_kana_mode ( key.unicode.to_string (), (KanaMode) state.input_mode), input = key.unicode.to_string () }; if (state.input_characters_cursor_pos >= 0) { state.input_characters.insert ( state.input_characters_cursor_pos, c); state.input_characters_cursor_pos++; } else { state.input_characters.add (c); } state.rom_kana_converter.produced.clear (); return true; } } var last_input = state.get_input (); state.finish_input_editing (); var input = state.get_input (); state.output.append (input); state.reset (); return retval || input.length > 0 || last_input != input; } public override bool process_key_event (State state, KeyEvent key) { // In the initial state, we need to process some special // commands (e.g. quoted insert, input mode switch, etc.) // prior to standard commands. var command = state.lookup_key (key); // Clear completion data set by the last command. if (state.last_command_key != null) { string last_command = state.lookup_key (state.last_command_key); if (last_command == "complete" && command != "complete") { if (state.overriding_input != null) { var builder = new StringBuilder (); builder.append (state.input_characters.get_input ()); state.input_characters.clear (); state.input_characters.add (RomKanaCharacter () { output = state.overriding_input, input = builder.str }); } state.overriding_input = null; state.completion_iterator = null; } } // Check mode switch events prior to further processing. if (command != null && command.has_prefix ("set-input-mode-")) { var enum_class = (EnumClass) typeof (InputMode).class_ref (); var enum_value = enum_class.get_value_by_nick ( command["set-input-mode-".length:command.length]); if (enum_value != null) { state.selection.erase (); state.finish_input_editing (); state.input_mode = (InputMode) enum_value.value; // Commit preedit if the next input mode is direct. if (state.input_mode == InputMode.DIRECT) { var input = state.get_input (); state.output.append (input); state.reset (); } return true; } } // Under direct input mode, don't process any keys, except // mode switch keys. if (state.input_mode == InputMode.DIRECT) return false; // Quoted insert. if (state.quoted && (key.modifiers == 0 || key.modifiers == Kkc.ModifierType.SHIFT_MASK)) { state.finish_input_editing (); state.input_characters.add (RomKanaCharacter () { output = key.unicode.to_string (), input = key.unicode.to_string () }); state.quoted = false; return true; } return dispatch_command (state, key); } } } libkkc-0.3.5/libkkc/key-event-filter.vala000066400000000000000000000065001244473050600202620ustar00rootroot00000000000000/* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ namespace Kkc { /** * Base class of a key event filter. */ public abstract class KeyEventFilter : Object { /** * Convert a key event to another. * * @param key a key event * * @return a KeyEvent or `null` if the result cannot be * fetched immediately */ public abstract KeyEvent? filter_key_event (KeyEvent key); /** * Signal emitted when a new key event is generated in the filter. * * @param key a key event */ public signal void forwarded (KeyEvent key); /** * Reset the filter. */ public virtual void reset () { } } /** * Simple implementation of a key event filter. * * This class is rarely used in programs but specified as "filter" * property in rule metadata. * * @see Rule */ class SimpleKeyEventFilter : KeyEventFilter { static const uint[] modifier_keyvals = { Keysyms.Shift_L, Keysyms.Shift_R, Keysyms.Control_L, Keysyms.Control_R, Keysyms.Meta_L, Keysyms.Meta_R, Keysyms.Alt_L, Keysyms.Alt_R, Keysyms.Super_L, Keysyms.Super_R, Keysyms.Hyper_L, Keysyms.Hyper_R }; /** * {@inheritDoc} */ public override KeyEvent? filter_key_event (KeyEvent key) { // ignore modifier keys if (key.keyval in modifier_keyvals) return null; // ignore key release event if ((key.modifiers & ModifierType.RELEASE_MASK) != 0) return null; return key; } } /** * Key event filter for Kana typing rule. * * This class is rarely used in programs but specified as "filter" * property in rule metadata. * * @see Rule */ class KanaKeyEventFilter : SimpleKeyEventFilter { /** * {@inheritDoc} */ public override KeyEvent? filter_key_event (KeyEvent key) { var _key = base.filter_key_event (key); if (_key == null) return null; // convert backslash to yen sign if the keycode is 124 if (_key.keyval == Keysyms.backslash && _key.keycode == 124) return new KeyEvent.from_x_event (Keysyms.yen, _key.keycode, _key.modifiers); return _key; } } } libkkc-0.3.5/libkkc/key-event.vala000066400000000000000000000211161244473050600167770ustar00rootroot00000000000000/* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { public errordomain KeyEventFormatError { PARSE_FAILED, KEYSYM_NOT_FOUND } /** * A set of bit-flags to indicate the state of modifier keys. */ [Flags] public enum ModifierType { NONE = 0, SHIFT_MASK = 1 << 0, LOCK_MASK = 1 << 1, CONTROL_MASK = 1 << 2, MOD1_MASK = 1 << 3, MOD2_MASK = 1 << 4, MOD3_MASK = 1 << 5, MOD4_MASK = 1 << 6, MOD5_MASK = 1 << 7, // dummy modifiers for NICOLA LSHIFT_MASK = 1 << 22, RSHIFT_MASK = 1 << 23, SUPER_MASK = 1 << 26, HYPER_MASK = 1 << 27, META_MASK = 1 << 28, RELEASE_MASK = 1 << 30 } /** * Object representing a key event. */ public class KeyEvent : Object { /** * The base name of the KeyEvent. */ public string name { get; construct set; } /** * The base unicode output of the KeyEvent. */ public unichar unicode { get; construct set; } /** * X keyval. */ public uint keyval { get; construct set; } /** * X keycode. */ public uint keycode { get; construct set; } /** * Modifier mask. */ public ModifierType modifiers { get; construct set; } /** * Create a key event from string. * * @param key a string representation of a key event * * @return a new KeyEvent */ public KeyEvent.from_string (string key) throws KeyEventFormatError { ModifierType _modifiers = 0; uint _keyval = Keysyms.VoidSymbol; if (key.has_prefix ("(") && key.has_suffix (")")) { var strv = key[1:-1].split (" "); int index = 0; for (; index < strv.length - 1; index++) { if (strv[index] == "shift") { _modifiers |= ModifierType.SHIFT_MASK; } else if (strv[index] == "control") { _modifiers |= ModifierType.CONTROL_MASK; } else if (strv[index] == "meta") { _modifiers |= ModifierType.META_MASK; } else if (strv[index] == "hyper") { _modifiers |= ModifierType.HYPER_MASK; } else if (strv[index] == "super") { _modifiers |= ModifierType.SUPER_MASK; } else if (strv[index] == "alt") { _modifiers |= ModifierType.MOD1_MASK; } else if (strv[index] == "lshift") { _modifiers |= ModifierType.LSHIFT_MASK; } else if (strv[index] == "rshift") { _modifiers |= ModifierType.RSHIFT_MASK; } else if (strv[index] == "release") { _modifiers |= ModifierType.RELEASE_MASK; } else { throw new KeyEventFormatError.PARSE_FAILED ( "unknown modifier %s", strv[index]); } } _keyval = KeyEventUtils.keyval_from_name (strv[index]); if (_keyval == Keysyms.VoidSymbol) throw new KeyEventFormatError.PARSE_FAILED ( "unknown keyval %s", strv[index]); } else { int index = key.last_index_of ("-"); string? _name = null; if (index > 0) { // support only limited _modifiers in this form string[] mods = key.substring (0, index).split ("-"); foreach (var mod in mods) { if (mod == "S") { _modifiers |= ModifierType.SHIFT_MASK; } else if (mod == "C") { _modifiers |= ModifierType.CONTROL_MASK; } else if (mod == "A") { _modifiers |= ModifierType.MOD1_MASK; } else if (mod == "M") { _modifiers |= ModifierType.META_MASK; } else if (mod == "G") { _modifiers |= ModifierType.MOD5_MASK; } } _name = key.substring (index + 1); } else { _modifiers = ModifierType.NONE; _name = key; } _keyval = KeyEventUtils.keyval_from_name (_name); if (_keyval == Keysyms.VoidSymbol) throw new KeyEventFormatError.PARSE_FAILED ( "unknown keyval %s", _name); } from_x_event (_keyval, 0, _modifiers); } /** * Convert the KeyEvent to string. * * @return a string representing the KeyEvent */ public string to_string () { string _base = name != null ? name : unicode.to_string (); if (modifiers != 0) { ArrayList elements = new ArrayList (); if ((modifiers & ModifierType.SHIFT_MASK) != 0) { elements.add ("shift"); } if ((modifiers & ModifierType.CONTROL_MASK) != 0) { elements.add ("control"); } if ((modifiers & ModifierType.META_MASK) != 0) { elements.add ("meta"); } if ((modifiers & ModifierType.HYPER_MASK) != 0) { elements.add ("hyper"); } if ((modifiers & ModifierType.SUPER_MASK) != 0) { elements.add ("super"); } if ((modifiers & ModifierType.MOD1_MASK) != 0) { elements.add ("alt"); } if ((modifiers & ModifierType.LSHIFT_MASK) != 0) { elements.add ("lshift"); } if ((modifiers & ModifierType.RSHIFT_MASK) != 0) { elements.add ("rshift"); } if ((modifiers & ModifierType.RELEASE_MASK) != 0) { elements.add ("release"); } elements.add (_base); elements.add (null); // make sure that strv ends with null // newer valac thinks null in a fixed length array as // an empty string var array = elements.to_array (); array.length = -1; return "(" + string.joinv (" ", array) + ")"; } else { return _base; } } public KeyEvent.from_x_event (uint keyval, uint keycode, ModifierType modifiers) { this (keyval, keycode, modifiers); } /** * Create a key event from an X event. * * @param keyval an X keysym * @param keycode an X keycode * @param modifiers modifier mask * * @return a new KeyEvent */ public KeyEvent (uint keyval, uint keycode, ModifierType modifiers) { name = KeyEventUtils.keyval_name (keyval); unicode = KeyEventUtils.keyval_unicode (keyval); // Clear shift modifiers when code is ASCII and not SPC. // FIXME: check the keymap if the key has multiple levels if (0x21 <= keyval && keyval < 0x7F) modifiers &= ~(ModifierType.SHIFT_MASK | ModifierType.MOD5_MASK); this.keyval = keyval; this.keycode = keycode; this.modifiers = modifiers; } } } libkkc-0.3.5/libkkc/keymap.vala000066400000000000000000000147771244473050600163750ustar00rootroot00000000000000/* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { struct KeymapCommandEntry { string name; string label; } public struct KeymapEntry { KeyEvent key; string? command; } /** * Object representing a keymap. */ public class Keymap : Object { static const KeymapCommandEntry Commands[] = { { "abort", N_("Abort") }, { "first-segment", N_("First Segment") }, { "last-segment", N_("Last Segment") }, { "commit", N_("Commit") }, { "complete", N_("Complete") }, { "delete", N_("Delete") }, { "delete-forward", N_("Delete Next Character") }, { "quote", N_("Quoted Insert") }, { "register", N_("Register Word") }, { "next-candidate", N_("Next Candidate") }, { "previous-candidate", N_("Previous Candidate") }, { "purge-candidate", N_("Purge Candidate") }, { "next-segment", N_("Next Segment") }, { "previous-segment", N_("Previous Segment") }, { "expand-segment", N_("Expand Segment") }, { "shrink-segment", N_("Shrink Segment") }, { "set-input-mode-hiragana", N_("Switch to Hiragana Input Mode") }, { "set-input-mode-katakana", N_("Switch to Katakana Input Mode") }, { "set-input-mode-hankaku-katakana", N_("Switch to Hankaku Katakana Input Mode") }, { "set-input-mode-latin", N_("Switch to Latin Input Mode") }, { "set-input-mode-wide-latin", N_("Switch to Wide Latin Input Mode") }, { "set-input-mode-direct", N_("Switch to Direct Input Mode") }, { "convert-hiragana", N_("Convert to Hiragana") }, { "convert-katakana", N_("Convert to Katakana") }, { "convert-hankaku-katakana", N_("Convert to Hankaku Katakana") }, { "convert-latin", N_("Convert to Latin") }, { "convert-wide-latin", N_("Convert to Wide Latin") }, { "original-candidate", N_("Original Candidate") } }; static Map _CommandTable = new HashMap (); static construct { for (var i = 0; i < Commands.length; i++) { _CommandTable.set (Commands[i].name, Commands[i].label); } } /** * List commands usable in keymap. * * @return array of commands */ public static string[] commands () { return _CommandTable.keys.to_array (); } /** * Return a label for a command * * @param command command * @return label */ public static string get_command_label (string command) { var label = _CommandTable.get (command); if (label != null) label = dgettext (Config.GETTEXT_PACKAGE, label); return label; } /** * Parent keymap. */ public Keymap? parent { get; set; default = null; } Map map_entries = new HashMap (key_hash, key_equal); static bool key_equal (KeyEvent a, KeyEvent b) { return a.keyval == b.keyval && a.modifiers == b.modifiers; } static uint key_hash (KeyEvent a) { return int_hash ((int) a.keyval) + int_hash ((int) a.modifiers); } /** * Return all the keymap entries including parent's. * * @return array of KeymapEntry */ public KeymapEntry[] entries () { var _map_entries = new HashMap (key_hash, key_equal); if (parent != null) _map_entries.set_all (parent.map_entries); _map_entries.set_all (map_entries); return map_entries_to_array (_map_entries); } /** * Return keymap entries not including parent's. * * @return array of KeymapEntry */ public KeymapEntry[] local_entries () { return map_entries_to_array (map_entries); } KeymapEntry[] map_entries_to_array (Map map_entries) { KeymapEntry[] result = {}; var iter = map_entries.map_iterator (); while (iter.next ()) { var key = iter.get_key (); var command = iter.get_value (); KeymapEntry entry = { key, command }; result += entry; } return result; } /** * Bind a key event to a command. * * @param key key event * @param command command or `null` to unset */ public new void @set (KeyEvent key, string? command) { map_entries.set (key, command); } /** * Lookup a command bound to a key event. * * @param key key event * @return command or `null` */ public string? lookup_key (KeyEvent key) { if (map_entries.has_key (key)) return map_entries.get (key); if (parent != null) return parent.lookup_key (key); return null; } /** * Lookup a key event to which a command is bound. * * @param command command * @return a key event or `null` */ public KeyEvent? where_is (string command) { var iter = map_entries.map_iterator (); while (iter.next ()) { if (iter.get_value () == command) return iter.get_key (); } if (parent != null) return parent.where_is (command); return null; } } } libkkc-0.3.5/libkkc/keysyms.h000066400000000000000000000001701244473050600160750ustar00rootroot00000000000000#include #include #include typedef guint32 xkb_keysym_t; #include "ks_tables.h" libkkc-0.3.5/libkkc/keysyms.vala000066400000000000000000002715611244473050600166070ustar00rootroot00000000000000/* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ namespace Kkc.Keysyms { // converted from /usr/include/X11/keysymdef.h with: public const uint VoidSymbol = 0xffffff; public const uint BackSpace = 0xff08; public const uint Tab = 0xff09; public const uint Linefeed = 0xff0a; public const uint Clear = 0xff0b; public const uint Return = 0xff0d; public const uint Pause = 0xff13; public const uint Scroll_Lock = 0xff14; public const uint Sys_Req = 0xff15; public const uint Escape = 0xff1b; public const uint Delete = 0xffff; public const uint Multi_key = 0xff20; public const uint Codeinput = 0xff37; public const uint SingleCandidate = 0xff3c; public const uint MultipleCandidate = 0xff3d; public const uint PreviousCandidate = 0xff3e; public const uint Kanji = 0xff21; public const uint Muhenkan = 0xff22; public const uint Henkan_Mode = 0xff23; public const uint Henkan = 0xff23; public const uint Romaji = 0xff24; public const uint Hiragana = 0xff25; public const uint Katakana = 0xff26; public const uint Hiragana_Katakana = 0xff27; public const uint Zenkaku = 0xff28; public const uint Hankaku = 0xff29; public const uint Zenkaku_Hankaku = 0xff2a; public const uint Touroku = 0xff2b; public const uint Massyo = 0xff2c; public const uint Kana_Lock = 0xff2d; public const uint Kana_Shift = 0xff2e; public const uint Eisu_Shift = 0xff2f; public const uint Eisu_toggle = 0xff30; public const uint Kanji_Bangou = 0xff37; public const uint Zen_Koho = 0xff3d; public const uint Mae_Koho = 0xff3e; public const uint Home = 0xff50; public const uint Left = 0xff51; public const uint Up = 0xff52; public const uint Right = 0xff53; public const uint Down = 0xff54; public const uint Prior = 0xff55; public const uint Page_Up = 0xff55; public const uint Next = 0xff56; public const uint Page_Down = 0xff56; public const uint End = 0xff57; public const uint Begin = 0xff58; public const uint Select = 0xff60; public const uint Print = 0xff61; public const uint Execute = 0xff62; public const uint Insert = 0xff63; public const uint Undo = 0xff65; public const uint Redo = 0xff66; public const uint Menu = 0xff67; public const uint Find = 0xff68; public const uint Cancel = 0xff69; public const uint Help = 0xff6a; public const uint Break = 0xff6b; public const uint Mode_switch = 0xff7e; public const uint script_switch = 0xff7e; public const uint Num_Lock = 0xff7f; public const uint KP_Space = 0xff80; public const uint KP_Tab = 0xff89; public const uint KP_Enter = 0xff8d; public const uint KP_F1 = 0xff91; public const uint KP_F2 = 0xff92; public const uint KP_F3 = 0xff93; public const uint KP_F4 = 0xff94; public const uint KP_Home = 0xff95; public const uint KP_Left = 0xff96; public const uint KP_Up = 0xff97; public const uint KP_Right = 0xff98; public const uint KP_Down = 0xff99; public const uint KP_Prior = 0xff9a; public const uint KP_Page_Up = 0xff9a; public const uint KP_Next = 0xff9b; public const uint KP_Page_Down = 0xff9b; public const uint KP_End = 0xff9c; public const uint KP_Begin = 0xff9d; public const uint KP_Insert = 0xff9e; public const uint KP_Delete = 0xff9f; public const uint KP_Equal = 0xffbd; public const uint KP_Multiply = 0xffaa; public const uint KP_Add = 0xffab; public const uint KP_Separator = 0xffac; public const uint KP_Subtract = 0xffad; public const uint KP_Decimal = 0xffae; public const uint KP_Divide = 0xffaf; public const uint KP_0 = 0xffb0; public const uint KP_1 = 0xffb1; public const uint KP_2 = 0xffb2; public const uint KP_3 = 0xffb3; public const uint KP_4 = 0xffb4; public const uint KP_5 = 0xffb5; public const uint KP_6 = 0xffb6; public const uint KP_7 = 0xffb7; public const uint KP_8 = 0xffb8; public const uint KP_9 = 0xffb9; public const uint F1 = 0xffbe; public const uint F2 = 0xffbf; public const uint F3 = 0xffc0; public const uint F4 = 0xffc1; public const uint F5 = 0xffc2; public const uint F6 = 0xffc3; public const uint F7 = 0xffc4; public const uint F8 = 0xffc5; public const uint F9 = 0xffc6; public const uint F10 = 0xffc7; public const uint F11 = 0xffc8; public const uint L1 = 0xffc8; public const uint F12 = 0xffc9; public const uint L2 = 0xffc9; public const uint F13 = 0xffca; public const uint L3 = 0xffca; public const uint F14 = 0xffcb; public const uint L4 = 0xffcb; public const uint F15 = 0xffcc; public const uint L5 = 0xffcc; public const uint F16 = 0xffcd; public const uint L6 = 0xffcd; public const uint F17 = 0xffce; public const uint L7 = 0xffce; public const uint F18 = 0xffcf; public const uint L8 = 0xffcf; public const uint F19 = 0xffd0; public const uint L9 = 0xffd0; public const uint F20 = 0xffd1; public const uint L10 = 0xffd1; public const uint F21 = 0xffd2; public const uint R1 = 0xffd2; public const uint F22 = 0xffd3; public const uint R2 = 0xffd3; public const uint F23 = 0xffd4; public const uint R3 = 0xffd4; public const uint F24 = 0xffd5; public const uint R4 = 0xffd5; public const uint F25 = 0xffd6; public const uint R5 = 0xffd6; public const uint F26 = 0xffd7; public const uint R6 = 0xffd7; public const uint F27 = 0xffd8; public const uint R7 = 0xffd8; public const uint F28 = 0xffd9; public const uint R8 = 0xffd9; public const uint F29 = 0xffda; public const uint R9 = 0xffda; public const uint F30 = 0xffdb; public const uint R10 = 0xffdb; public const uint F31 = 0xffdc; public const uint R11 = 0xffdc; public const uint F32 = 0xffdd; public const uint R12 = 0xffdd; public const uint F33 = 0xffde; public const uint R13 = 0xffde; public const uint F34 = 0xffdf; public const uint R14 = 0xffdf; public const uint F35 = 0xffe0; public const uint R15 = 0xffe0; public const uint Shift_L = 0xffe1; public const uint Shift_R = 0xffe2; public const uint Control_L = 0xffe3; public const uint Control_R = 0xffe4; public const uint Caps_Lock = 0xffe5; public const uint Shift_Lock = 0xffe6; public const uint Meta_L = 0xffe7; public const uint Meta_R = 0xffe8; public const uint Alt_L = 0xffe9; public const uint Alt_R = 0xffea; public const uint Super_L = 0xffeb; public const uint Super_R = 0xffec; public const uint Hyper_L = 0xffed; public const uint Hyper_R = 0xffee; public const uint ISO_Lock = 0xfe01; public const uint ISO_Level2_Latch = 0xfe02; public const uint ISO_Level3_Shift = 0xfe03; public const uint ISO_Level3_Latch = 0xfe04; public const uint ISO_Level3_Lock = 0xfe05; public const uint ISO_Level5_Shift = 0xfe11; public const uint ISO_Level5_Latch = 0xfe12; public const uint ISO_Level5_Lock = 0xfe13; public const uint ISO_Group_Shift = 0xff7e; public const uint ISO_Group_Latch = 0xfe06; public const uint ISO_Group_Lock = 0xfe07; public const uint ISO_Next_Group = 0xfe08; public const uint ISO_Next_Group_Lock = 0xfe09; public const uint ISO_Prev_Group = 0xfe0a; public const uint ISO_Prev_Group_Lock = 0xfe0b; public const uint ISO_First_Group = 0xfe0c; public const uint ISO_First_Group_Lock = 0xfe0d; public const uint ISO_Last_Group = 0xfe0e; public const uint ISO_Last_Group_Lock = 0xfe0f; public const uint ISO_Left_Tab = 0xfe20; public const uint ISO_Move_Line_Up = 0xfe21; public const uint ISO_Move_Line_Down = 0xfe22; public const uint ISO_Partial_Line_Up = 0xfe23; public const uint ISO_Partial_Line_Down = 0xfe24; public const uint ISO_Partial_Space_Left = 0xfe25; public const uint ISO_Partial_Space_Right = 0xfe26; public const uint ISO_Set_Margin_Left = 0xfe27; public const uint ISO_Set_Margin_Right = 0xfe28; public const uint ISO_Release_Margin_Left = 0xfe29; public const uint ISO_Release_Margin_Right = 0xfe2a; public const uint ISO_Release_Both_Margins = 0xfe2b; public const uint ISO_Fast_Cursor_Left = 0xfe2c; public const uint ISO_Fast_Cursor_Right = 0xfe2d; public const uint ISO_Fast_Cursor_Up = 0xfe2e; public const uint ISO_Fast_Cursor_Down = 0xfe2f; public const uint ISO_Continuous_Underline = 0xfe30; public const uint ISO_Discontinuous_Underline = 0xfe31; public const uint ISO_Emphasize = 0xfe32; public const uint ISO_Center_Object = 0xfe33; public const uint ISO_Enter = 0xfe34; public const uint dead_grave = 0xfe50; public const uint dead_acute = 0xfe51; public const uint dead_circumflex = 0xfe52; public const uint dead_tilde = 0xfe53; public const uint dead_perispomeni = 0xfe53; public const uint dead_macron = 0xfe54; public const uint dead_breve = 0xfe55; public const uint dead_abovedot = 0xfe56; public const uint dead_diaeresis = 0xfe57; public const uint dead_abovering = 0xfe58; public const uint dead_doubleacute = 0xfe59; public const uint dead_caron = 0xfe5a; public const uint dead_cedilla = 0xfe5b; public const uint dead_ogonek = 0xfe5c; public const uint dead_iota = 0xfe5d; public const uint dead_voiced_sound = 0xfe5e; public const uint dead_semivoiced_sound = 0xfe5f; public const uint dead_belowdot = 0xfe60; public const uint dead_hook = 0xfe61; public const uint dead_horn = 0xfe62; public const uint dead_stroke = 0xfe63; public const uint dead_abovecomma = 0xfe64; public const uint dead_psili = 0xfe64; public const uint dead_abovereversedcomma = 0xfe65; public const uint dead_dasia = 0xfe65; public const uint dead_doublegrave = 0xfe66; public const uint dead_belowring = 0xfe67; public const uint dead_belowmacron = 0xfe68; public const uint dead_belowcircumflex = 0xfe69; public const uint dead_belowtilde = 0xfe6a; public const uint dead_belowbreve = 0xfe6b; public const uint dead_belowdiaeresis = 0xfe6c; public const uint dead_invertedbreve = 0xfe6d; public const uint dead_belowcomma = 0xfe6e; public const uint dead_currency = 0xfe6f; public const uint dead_a = 0xfe80; public const uint dead_A = 0xfe81; public const uint dead_e = 0xfe82; public const uint dead_E = 0xfe83; public const uint dead_i = 0xfe84; public const uint dead_I = 0xfe85; public const uint dead_o = 0xfe86; public const uint dead_O = 0xfe87; public const uint dead_u = 0xfe88; public const uint dead_U = 0xfe89; public const uint dead_small_schwa = 0xfe8a; public const uint dead_capital_schwa = 0xfe8b; public const uint First_Virtual_Screen = 0xfed0; public const uint Prev_Virtual_Screen = 0xfed1; public const uint Next_Virtual_Screen = 0xfed2; public const uint Last_Virtual_Screen = 0xfed4; public const uint Terminate_Server = 0xfed5; public const uint AccessX_Enable = 0xfe70; public const uint AccessX_Feedback_Enable = 0xfe71; public const uint RepeatKeys_Enable = 0xfe72; public const uint SlowKeys_Enable = 0xfe73; public const uint BounceKeys_Enable = 0xfe74; public const uint StickyKeys_Enable = 0xfe75; public const uint MouseKeys_Enable = 0xfe76; public const uint MouseKeys_Accel_Enable = 0xfe77; public const uint Overlay1_Enable = 0xfe78; public const uint Overlay2_Enable = 0xfe79; public const uint AudibleBell_Enable = 0xfe7a; public const uint Pointer_Left = 0xfee0; public const uint Pointer_Right = 0xfee1; public const uint Pointer_Up = 0xfee2; public const uint Pointer_Down = 0xfee3; public const uint Pointer_UpLeft = 0xfee4; public const uint Pointer_UpRight = 0xfee5; public const uint Pointer_DownLeft = 0xfee6; public const uint Pointer_DownRight = 0xfee7; public const uint Pointer_Button_Dflt = 0xfee8; public const uint Pointer_Button1 = 0xfee9; public const uint Pointer_Button2 = 0xfeea; public const uint Pointer_Button3 = 0xfeeb; public const uint Pointer_Button4 = 0xfeec; public const uint Pointer_Button5 = 0xfeed; public const uint Pointer_DblClick_Dflt = 0xfeee; public const uint Pointer_DblClick1 = 0xfeef; public const uint Pointer_DblClick2 = 0xfef0; public const uint Pointer_DblClick3 = 0xfef1; public const uint Pointer_DblClick4 = 0xfef2; public const uint Pointer_DblClick5 = 0xfef3; public const uint Pointer_Drag_Dflt = 0xfef4; public const uint Pointer_Drag1 = 0xfef5; public const uint Pointer_Drag2 = 0xfef6; public const uint Pointer_Drag3 = 0xfef7; public const uint Pointer_Drag4 = 0xfef8; public const uint Pointer_Drag5 = 0xfefd; public const uint Pointer_EnableKeys = 0xfef9; public const uint Pointer_Accelerate = 0xfefa; public const uint Pointer_DfltBtnNext = 0xfefb; public const uint Pointer_DfltBtnPrev = 0xfefc; public const uint @3270_Duplicate = 0xfd01; public const uint @3270_FieldMark = 0xfd02; public const uint @3270_Right2 = 0xfd03; public const uint @3270_Left2 = 0xfd04; public const uint @3270_BackTab = 0xfd05; public const uint @3270_EraseEOF = 0xfd06; public const uint @3270_EraseInput = 0xfd07; public const uint @3270_Reset = 0xfd08; public const uint @3270_Quit = 0xfd09; public const uint @3270_PA1 = 0xfd0a; public const uint @3270_PA2 = 0xfd0b; public const uint @3270_PA3 = 0xfd0c; public const uint @3270_Test = 0xfd0d; public const uint @3270_Attn = 0xfd0e; public const uint @3270_CursorBlink = 0xfd0f; public const uint @3270_AltCursor = 0xfd10; public const uint @3270_KeyClick = 0xfd11; public const uint @3270_Jump = 0xfd12; public const uint @3270_Ident = 0xfd13; public const uint @3270_Rule = 0xfd14; public const uint @3270_Copy = 0xfd15; public const uint @3270_Play = 0xfd16; public const uint @3270_Setup = 0xfd17; public const uint @3270_Record = 0xfd18; public const uint @3270_ChangeScreen = 0xfd19; public const uint @3270_DeleteWord = 0xfd1a; public const uint @3270_ExSelect = 0xfd1b; public const uint @3270_CursorSelect = 0xfd1c; public const uint @3270_PrintScreen = 0xfd1d; public const uint @3270_Enter = 0xfd1e; public const uint space = 0x0020; public const uint exclam = 0x0021; public const uint quotedbl = 0x0022; public const uint numbersign = 0x0023; public const uint dollar = 0x0024; public const uint percent = 0x0025; public const uint ampersand = 0x0026; public const uint apostrophe = 0x0027; public const uint quoteright = 0x0027; public const uint parenleft = 0x0028; public const uint parenright = 0x0029; public const uint asterisk = 0x002a; public const uint plus = 0x002b; public const uint comma = 0x002c; public const uint minus = 0x002d; public const uint period = 0x002e; public const uint slash = 0x002f; public const uint @0 = 0x0030; public const uint @1 = 0x0031; public const uint @2 = 0x0032; public const uint @3 = 0x0033; public const uint @4 = 0x0034; public const uint @5 = 0x0035; public const uint @6 = 0x0036; public const uint @7 = 0x0037; public const uint @8 = 0x0038; public const uint @9 = 0x0039; public const uint colon = 0x003a; public const uint semicolon = 0x003b; public const uint less = 0x003c; public const uint equal = 0x003d; public const uint greater = 0x003e; public const uint question = 0x003f; public const uint at = 0x0040; public const uint A = 0x0041; public const uint B = 0x0042; public const uint C = 0x0043; public const uint D = 0x0044; public const uint E = 0x0045; public const uint F = 0x0046; public const uint G = 0x0047; public const uint H = 0x0048; public const uint I = 0x0049; public const uint J = 0x004a; public const uint K = 0x004b; public const uint L = 0x004c; public const uint M = 0x004d; public const uint N = 0x004e; public const uint O = 0x004f; public const uint P = 0x0050; public const uint Q = 0x0051; public const uint R = 0x0052; public const uint S = 0x0053; public const uint T = 0x0054; public const uint U = 0x0055; public const uint V = 0x0056; public const uint W = 0x0057; public const uint X = 0x0058; public const uint Y = 0x0059; public const uint Z = 0x005a; public const uint bracketleft = 0x005b; public const uint backslash = 0x005c; public const uint bracketright = 0x005d; public const uint asciicircum = 0x005e; public const uint underscore = 0x005f; public const uint grave = 0x0060; public const uint quoteleft = 0x0060; public const uint a = 0x0061; public const uint b = 0x0062; public const uint c = 0x0063; public const uint d = 0x0064; public const uint e = 0x0065; public const uint f = 0x0066; public const uint g = 0x0067; public const uint h = 0x0068; public const uint i = 0x0069; public const uint j = 0x006a; public const uint k = 0x006b; public const uint l = 0x006c; public const uint m = 0x006d; public const uint n = 0x006e; public const uint o = 0x006f; public const uint p = 0x0070; public const uint q = 0x0071; public const uint r = 0x0072; public const uint s = 0x0073; public const uint t = 0x0074; public const uint u = 0x0075; public const uint v = 0x0076; public const uint w = 0x0077; public const uint x = 0x0078; public const uint y = 0x0079; public const uint z = 0x007a; public const uint braceleft = 0x007b; public const uint bar = 0x007c; public const uint braceright = 0x007d; public const uint asciitilde = 0x007e; public const uint nobreakspace = 0x00a0; public const uint exclamdown = 0x00a1; public const uint cent = 0x00a2; public const uint sterling = 0x00a3; public const uint currency = 0x00a4; public const uint yen = 0x00a5; public const uint brokenbar = 0x00a6; public const uint section = 0x00a7; public const uint diaeresis = 0x00a8; public const uint copyright = 0x00a9; public const uint ordfeminine = 0x00aa; public const uint guillemotleft = 0x00ab; public const uint notsign = 0x00ac; public const uint hyphen = 0x00ad; public const uint registered = 0x00ae; public const uint macron = 0x00af; public const uint degree = 0x00b0; public const uint plusminus = 0x00b1; public const uint twosuperior = 0x00b2; public const uint threesuperior = 0x00b3; public const uint acute = 0x00b4; public const uint mu = 0x00b5; public const uint paragraph = 0x00b6; public const uint periodcentered = 0x00b7; public const uint cedilla = 0x00b8; public const uint onesuperior = 0x00b9; public const uint masculine = 0x00ba; public const uint guillemotright = 0x00bb; public const uint onequarter = 0x00bc; public const uint onehalf = 0x00bd; public const uint threequarters = 0x00be; public const uint questiondown = 0x00bf; public const uint Agrave = 0x00c0; public const uint Aacute = 0x00c1; public const uint Acircumflex = 0x00c2; public const uint Atilde = 0x00c3; public const uint Adiaeresis = 0x00c4; public const uint Aring = 0x00c5; public const uint AE = 0x00c6; public const uint Ccedilla = 0x00c7; public const uint Egrave = 0x00c8; public const uint Eacute = 0x00c9; public const uint Ecircumflex = 0x00ca; public const uint Ediaeresis = 0x00cb; public const uint Igrave = 0x00cc; public const uint Iacute = 0x00cd; public const uint Icircumflex = 0x00ce; public const uint Idiaeresis = 0x00cf; public const uint ETH = 0x00d0; public const uint Eth = 0x00d0; public const uint Ntilde = 0x00d1; public const uint Ograve = 0x00d2; public const uint Oacute = 0x00d3; public const uint Ocircumflex = 0x00d4; public const uint Otilde = 0x00d5; public const uint Odiaeresis = 0x00d6; public const uint multiply = 0x00d7; public const uint Oslash = 0x00d8; public const uint Ooblique = 0x00d8; public const uint Ugrave = 0x00d9; public const uint Uacute = 0x00da; public const uint Ucircumflex = 0x00db; public const uint Udiaeresis = 0x00dc; public const uint Yacute = 0x00dd; public const uint THORN = 0x00de; public const uint Thorn = 0x00de; public const uint ssharp = 0x00df; public const uint agrave = 0x00e0; public const uint aacute = 0x00e1; public const uint acircumflex = 0x00e2; public const uint atilde = 0x00e3; public const uint adiaeresis = 0x00e4; public const uint aring = 0x00e5; public const uint ae = 0x00e6; public const uint ccedilla = 0x00e7; public const uint egrave = 0x00e8; public const uint eacute = 0x00e9; public const uint ecircumflex = 0x00ea; public const uint ediaeresis = 0x00eb; public const uint igrave = 0x00ec; public const uint iacute = 0x00ed; public const uint icircumflex = 0x00ee; public const uint idiaeresis = 0x00ef; public const uint eth = 0x00f0; public const uint ntilde = 0x00f1; public const uint ograve = 0x00f2; public const uint oacute = 0x00f3; public const uint ocircumflex = 0x00f4; public const uint otilde = 0x00f5; public const uint odiaeresis = 0x00f6; public const uint division = 0x00f7; public const uint oslash = 0x00f8; public const uint ooblique = 0x00f8; public const uint ugrave = 0x00f9; public const uint uacute = 0x00fa; public const uint ucircumflex = 0x00fb; public const uint udiaeresis = 0x00fc; public const uint yacute = 0x00fd; public const uint thorn = 0x00fe; public const uint ydiaeresis = 0x00ff; public const uint Aogonek = 0x01a1; public const uint breve = 0x01a2; public const uint Lstroke = 0x01a3; public const uint Lcaron = 0x01a5; public const uint Sacute = 0x01a6; public const uint Scaron = 0x01a9; public const uint Scedilla = 0x01aa; public const uint Tcaron = 0x01ab; public const uint Zacute = 0x01ac; public const uint Zcaron = 0x01ae; public const uint Zabovedot = 0x01af; public const uint aogonek = 0x01b1; public const uint ogonek = 0x01b2; public const uint lstroke = 0x01b3; public const uint lcaron = 0x01b5; public const uint sacute = 0x01b6; public const uint caron = 0x01b7; public const uint scaron = 0x01b9; public const uint scedilla = 0x01ba; public const uint tcaron = 0x01bb; public const uint zacute = 0x01bc; public const uint doubleacute = 0x01bd; public const uint zcaron = 0x01be; public const uint zabovedot = 0x01bf; public const uint Racute = 0x01c0; public const uint Abreve = 0x01c3; public const uint Lacute = 0x01c5; public const uint Cacute = 0x01c6; public const uint Ccaron = 0x01c8; public const uint Eogonek = 0x01ca; public const uint Ecaron = 0x01cc; public const uint Dcaron = 0x01cf; public const uint Dstroke = 0x01d0; public const uint Nacute = 0x01d1; public const uint Ncaron = 0x01d2; public const uint Odoubleacute = 0x01d5; public const uint Rcaron = 0x01d8; public const uint Uring = 0x01d9; public const uint Udoubleacute = 0x01db; public const uint Tcedilla = 0x01de; public const uint racute = 0x01e0; public const uint abreve = 0x01e3; public const uint lacute = 0x01e5; public const uint cacute = 0x01e6; public const uint ccaron = 0x01e8; public const uint eogonek = 0x01ea; public const uint ecaron = 0x01ec; public const uint dcaron = 0x01ef; public const uint dstroke = 0x01f0; public const uint nacute = 0x01f1; public const uint ncaron = 0x01f2; public const uint odoubleacute = 0x01f5; public const uint rcaron = 0x01f8; public const uint uring = 0x01f9; public const uint udoubleacute = 0x01fb; public const uint tcedilla = 0x01fe; public const uint abovedot = 0x01ff; public const uint Hstroke = 0x02a1; public const uint Hcircumflex = 0x02a6; public const uint Iabovedot = 0x02a9; public const uint Gbreve = 0x02ab; public const uint Jcircumflex = 0x02ac; public const uint hstroke = 0x02b1; public const uint hcircumflex = 0x02b6; public const uint idotless = 0x02b9; public const uint gbreve = 0x02bb; public const uint jcircumflex = 0x02bc; public const uint Cabovedot = 0x02c5; public const uint Ccircumflex = 0x02c6; public const uint Gabovedot = 0x02d5; public const uint Gcircumflex = 0x02d8; public const uint Ubreve = 0x02dd; public const uint Scircumflex = 0x02de; public const uint cabovedot = 0x02e5; public const uint ccircumflex = 0x02e6; public const uint gabovedot = 0x02f5; public const uint gcircumflex = 0x02f8; public const uint ubreve = 0x02fd; public const uint scircumflex = 0x02fe; public const uint kra = 0x03a2; public const uint kappa = 0x03a2; public const uint Rcedilla = 0x03a3; public const uint Itilde = 0x03a5; public const uint Lcedilla = 0x03a6; public const uint Emacron = 0x03aa; public const uint Gcedilla = 0x03ab; public const uint Tslash = 0x03ac; public const uint rcedilla = 0x03b3; public const uint itilde = 0x03b5; public const uint lcedilla = 0x03b6; public const uint emacron = 0x03ba; public const uint gcedilla = 0x03bb; public const uint tslash = 0x03bc; public const uint ENG = 0x03bd; public const uint eng = 0x03bf; public const uint Amacron = 0x03c0; public const uint Iogonek = 0x03c7; public const uint Eabovedot = 0x03cc; public const uint Imacron = 0x03cf; public const uint Ncedilla = 0x03d1; public const uint Omacron = 0x03d2; public const uint Kcedilla = 0x03d3; public const uint Uogonek = 0x03d9; public const uint Utilde = 0x03dd; public const uint Umacron = 0x03de; public const uint amacron = 0x03e0; public const uint iogonek = 0x03e7; public const uint eabovedot = 0x03ec; public const uint imacron = 0x03ef; public const uint ncedilla = 0x03f1; public const uint omacron = 0x03f2; public const uint kcedilla = 0x03f3; public const uint uogonek = 0x03f9; public const uint utilde = 0x03fd; public const uint umacron = 0x03fe; public const uint Wcircumflex = 0x1000174; public const uint wcircumflex = 0x1000175; public const uint Ycircumflex = 0x1000176; public const uint ycircumflex = 0x1000177; public const uint Babovedot = 0x1001e02; public const uint babovedot = 0x1001e03; public const uint Dabovedot = 0x1001e0a; public const uint dabovedot = 0x1001e0b; public const uint Fabovedot = 0x1001e1e; public const uint fabovedot = 0x1001e1f; public const uint Mabovedot = 0x1001e40; public const uint mabovedot = 0x1001e41; public const uint Pabovedot = 0x1001e56; public const uint pabovedot = 0x1001e57; public const uint Sabovedot = 0x1001e60; public const uint sabovedot = 0x1001e61; public const uint Tabovedot = 0x1001e6a; public const uint tabovedot = 0x1001e6b; public const uint Wgrave = 0x1001e80; public const uint wgrave = 0x1001e81; public const uint Wacute = 0x1001e82; public const uint wacute = 0x1001e83; public const uint Wdiaeresis = 0x1001e84; public const uint wdiaeresis = 0x1001e85; public const uint Ygrave = 0x1001ef2; public const uint ygrave = 0x1001ef3; public const uint OE = 0x13bc; public const uint oe = 0x13bd; public const uint Ydiaeresis = 0x13be; public const uint overline = 0x047e; public const uint kana_fullstop = 0x04a1; public const uint kana_openingbracket = 0x04a2; public const uint kana_closingbracket = 0x04a3; public const uint kana_comma = 0x04a4; public const uint kana_conjunctive = 0x04a5; public const uint kana_middledot = 0x04a5; public const uint kana_WO = 0x04a6; public const uint kana_a = 0x04a7; public const uint kana_i = 0x04a8; public const uint kana_u = 0x04a9; public const uint kana_e = 0x04aa; public const uint kana_o = 0x04ab; public const uint kana_ya = 0x04ac; public const uint kana_yu = 0x04ad; public const uint kana_yo = 0x04ae; public const uint kana_tsu = 0x04af; public const uint kana_tu = 0x04af; public const uint prolongedsound = 0x04b0; public const uint kana_A = 0x04b1; public const uint kana_I = 0x04b2; public const uint kana_U = 0x04b3; public const uint kana_E = 0x04b4; public const uint kana_O = 0x04b5; public const uint kana_KA = 0x04b6; public const uint kana_KI = 0x04b7; public const uint kana_KU = 0x04b8; public const uint kana_KE = 0x04b9; public const uint kana_KO = 0x04ba; public const uint kana_SA = 0x04bb; public const uint kana_SHI = 0x04bc; public const uint kana_SU = 0x04bd; public const uint kana_SE = 0x04be; public const uint kana_SO = 0x04bf; public const uint kana_TA = 0x04c0; public const uint kana_CHI = 0x04c1; public const uint kana_TI = 0x04c1; public const uint kana_TSU = 0x04c2; public const uint kana_TU = 0x04c2; public const uint kana_TE = 0x04c3; public const uint kana_TO = 0x04c4; public const uint kana_NA = 0x04c5; public const uint kana_NI = 0x04c6; public const uint kana_NU = 0x04c7; public const uint kana_NE = 0x04c8; public const uint kana_NO = 0x04c9; public const uint kana_HA = 0x04ca; public const uint kana_HI = 0x04cb; public const uint kana_FU = 0x04cc; public const uint kana_HU = 0x04cc; public const uint kana_HE = 0x04cd; public const uint kana_HO = 0x04ce; public const uint kana_MA = 0x04cf; public const uint kana_MI = 0x04d0; public const uint kana_MU = 0x04d1; public const uint kana_ME = 0x04d2; public const uint kana_MO = 0x04d3; public const uint kana_YA = 0x04d4; public const uint kana_YU = 0x04d5; public const uint kana_YO = 0x04d6; public const uint kana_RA = 0x04d7; public const uint kana_RI = 0x04d8; public const uint kana_RU = 0x04d9; public const uint kana_RE = 0x04da; public const uint kana_RO = 0x04db; public const uint kana_WA = 0x04dc; public const uint kana_N = 0x04dd; public const uint voicedsound = 0x04de; public const uint semivoicedsound = 0x04df; public const uint kana_switch = 0xff7e; public const uint Farsi_0 = 0x10006f0; public const uint Farsi_1 = 0x10006f1; public const uint Farsi_2 = 0x10006f2; public const uint Farsi_3 = 0x10006f3; public const uint Farsi_4 = 0x10006f4; public const uint Farsi_5 = 0x10006f5; public const uint Farsi_6 = 0x10006f6; public const uint Farsi_7 = 0x10006f7; public const uint Farsi_8 = 0x10006f8; public const uint Farsi_9 = 0x10006f9; public const uint Arabic_percent = 0x100066a; public const uint Arabic_superscript_alef = 0x1000670; public const uint Arabic_tteh = 0x1000679; public const uint Arabic_peh = 0x100067e; public const uint Arabic_tcheh = 0x1000686; public const uint Arabic_ddal = 0x1000688; public const uint Arabic_rreh = 0x1000691; public const uint Arabic_comma = 0x05ac; public const uint Arabic_fullstop = 0x10006d4; public const uint Arabic_0 = 0x1000660; public const uint Arabic_1 = 0x1000661; public const uint Arabic_2 = 0x1000662; public const uint Arabic_3 = 0x1000663; public const uint Arabic_4 = 0x1000664; public const uint Arabic_5 = 0x1000665; public const uint Arabic_6 = 0x1000666; public const uint Arabic_7 = 0x1000667; public const uint Arabic_8 = 0x1000668; public const uint Arabic_9 = 0x1000669; public const uint Arabic_semicolon = 0x05bb; public const uint Arabic_question_mark = 0x05bf; public const uint Arabic_hamza = 0x05c1; public const uint Arabic_maddaonalef = 0x05c2; public const uint Arabic_hamzaonalef = 0x05c3; public const uint Arabic_hamzaonwaw = 0x05c4; public const uint Arabic_hamzaunderalef = 0x05c5; public const uint Arabic_hamzaonyeh = 0x05c6; public const uint Arabic_alef = 0x05c7; public const uint Arabic_beh = 0x05c8; public const uint Arabic_tehmarbuta = 0x05c9; public const uint Arabic_teh = 0x05ca; public const uint Arabic_theh = 0x05cb; public const uint Arabic_jeem = 0x05cc; public const uint Arabic_hah = 0x05cd; public const uint Arabic_khah = 0x05ce; public const uint Arabic_dal = 0x05cf; public const uint Arabic_thal = 0x05d0; public const uint Arabic_ra = 0x05d1; public const uint Arabic_zain = 0x05d2; public const uint Arabic_seen = 0x05d3; public const uint Arabic_sheen = 0x05d4; public const uint Arabic_sad = 0x05d5; public const uint Arabic_dad = 0x05d6; public const uint Arabic_tah = 0x05d7; public const uint Arabic_zah = 0x05d8; public const uint Arabic_ain = 0x05d9; public const uint Arabic_ghain = 0x05da; public const uint Arabic_tatweel = 0x05e0; public const uint Arabic_feh = 0x05e1; public const uint Arabic_qaf = 0x05e2; public const uint Arabic_kaf = 0x05e3; public const uint Arabic_lam = 0x05e4; public const uint Arabic_meem = 0x05e5; public const uint Arabic_noon = 0x05e6; public const uint Arabic_ha = 0x05e7; public const uint Arabic_heh = 0x05e7; public const uint Arabic_waw = 0x05e8; public const uint Arabic_alefmaksura = 0x05e9; public const uint Arabic_yeh = 0x05ea; public const uint Arabic_fathatan = 0x05eb; public const uint Arabic_dammatan = 0x05ec; public const uint Arabic_kasratan = 0x05ed; public const uint Arabic_fatha = 0x05ee; public const uint Arabic_damma = 0x05ef; public const uint Arabic_kasra = 0x05f0; public const uint Arabic_shadda = 0x05f1; public const uint Arabic_sukun = 0x05f2; public const uint Arabic_madda_above = 0x1000653; public const uint Arabic_hamza_above = 0x1000654; public const uint Arabic_hamza_below = 0x1000655; public const uint Arabic_jeh = 0x1000698; public const uint Arabic_veh = 0x10006a4; public const uint Arabic_keheh = 0x10006a9; public const uint Arabic_gaf = 0x10006af; public const uint Arabic_noon_ghunna = 0x10006ba; public const uint Arabic_heh_doachashmee = 0x10006be; public const uint Farsi_yeh = 0x10006cc; public const uint Arabic_farsi_yeh = 0x10006cc; public const uint Arabic_yeh_baree = 0x10006d2; public const uint Arabic_heh_goal = 0x10006c1; public const uint Arabic_switch = 0xff7e; public const uint Cyrillic_GHE_bar = 0x1000492; public const uint Cyrillic_ghe_bar = 0x1000493; public const uint Cyrillic_ZHE_descender = 0x1000496; public const uint Cyrillic_zhe_descender = 0x1000497; public const uint Cyrillic_KA_descender = 0x100049a; public const uint Cyrillic_ka_descender = 0x100049b; public const uint Cyrillic_KA_vertstroke = 0x100049c; public const uint Cyrillic_ka_vertstroke = 0x100049d; public const uint Cyrillic_EN_descender = 0x10004a2; public const uint Cyrillic_en_descender = 0x10004a3; public const uint Cyrillic_U_straight = 0x10004ae; public const uint Cyrillic_u_straight = 0x10004af; public const uint Cyrillic_U_straight_bar = 0x10004b0; public const uint Cyrillic_u_straight_bar = 0x10004b1; public const uint Cyrillic_HA_descender = 0x10004b2; public const uint Cyrillic_ha_descender = 0x10004b3; public const uint Cyrillic_CHE_descender = 0x10004b6; public const uint Cyrillic_che_descender = 0x10004b7; public const uint Cyrillic_CHE_vertstroke = 0x10004b8; public const uint Cyrillic_che_vertstroke = 0x10004b9; public const uint Cyrillic_SHHA = 0x10004ba; public const uint Cyrillic_shha = 0x10004bb; public const uint Cyrillic_SCHWA = 0x10004d8; public const uint Cyrillic_schwa = 0x10004d9; public const uint Cyrillic_I_macron = 0x10004e2; public const uint Cyrillic_i_macron = 0x10004e3; public const uint Cyrillic_O_bar = 0x10004e8; public const uint Cyrillic_o_bar = 0x10004e9; public const uint Cyrillic_U_macron = 0x10004ee; public const uint Cyrillic_u_macron = 0x10004ef; public const uint Serbian_dje = 0x06a1; public const uint Macedonia_gje = 0x06a2; public const uint Cyrillic_io = 0x06a3; public const uint Ukrainian_ie = 0x06a4; public const uint Ukranian_je = 0x06a4; public const uint Macedonia_dse = 0x06a5; public const uint Ukrainian_i = 0x06a6; public const uint Ukranian_i = 0x06a6; public const uint Ukrainian_yi = 0x06a7; public const uint Ukranian_yi = 0x06a7; public const uint Cyrillic_je = 0x06a8; public const uint Serbian_je = 0x06a8; public const uint Cyrillic_lje = 0x06a9; public const uint Serbian_lje = 0x06a9; public const uint Cyrillic_nje = 0x06aa; public const uint Serbian_nje = 0x06aa; public const uint Serbian_tshe = 0x06ab; public const uint Macedonia_kje = 0x06ac; public const uint Ukrainian_ghe_with_upturn = 0x06ad; public const uint Byelorussian_shortu = 0x06ae; public const uint Cyrillic_dzhe = 0x06af; public const uint Serbian_dze = 0x06af; public const uint numerosign = 0x06b0; public const uint Serbian_DJE = 0x06b1; public const uint Macedonia_GJE = 0x06b2; public const uint Cyrillic_IO = 0x06b3; public const uint Ukrainian_IE = 0x06b4; public const uint Ukranian_JE = 0x06b4; public const uint Macedonia_DSE = 0x06b5; public const uint Ukrainian_I = 0x06b6; public const uint Ukranian_I = 0x06b6; public const uint Ukrainian_YI = 0x06b7; public const uint Ukranian_YI = 0x06b7; public const uint Cyrillic_JE = 0x06b8; public const uint Serbian_JE = 0x06b8; public const uint Cyrillic_LJE = 0x06b9; public const uint Serbian_LJE = 0x06b9; public const uint Cyrillic_NJE = 0x06ba; public const uint Serbian_NJE = 0x06ba; public const uint Serbian_TSHE = 0x06bb; public const uint Macedonia_KJE = 0x06bc; public const uint Ukrainian_GHE_WITH_UPTURN = 0x06bd; public const uint Byelorussian_SHORTU = 0x06be; public const uint Cyrillic_DZHE = 0x06bf; public const uint Serbian_DZE = 0x06bf; public const uint Cyrillic_yu = 0x06c0; public const uint Cyrillic_a = 0x06c1; public const uint Cyrillic_be = 0x06c2; public const uint Cyrillic_tse = 0x06c3; public const uint Cyrillic_de = 0x06c4; public const uint Cyrillic_ie = 0x06c5; public const uint Cyrillic_ef = 0x06c6; public const uint Cyrillic_ghe = 0x06c7; public const uint Cyrillic_ha = 0x06c8; public const uint Cyrillic_i = 0x06c9; public const uint Cyrillic_shorti = 0x06ca; public const uint Cyrillic_ka = 0x06cb; public const uint Cyrillic_el = 0x06cc; public const uint Cyrillic_em = 0x06cd; public const uint Cyrillic_en = 0x06ce; public const uint Cyrillic_o = 0x06cf; public const uint Cyrillic_pe = 0x06d0; public const uint Cyrillic_ya = 0x06d1; public const uint Cyrillic_er = 0x06d2; public const uint Cyrillic_es = 0x06d3; public const uint Cyrillic_te = 0x06d4; public const uint Cyrillic_u = 0x06d5; public const uint Cyrillic_zhe = 0x06d6; public const uint Cyrillic_ve = 0x06d7; public const uint Cyrillic_softsign = 0x06d8; public const uint Cyrillic_yeru = 0x06d9; public const uint Cyrillic_ze = 0x06da; public const uint Cyrillic_sha = 0x06db; public const uint Cyrillic_e = 0x06dc; public const uint Cyrillic_shcha = 0x06dd; public const uint Cyrillic_che = 0x06de; public const uint Cyrillic_hardsign = 0x06df; public const uint Cyrillic_YU = 0x06e0; public const uint Cyrillic_A = 0x06e1; public const uint Cyrillic_BE = 0x06e2; public const uint Cyrillic_TSE = 0x06e3; public const uint Cyrillic_DE = 0x06e4; public const uint Cyrillic_IE = 0x06e5; public const uint Cyrillic_EF = 0x06e6; public const uint Cyrillic_GHE = 0x06e7; public const uint Cyrillic_HA = 0x06e8; public const uint Cyrillic_I = 0x06e9; public const uint Cyrillic_SHORTI = 0x06ea; public const uint Cyrillic_KA = 0x06eb; public const uint Cyrillic_EL = 0x06ec; public const uint Cyrillic_EM = 0x06ed; public const uint Cyrillic_EN = 0x06ee; public const uint Cyrillic_O = 0x06ef; public const uint Cyrillic_PE = 0x06f0; public const uint Cyrillic_YA = 0x06f1; public const uint Cyrillic_ER = 0x06f2; public const uint Cyrillic_ES = 0x06f3; public const uint Cyrillic_TE = 0x06f4; public const uint Cyrillic_U = 0x06f5; public const uint Cyrillic_ZHE = 0x06f6; public const uint Cyrillic_VE = 0x06f7; public const uint Cyrillic_SOFTSIGN = 0x06f8; public const uint Cyrillic_YERU = 0x06f9; public const uint Cyrillic_ZE = 0x06fa; public const uint Cyrillic_SHA = 0x06fb; public const uint Cyrillic_E = 0x06fc; public const uint Cyrillic_SHCHA = 0x06fd; public const uint Cyrillic_CHE = 0x06fe; public const uint Cyrillic_HARDSIGN = 0x06ff; public const uint Greek_ALPHAaccent = 0x07a1; public const uint Greek_EPSILONaccent = 0x07a2; public const uint Greek_ETAaccent = 0x07a3; public const uint Greek_IOTAaccent = 0x07a4; public const uint Greek_IOTAdieresis = 0x07a5; public const uint Greek_IOTAdiaeresis = 0x07a5; public const uint Greek_OMICRONaccent = 0x07a7; public const uint Greek_UPSILONaccent = 0x07a8; public const uint Greek_UPSILONdieresis = 0x07a9; public const uint Greek_OMEGAaccent = 0x07ab; public const uint Greek_accentdieresis = 0x07ae; public const uint Greek_horizbar = 0x07af; public const uint Greek_alphaaccent = 0x07b1; public const uint Greek_epsilonaccent = 0x07b2; public const uint Greek_etaaccent = 0x07b3; public const uint Greek_iotaaccent = 0x07b4; public const uint Greek_iotadieresis = 0x07b5; public const uint Greek_iotaaccentdieresis = 0x07b6; public const uint Greek_omicronaccent = 0x07b7; public const uint Greek_upsilonaccent = 0x07b8; public const uint Greek_upsilondieresis = 0x07b9; public const uint Greek_upsilonaccentdieresis = 0x07ba; public const uint Greek_omegaaccent = 0x07bb; public const uint Greek_ALPHA = 0x07c1; public const uint Greek_BETA = 0x07c2; public const uint Greek_GAMMA = 0x07c3; public const uint Greek_DELTA = 0x07c4; public const uint Greek_EPSILON = 0x07c5; public const uint Greek_ZETA = 0x07c6; public const uint Greek_ETA = 0x07c7; public const uint Greek_THETA = 0x07c8; public const uint Greek_IOTA = 0x07c9; public const uint Greek_KAPPA = 0x07ca; public const uint Greek_LAMDA = 0x07cb; public const uint Greek_LAMBDA = 0x07cb; public const uint Greek_MU = 0x07cc; public const uint Greek_NU = 0x07cd; public const uint Greek_XI = 0x07ce; public const uint Greek_OMICRON = 0x07cf; public const uint Greek_PI = 0x07d0; public const uint Greek_RHO = 0x07d1; public const uint Greek_SIGMA = 0x07d2; public const uint Greek_TAU = 0x07d4; public const uint Greek_UPSILON = 0x07d5; public const uint Greek_PHI = 0x07d6; public const uint Greek_CHI = 0x07d7; public const uint Greek_PSI = 0x07d8; public const uint Greek_OMEGA = 0x07d9; public const uint Greek_alpha = 0x07e1; public const uint Greek_beta = 0x07e2; public const uint Greek_gamma = 0x07e3; public const uint Greek_delta = 0x07e4; public const uint Greek_epsilon = 0x07e5; public const uint Greek_zeta = 0x07e6; public const uint Greek_eta = 0x07e7; public const uint Greek_theta = 0x07e8; public const uint Greek_iota = 0x07e9; public const uint Greek_kappa = 0x07ea; public const uint Greek_lamda = 0x07eb; public const uint Greek_lambda = 0x07eb; public const uint Greek_mu = 0x07ec; public const uint Greek_nu = 0x07ed; public const uint Greek_xi = 0x07ee; public const uint Greek_omicron = 0x07ef; public const uint Greek_pi = 0x07f0; public const uint Greek_rho = 0x07f1; public const uint Greek_sigma = 0x07f2; public const uint Greek_finalsmallsigma = 0x07f3; public const uint Greek_tau = 0x07f4; public const uint Greek_upsilon = 0x07f5; public const uint Greek_phi = 0x07f6; public const uint Greek_chi = 0x07f7; public const uint Greek_psi = 0x07f8; public const uint Greek_omega = 0x07f9; public const uint Greek_switch = 0xff7e; public const uint leftradical = 0x08a1; public const uint topleftradical = 0x08a2; public const uint horizconnector = 0x08a3; public const uint topintegral = 0x08a4; public const uint botintegral = 0x08a5; public const uint vertconnector = 0x08a6; public const uint topleftsqbracket = 0x08a7; public const uint botleftsqbracket = 0x08a8; public const uint toprightsqbracket = 0x08a9; public const uint botrightsqbracket = 0x08aa; public const uint topleftparens = 0x08ab; public const uint botleftparens = 0x08ac; public const uint toprightparens = 0x08ad; public const uint botrightparens = 0x08ae; public const uint leftmiddlecurlybrace = 0x08af; public const uint rightmiddlecurlybrace = 0x08b0; public const uint topleftsummation = 0x08b1; public const uint botleftsummation = 0x08b2; public const uint topvertsummationconnector = 0x08b3; public const uint botvertsummationconnector = 0x08b4; public const uint toprightsummation = 0x08b5; public const uint botrightsummation = 0x08b6; public const uint rightmiddlesummation = 0x08b7; public const uint lessthanequal = 0x08bc; public const uint notequal = 0x08bd; public const uint greaterthanequal = 0x08be; public const uint integral = 0x08bf; public const uint therefore = 0x08c0; public const uint variation = 0x08c1; public const uint infinity = 0x08c2; public const uint nabla = 0x08c5; public const uint approximate = 0x08c8; public const uint similarequal = 0x08c9; public const uint ifonlyif = 0x08cd; public const uint implies = 0x08ce; public const uint identical = 0x08cf; public const uint radical = 0x08d6; public const uint includedin = 0x08da; public const uint includes = 0x08db; public const uint intersection = 0x08dc; public const uint union = 0x08dd; public const uint logicaland = 0x08de; public const uint logicalor = 0x08df; public const uint partialderivative = 0x08ef; public const uint function = 0x08f6; public const uint leftarrow = 0x08fb; public const uint uparrow = 0x08fc; public const uint rightarrow = 0x08fd; public const uint downarrow = 0x08fe; public const uint blank = 0x09df; public const uint soliddiamond = 0x09e0; public const uint checkerboard = 0x09e1; public const uint ht = 0x09e2; public const uint ff = 0x09e3; public const uint cr = 0x09e4; public const uint lf = 0x09e5; public const uint nl = 0x09e8; public const uint vt = 0x09e9; public const uint lowrightcorner = 0x09ea; public const uint uprightcorner = 0x09eb; public const uint upleftcorner = 0x09ec; public const uint lowleftcorner = 0x09ed; public const uint crossinglines = 0x09ee; public const uint horizlinescan1 = 0x09ef; public const uint horizlinescan3 = 0x09f0; public const uint horizlinescan5 = 0x09f1; public const uint horizlinescan7 = 0x09f2; public const uint horizlinescan9 = 0x09f3; public const uint leftt = 0x09f4; public const uint rightt = 0x09f5; public const uint bott = 0x09f6; public const uint topt = 0x09f7; public const uint vertbar = 0x09f8; public const uint emspace = 0x0aa1; public const uint enspace = 0x0aa2; public const uint em3space = 0x0aa3; public const uint em4space = 0x0aa4; public const uint digitspace = 0x0aa5; public const uint punctspace = 0x0aa6; public const uint thinspace = 0x0aa7; public const uint hairspace = 0x0aa8; public const uint emdash = 0x0aa9; public const uint endash = 0x0aaa; public const uint signifblank = 0x0aac; public const uint ellipsis = 0x0aae; public const uint doubbaselinedot = 0x0aaf; public const uint onethird = 0x0ab0; public const uint twothirds = 0x0ab1; public const uint onefifth = 0x0ab2; public const uint twofifths = 0x0ab3; public const uint threefifths = 0x0ab4; public const uint fourfifths = 0x0ab5; public const uint onesixth = 0x0ab6; public const uint fivesixths = 0x0ab7; public const uint careof = 0x0ab8; public const uint figdash = 0x0abb; public const uint leftanglebracket = 0x0abc; public const uint decimalpoint = 0x0abd; public const uint rightanglebracket = 0x0abe; public const uint marker = 0x0abf; public const uint oneeighth = 0x0ac3; public const uint threeeighths = 0x0ac4; public const uint fiveeighths = 0x0ac5; public const uint seveneighths = 0x0ac6; public const uint trademark = 0x0ac9; public const uint signaturemark = 0x0aca; public const uint trademarkincircle = 0x0acb; public const uint leftopentriangle = 0x0acc; public const uint rightopentriangle = 0x0acd; public const uint emopencircle = 0x0ace; public const uint emopenrectangle = 0x0acf; public const uint leftsinglequotemark = 0x0ad0; public const uint rightsinglequotemark = 0x0ad1; public const uint leftdoublequotemark = 0x0ad2; public const uint rightdoublequotemark = 0x0ad3; public const uint prescription = 0x0ad4; public const uint minutes = 0x0ad6; public const uint seconds = 0x0ad7; public const uint latincross = 0x0ad9; public const uint hexagram = 0x0ada; public const uint filledrectbullet = 0x0adb; public const uint filledlefttribullet = 0x0adc; public const uint filledrighttribullet = 0x0add; public const uint emfilledcircle = 0x0ade; public const uint emfilledrect = 0x0adf; public const uint enopencircbullet = 0x0ae0; public const uint enopensquarebullet = 0x0ae1; public const uint openrectbullet = 0x0ae2; public const uint opentribulletup = 0x0ae3; public const uint opentribulletdown = 0x0ae4; public const uint openstar = 0x0ae5; public const uint enfilledcircbullet = 0x0ae6; public const uint enfilledsqbullet = 0x0ae7; public const uint filledtribulletup = 0x0ae8; public const uint filledtribulletdown = 0x0ae9; public const uint leftpointer = 0x0aea; public const uint rightpointer = 0x0aeb; public const uint club = 0x0aec; public const uint diamond = 0x0aed; public const uint heart = 0x0aee; public const uint maltesecross = 0x0af0; public const uint dagger = 0x0af1; public const uint doubledagger = 0x0af2; public const uint checkmark = 0x0af3; public const uint ballotcross = 0x0af4; public const uint musicalsharp = 0x0af5; public const uint musicalflat = 0x0af6; public const uint malesymbol = 0x0af7; public const uint femalesymbol = 0x0af8; public const uint telephone = 0x0af9; public const uint telephonerecorder = 0x0afa; public const uint phonographcopyright = 0x0afb; public const uint caret = 0x0afc; public const uint singlelowquotemark = 0x0afd; public const uint doublelowquotemark = 0x0afe; public const uint cursor = 0x0aff; public const uint leftcaret = 0x0ba3; public const uint rightcaret = 0x0ba6; public const uint downcaret = 0x0ba8; public const uint upcaret = 0x0ba9; public const uint overbar = 0x0bc0; public const uint downtack = 0x0bc2; public const uint upshoe = 0x0bc3; public const uint downstile = 0x0bc4; public const uint underbar = 0x0bc6; public const uint jot = 0x0bca; public const uint quad = 0x0bcc; public const uint uptack = 0x0bce; public const uint circle = 0x0bcf; public const uint upstile = 0x0bd3; public const uint downshoe = 0x0bd6; public const uint rightshoe = 0x0bd8; public const uint leftshoe = 0x0bda; public const uint lefttack = 0x0bdc; public const uint righttack = 0x0bfc; public const uint hebrew_doublelowline = 0x0cdf; public const uint hebrew_aleph = 0x0ce0; public const uint hebrew_bet = 0x0ce1; public const uint hebrew_beth = 0x0ce1; public const uint hebrew_gimel = 0x0ce2; public const uint hebrew_gimmel = 0x0ce2; public const uint hebrew_dalet = 0x0ce3; public const uint hebrew_daleth = 0x0ce3; public const uint hebrew_he = 0x0ce4; public const uint hebrew_waw = 0x0ce5; public const uint hebrew_zain = 0x0ce6; public const uint hebrew_zayin = 0x0ce6; public const uint hebrew_chet = 0x0ce7; public const uint hebrew_het = 0x0ce7; public const uint hebrew_tet = 0x0ce8; public const uint hebrew_teth = 0x0ce8; public const uint hebrew_yod = 0x0ce9; public const uint hebrew_finalkaph = 0x0cea; public const uint hebrew_kaph = 0x0ceb; public const uint hebrew_lamed = 0x0cec; public const uint hebrew_finalmem = 0x0ced; public const uint hebrew_mem = 0x0cee; public const uint hebrew_finalnun = 0x0cef; public const uint hebrew_nun = 0x0cf0; public const uint hebrew_samech = 0x0cf1; public const uint hebrew_samekh = 0x0cf1; public const uint hebrew_ayin = 0x0cf2; public const uint hebrew_finalpe = 0x0cf3; public const uint hebrew_pe = 0x0cf4; public const uint hebrew_finalzade = 0x0cf5; public const uint hebrew_finalzadi = 0x0cf5; public const uint hebrew_zade = 0x0cf6; public const uint hebrew_zadi = 0x0cf6; public const uint hebrew_qoph = 0x0cf7; public const uint hebrew_kuf = 0x0cf7; public const uint hebrew_resh = 0x0cf8; public const uint hebrew_shin = 0x0cf9; public const uint hebrew_taw = 0x0cfa; public const uint hebrew_taf = 0x0cfa; public const uint Hebrew_switch = 0xff7e; public const uint Thai_kokai = 0x0da1; public const uint Thai_khokhai = 0x0da2; public const uint Thai_khokhuat = 0x0da3; public const uint Thai_khokhwai = 0x0da4; public const uint Thai_khokhon = 0x0da5; public const uint Thai_khorakhang = 0x0da6; public const uint Thai_ngongu = 0x0da7; public const uint Thai_chochan = 0x0da8; public const uint Thai_choching = 0x0da9; public const uint Thai_chochang = 0x0daa; public const uint Thai_soso = 0x0dab; public const uint Thai_chochoe = 0x0dac; public const uint Thai_yoying = 0x0dad; public const uint Thai_dochada = 0x0dae; public const uint Thai_topatak = 0x0daf; public const uint Thai_thothan = 0x0db0; public const uint Thai_thonangmontho = 0x0db1; public const uint Thai_thophuthao = 0x0db2; public const uint Thai_nonen = 0x0db3; public const uint Thai_dodek = 0x0db4; public const uint Thai_totao = 0x0db5; public const uint Thai_thothung = 0x0db6; public const uint Thai_thothahan = 0x0db7; public const uint Thai_thothong = 0x0db8; public const uint Thai_nonu = 0x0db9; public const uint Thai_bobaimai = 0x0dba; public const uint Thai_popla = 0x0dbb; public const uint Thai_phophung = 0x0dbc; public const uint Thai_fofa = 0x0dbd; public const uint Thai_phophan = 0x0dbe; public const uint Thai_fofan = 0x0dbf; public const uint Thai_phosamphao = 0x0dc0; public const uint Thai_moma = 0x0dc1; public const uint Thai_yoyak = 0x0dc2; public const uint Thai_rorua = 0x0dc3; public const uint Thai_ru = 0x0dc4; public const uint Thai_loling = 0x0dc5; public const uint Thai_lu = 0x0dc6; public const uint Thai_wowaen = 0x0dc7; public const uint Thai_sosala = 0x0dc8; public const uint Thai_sorusi = 0x0dc9; public const uint Thai_sosua = 0x0dca; public const uint Thai_hohip = 0x0dcb; public const uint Thai_lochula = 0x0dcc; public const uint Thai_oang = 0x0dcd; public const uint Thai_honokhuk = 0x0dce; public const uint Thai_paiyannoi = 0x0dcf; public const uint Thai_saraa = 0x0dd0; public const uint Thai_maihanakat = 0x0dd1; public const uint Thai_saraaa = 0x0dd2; public const uint Thai_saraam = 0x0dd3; public const uint Thai_sarai = 0x0dd4; public const uint Thai_saraii = 0x0dd5; public const uint Thai_saraue = 0x0dd6; public const uint Thai_sarauee = 0x0dd7; public const uint Thai_sarau = 0x0dd8; public const uint Thai_sarauu = 0x0dd9; public const uint Thai_phinthu = 0x0dda; public const uint Thai_maihanakat_maitho = 0x0dde; public const uint Thai_baht = 0x0ddf; public const uint Thai_sarae = 0x0de0; public const uint Thai_saraae = 0x0de1; public const uint Thai_sarao = 0x0de2; public const uint Thai_saraaimaimuan = 0x0de3; public const uint Thai_saraaimaimalai = 0x0de4; public const uint Thai_lakkhangyao = 0x0de5; public const uint Thai_maiyamok = 0x0de6; public const uint Thai_maitaikhu = 0x0de7; public const uint Thai_maiek = 0x0de8; public const uint Thai_maitho = 0x0de9; public const uint Thai_maitri = 0x0dea; public const uint Thai_maichattawa = 0x0deb; public const uint Thai_thanthakhat = 0x0dec; public const uint Thai_nikhahit = 0x0ded; public const uint Thai_leksun = 0x0df0; public const uint Thai_leknung = 0x0df1; public const uint Thai_leksong = 0x0df2; public const uint Thai_leksam = 0x0df3; public const uint Thai_leksi = 0x0df4; public const uint Thai_lekha = 0x0df5; public const uint Thai_lekhok = 0x0df6; public const uint Thai_lekchet = 0x0df7; public const uint Thai_lekpaet = 0x0df8; public const uint Thai_lekkao = 0x0df9; public const uint Hangul = 0xff31; public const uint Hangul_Start = 0xff32; public const uint Hangul_End = 0xff33; public const uint Hangul_Hanja = 0xff34; public const uint Hangul_Jamo = 0xff35; public const uint Hangul_Romaja = 0xff36; public const uint Hangul_Codeinput = 0xff37; public const uint Hangul_Jeonja = 0xff38; public const uint Hangul_Banja = 0xff39; public const uint Hangul_PreHanja = 0xff3a; public const uint Hangul_PostHanja = 0xff3b; public const uint Hangul_SingleCandidate = 0xff3c; public const uint Hangul_MultipleCandidate = 0xff3d; public const uint Hangul_PreviousCandidate = 0xff3e; public const uint Hangul_Special = 0xff3f; public const uint Hangul_switch = 0xff7e; public const uint Hangul_Kiyeog = 0x0ea1; public const uint Hangul_SsangKiyeog = 0x0ea2; public const uint Hangul_KiyeogSios = 0x0ea3; public const uint Hangul_Nieun = 0x0ea4; public const uint Hangul_NieunJieuj = 0x0ea5; public const uint Hangul_NieunHieuh = 0x0ea6; public const uint Hangul_Dikeud = 0x0ea7; public const uint Hangul_SsangDikeud = 0x0ea8; public const uint Hangul_Rieul = 0x0ea9; public const uint Hangul_RieulKiyeog = 0x0eaa; public const uint Hangul_RieulMieum = 0x0eab; public const uint Hangul_RieulPieub = 0x0eac; public const uint Hangul_RieulSios = 0x0ead; public const uint Hangul_RieulTieut = 0x0eae; public const uint Hangul_RieulPhieuf = 0x0eaf; public const uint Hangul_RieulHieuh = 0x0eb0; public const uint Hangul_Mieum = 0x0eb1; public const uint Hangul_Pieub = 0x0eb2; public const uint Hangul_SsangPieub = 0x0eb3; public const uint Hangul_PieubSios = 0x0eb4; public const uint Hangul_Sios = 0x0eb5; public const uint Hangul_SsangSios = 0x0eb6; public const uint Hangul_Ieung = 0x0eb7; public const uint Hangul_Jieuj = 0x0eb8; public const uint Hangul_SsangJieuj = 0x0eb9; public const uint Hangul_Cieuc = 0x0eba; public const uint Hangul_Khieuq = 0x0ebb; public const uint Hangul_Tieut = 0x0ebc; public const uint Hangul_Phieuf = 0x0ebd; public const uint Hangul_Hieuh = 0x0ebe; public const uint Hangul_A = 0x0ebf; public const uint Hangul_AE = 0x0ec0; public const uint Hangul_YA = 0x0ec1; public const uint Hangul_YAE = 0x0ec2; public const uint Hangul_EO = 0x0ec3; public const uint Hangul_E = 0x0ec4; public const uint Hangul_YEO = 0x0ec5; public const uint Hangul_YE = 0x0ec6; public const uint Hangul_O = 0x0ec7; public const uint Hangul_WA = 0x0ec8; public const uint Hangul_WAE = 0x0ec9; public const uint Hangul_OE = 0x0eca; public const uint Hangul_YO = 0x0ecb; public const uint Hangul_U = 0x0ecc; public const uint Hangul_WEO = 0x0ecd; public const uint Hangul_WE = 0x0ece; public const uint Hangul_WI = 0x0ecf; public const uint Hangul_YU = 0x0ed0; public const uint Hangul_EU = 0x0ed1; public const uint Hangul_YI = 0x0ed2; public const uint Hangul_I = 0x0ed3; public const uint Hangul_J_Kiyeog = 0x0ed4; public const uint Hangul_J_SsangKiyeog = 0x0ed5; public const uint Hangul_J_KiyeogSios = 0x0ed6; public const uint Hangul_J_Nieun = 0x0ed7; public const uint Hangul_J_NieunJieuj = 0x0ed8; public const uint Hangul_J_NieunHieuh = 0x0ed9; public const uint Hangul_J_Dikeud = 0x0eda; public const uint Hangul_J_Rieul = 0x0edb; public const uint Hangul_J_RieulKiyeog = 0x0edc; public const uint Hangul_J_RieulMieum = 0x0edd; public const uint Hangul_J_RieulPieub = 0x0ede; public const uint Hangul_J_RieulSios = 0x0edf; public const uint Hangul_J_RieulTieut = 0x0ee0; public const uint Hangul_J_RieulPhieuf = 0x0ee1; public const uint Hangul_J_RieulHieuh = 0x0ee2; public const uint Hangul_J_Mieum = 0x0ee3; public const uint Hangul_J_Pieub = 0x0ee4; public const uint Hangul_J_PieubSios = 0x0ee5; public const uint Hangul_J_Sios = 0x0ee6; public const uint Hangul_J_SsangSios = 0x0ee7; public const uint Hangul_J_Ieung = 0x0ee8; public const uint Hangul_J_Jieuj = 0x0ee9; public const uint Hangul_J_Cieuc = 0x0eea; public const uint Hangul_J_Khieuq = 0x0eeb; public const uint Hangul_J_Tieut = 0x0eec; public const uint Hangul_J_Phieuf = 0x0eed; public const uint Hangul_J_Hieuh = 0x0eee; public const uint Hangul_RieulYeorinHieuh = 0x0eef; public const uint Hangul_SunkyeongeumMieum = 0x0ef0; public const uint Hangul_SunkyeongeumPieub = 0x0ef1; public const uint Hangul_PanSios = 0x0ef2; public const uint Hangul_KkogjiDalrinIeung = 0x0ef3; public const uint Hangul_SunkyeongeumPhieuf = 0x0ef4; public const uint Hangul_YeorinHieuh = 0x0ef5; public const uint Hangul_AraeA = 0x0ef6; public const uint Hangul_AraeAE = 0x0ef7; public const uint Hangul_J_PanSios = 0x0ef8; public const uint Hangul_J_KkogjiDalrinIeung = 0x0ef9; public const uint Hangul_J_YeorinHieuh = 0x0efa; public const uint Korean_Won = 0x0eff; public const uint Armenian_ligature_ew = 0x1000587; public const uint Armenian_full_stop = 0x1000589; public const uint Armenian_verjaket = 0x1000589; public const uint Armenian_separation_mark = 0x100055d; public const uint Armenian_but = 0x100055d; public const uint Armenian_hyphen = 0x100058a; public const uint Armenian_yentamna = 0x100058a; public const uint Armenian_exclam = 0x100055c; public const uint Armenian_amanak = 0x100055c; public const uint Armenian_accent = 0x100055b; public const uint Armenian_shesht = 0x100055b; public const uint Armenian_question = 0x100055e; public const uint Armenian_paruyk = 0x100055e; public const uint Armenian_AYB = 0x1000531; public const uint Armenian_ayb = 0x1000561; public const uint Armenian_BEN = 0x1000532; public const uint Armenian_ben = 0x1000562; public const uint Armenian_GIM = 0x1000533; public const uint Armenian_gim = 0x1000563; public const uint Armenian_DA = 0x1000534; public const uint Armenian_da = 0x1000564; public const uint Armenian_YECH = 0x1000535; public const uint Armenian_yech = 0x1000565; public const uint Armenian_ZA = 0x1000536; public const uint Armenian_za = 0x1000566; public const uint Armenian_E = 0x1000537; public const uint Armenian_e = 0x1000567; public const uint Armenian_AT = 0x1000538; public const uint Armenian_at = 0x1000568; public const uint Armenian_TO = 0x1000539; public const uint Armenian_to = 0x1000569; public const uint Armenian_ZHE = 0x100053a; public const uint Armenian_zhe = 0x100056a; public const uint Armenian_INI = 0x100053b; public const uint Armenian_ini = 0x100056b; public const uint Armenian_LYUN = 0x100053c; public const uint Armenian_lyun = 0x100056c; public const uint Armenian_KHE = 0x100053d; public const uint Armenian_khe = 0x100056d; public const uint Armenian_TSA = 0x100053e; public const uint Armenian_tsa = 0x100056e; public const uint Armenian_KEN = 0x100053f; public const uint Armenian_ken = 0x100056f; public const uint Armenian_HO = 0x1000540; public const uint Armenian_ho = 0x1000570; public const uint Armenian_DZA = 0x1000541; public const uint Armenian_dza = 0x1000571; public const uint Armenian_GHAT = 0x1000542; public const uint Armenian_ghat = 0x1000572; public const uint Armenian_TCHE = 0x1000543; public const uint Armenian_tche = 0x1000573; public const uint Armenian_MEN = 0x1000544; public const uint Armenian_men = 0x1000574; public const uint Armenian_HI = 0x1000545; public const uint Armenian_hi = 0x1000575; public const uint Armenian_NU = 0x1000546; public const uint Armenian_nu = 0x1000576; public const uint Armenian_SHA = 0x1000547; public const uint Armenian_sha = 0x1000577; public const uint Armenian_VO = 0x1000548; public const uint Armenian_vo = 0x1000578; public const uint Armenian_CHA = 0x1000549; public const uint Armenian_cha = 0x1000579; public const uint Armenian_PE = 0x100054a; public const uint Armenian_pe = 0x100057a; public const uint Armenian_JE = 0x100054b; public const uint Armenian_je = 0x100057b; public const uint Armenian_RA = 0x100054c; public const uint Armenian_ra = 0x100057c; public const uint Armenian_SE = 0x100054d; public const uint Armenian_se = 0x100057d; public const uint Armenian_VEV = 0x100054e; public const uint Armenian_vev = 0x100057e; public const uint Armenian_TYUN = 0x100054f; public const uint Armenian_tyun = 0x100057f; public const uint Armenian_RE = 0x1000550; public const uint Armenian_re = 0x1000580; public const uint Armenian_TSO = 0x1000551; public const uint Armenian_tso = 0x1000581; public const uint Armenian_VYUN = 0x1000552; public const uint Armenian_vyun = 0x1000582; public const uint Armenian_PYUR = 0x1000553; public const uint Armenian_pyur = 0x1000583; public const uint Armenian_KE = 0x1000554; public const uint Armenian_ke = 0x1000584; public const uint Armenian_O = 0x1000555; public const uint Armenian_o = 0x1000585; public const uint Armenian_FE = 0x1000556; public const uint Armenian_fe = 0x1000586; public const uint Armenian_apostrophe = 0x100055a; public const uint Georgian_an = 0x10010d0; public const uint Georgian_ban = 0x10010d1; public const uint Georgian_gan = 0x10010d2; public const uint Georgian_don = 0x10010d3; public const uint Georgian_en = 0x10010d4; public const uint Georgian_vin = 0x10010d5; public const uint Georgian_zen = 0x10010d6; public const uint Georgian_tan = 0x10010d7; public const uint Georgian_in = 0x10010d8; public const uint Georgian_kan = 0x10010d9; public const uint Georgian_las = 0x10010da; public const uint Georgian_man = 0x10010db; public const uint Georgian_nar = 0x10010dc; public const uint Georgian_on = 0x10010dd; public const uint Georgian_par = 0x10010de; public const uint Georgian_zhar = 0x10010df; public const uint Georgian_rae = 0x10010e0; public const uint Georgian_san = 0x10010e1; public const uint Georgian_tar = 0x10010e2; public const uint Georgian_un = 0x10010e3; public const uint Georgian_phar = 0x10010e4; public const uint Georgian_khar = 0x10010e5; public const uint Georgian_ghan = 0x10010e6; public const uint Georgian_qar = 0x10010e7; public const uint Georgian_shin = 0x10010e8; public const uint Georgian_chin = 0x10010e9; public const uint Georgian_can = 0x10010ea; public const uint Georgian_jil = 0x10010eb; public const uint Georgian_cil = 0x10010ec; public const uint Georgian_char = 0x10010ed; public const uint Georgian_xan = 0x10010ee; public const uint Georgian_jhan = 0x10010ef; public const uint Georgian_hae = 0x10010f0; public const uint Georgian_he = 0x10010f1; public const uint Georgian_hie = 0x10010f2; public const uint Georgian_we = 0x10010f3; public const uint Georgian_har = 0x10010f4; public const uint Georgian_hoe = 0x10010f5; public const uint Georgian_fi = 0x10010f6; public const uint Xabovedot = 0x1001e8a; public const uint Ibreve = 0x100012c; public const uint Zstroke = 0x10001b5; public const uint Gcaron = 0x10001e6; public const uint Ocaron = 0x10001d1; public const uint Obarred = 0x100019f; public const uint xabovedot = 0x1001e8b; public const uint ibreve = 0x100012d; public const uint zstroke = 0x10001b6; public const uint gcaron = 0x10001e7; public const uint ocaron = 0x10001d2; public const uint obarred = 0x1000275; public const uint SCHWA = 0x100018f; public const uint schwa = 0x1000259; public const uint Lbelowdot = 0x1001e36; public const uint lbelowdot = 0x1001e37; public const uint Abelowdot = 0x1001ea0; public const uint abelowdot = 0x1001ea1; public const uint Ahook = 0x1001ea2; public const uint ahook = 0x1001ea3; public const uint Acircumflexacute = 0x1001ea4; public const uint acircumflexacute = 0x1001ea5; public const uint Acircumflexgrave = 0x1001ea6; public const uint acircumflexgrave = 0x1001ea7; public const uint Acircumflexhook = 0x1001ea8; public const uint acircumflexhook = 0x1001ea9; public const uint Acircumflextilde = 0x1001eaa; public const uint acircumflextilde = 0x1001eab; public const uint Acircumflexbelowdot = 0x1001eac; public const uint acircumflexbelowdot = 0x1001ead; public const uint Abreveacute = 0x1001eae; public const uint abreveacute = 0x1001eaf; public const uint Abrevegrave = 0x1001eb0; public const uint abrevegrave = 0x1001eb1; public const uint Abrevehook = 0x1001eb2; public const uint abrevehook = 0x1001eb3; public const uint Abrevetilde = 0x1001eb4; public const uint abrevetilde = 0x1001eb5; public const uint Abrevebelowdot = 0x1001eb6; public const uint abrevebelowdot = 0x1001eb7; public const uint Ebelowdot = 0x1001eb8; public const uint ebelowdot = 0x1001eb9; public const uint Ehook = 0x1001eba; public const uint ehook = 0x1001ebb; public const uint Etilde = 0x1001ebc; public const uint etilde = 0x1001ebd; public const uint Ecircumflexacute = 0x1001ebe; public const uint ecircumflexacute = 0x1001ebf; public const uint Ecircumflexgrave = 0x1001ec0; public const uint ecircumflexgrave = 0x1001ec1; public const uint Ecircumflexhook = 0x1001ec2; public const uint ecircumflexhook = 0x1001ec3; public const uint Ecircumflextilde = 0x1001ec4; public const uint ecircumflextilde = 0x1001ec5; public const uint Ecircumflexbelowdot = 0x1001ec6; public const uint ecircumflexbelowdot = 0x1001ec7; public const uint Ihook = 0x1001ec8; public const uint ihook = 0x1001ec9; public const uint Ibelowdot = 0x1001eca; public const uint ibelowdot = 0x1001ecb; public const uint Obelowdot = 0x1001ecc; public const uint obelowdot = 0x1001ecd; public const uint Ohook = 0x1001ece; public const uint ohook = 0x1001ecf; public const uint Ocircumflexacute = 0x1001ed0; public const uint ocircumflexacute = 0x1001ed1; public const uint Ocircumflexgrave = 0x1001ed2; public const uint ocircumflexgrave = 0x1001ed3; public const uint Ocircumflexhook = 0x1001ed4; public const uint ocircumflexhook = 0x1001ed5; public const uint Ocircumflextilde = 0x1001ed6; public const uint ocircumflextilde = 0x1001ed7; public const uint Ocircumflexbelowdot = 0x1001ed8; public const uint ocircumflexbelowdot = 0x1001ed9; public const uint Ohornacute = 0x1001eda; public const uint ohornacute = 0x1001edb; public const uint Ohorngrave = 0x1001edc; public const uint ohorngrave = 0x1001edd; public const uint Ohornhook = 0x1001ede; public const uint ohornhook = 0x1001edf; public const uint Ohorntilde = 0x1001ee0; public const uint ohorntilde = 0x1001ee1; public const uint Ohornbelowdot = 0x1001ee2; public const uint ohornbelowdot = 0x1001ee3; public const uint Ubelowdot = 0x1001ee4; public const uint ubelowdot = 0x1001ee5; public const uint Uhook = 0x1001ee6; public const uint uhook = 0x1001ee7; public const uint Uhornacute = 0x1001ee8; public const uint uhornacute = 0x1001ee9; public const uint Uhorngrave = 0x1001eea; public const uint uhorngrave = 0x1001eeb; public const uint Uhornhook = 0x1001eec; public const uint uhornhook = 0x1001eed; public const uint Uhorntilde = 0x1001eee; public const uint uhorntilde = 0x1001eef; public const uint Uhornbelowdot = 0x1001ef0; public const uint uhornbelowdot = 0x1001ef1; public const uint Ybelowdot = 0x1001ef4; public const uint ybelowdot = 0x1001ef5; public const uint Yhook = 0x1001ef6; public const uint yhook = 0x1001ef7; public const uint Ytilde = 0x1001ef8; public const uint ytilde = 0x1001ef9; public const uint Ohorn = 0x10001a0; public const uint ohorn = 0x10001a1; public const uint Uhorn = 0x10001af; public const uint uhorn = 0x10001b0; public const uint EcuSign = 0x10020a0; public const uint ColonSign = 0x10020a1; public const uint CruzeiroSign = 0x10020a2; public const uint FFrancSign = 0x10020a3; public const uint LiraSign = 0x10020a4; public const uint MillSign = 0x10020a5; public const uint NairaSign = 0x10020a6; public const uint PesetaSign = 0x10020a7; public const uint RupeeSign = 0x10020a8; public const uint WonSign = 0x10020a9; public const uint NewSheqelSign = 0x10020aa; public const uint DongSign = 0x10020ab; public const uint EuroSign = 0x20ac; public const uint zerosuperior = 0x1002070; public const uint foursuperior = 0x1002074; public const uint fivesuperior = 0x1002075; public const uint sixsuperior = 0x1002076; public const uint sevensuperior = 0x1002077; public const uint eightsuperior = 0x1002078; public const uint ninesuperior = 0x1002079; public const uint zerosubscript = 0x1002080; public const uint onesubscript = 0x1002081; public const uint twosubscript = 0x1002082; public const uint threesubscript = 0x1002083; public const uint foursubscript = 0x1002084; public const uint fivesubscript = 0x1002085; public const uint sixsubscript = 0x1002086; public const uint sevensubscript = 0x1002087; public const uint eightsubscript = 0x1002088; public const uint ninesubscript = 0x1002089; public const uint partdifferential = 0x1002202; public const uint emptyset = 0x1002205; public const uint elementof = 0x1002208; public const uint notelementof = 0x1002209; public const uint containsas = 0x100220B; public const uint squareroot = 0x100221A; public const uint cuberoot = 0x100221B; public const uint fourthroot = 0x100221C; public const uint dintegral = 0x100222C; public const uint tintegral = 0x100222D; public const uint because = 0x1002235; public const uint approxeq = 0x1002248; public const uint notapproxeq = 0x1002247; public const uint notidentical = 0x1002262; public const uint stricteq = 0x1002263; public const uint braille_dot_1 = 0xfff1; public const uint braille_dot_2 = 0xfff2; public const uint braille_dot_3 = 0xfff3; public const uint braille_dot_4 = 0xfff4; public const uint braille_dot_5 = 0xfff5; public const uint braille_dot_6 = 0xfff6; public const uint braille_dot_7 = 0xfff7; public const uint braille_dot_8 = 0xfff8; public const uint braille_dot_9 = 0xfff9; public const uint braille_dot_10 = 0xfffa; public const uint braille_blank = 0x1002800; public const uint braille_dots_1 = 0x1002801; public const uint braille_dots_2 = 0x1002802; public const uint braille_dots_12 = 0x1002803; public const uint braille_dots_3 = 0x1002804; public const uint braille_dots_13 = 0x1002805; public const uint braille_dots_23 = 0x1002806; public const uint braille_dots_123 = 0x1002807; public const uint braille_dots_4 = 0x1002808; public const uint braille_dots_14 = 0x1002809; public const uint braille_dots_24 = 0x100280a; public const uint braille_dots_124 = 0x100280b; public const uint braille_dots_34 = 0x100280c; public const uint braille_dots_134 = 0x100280d; public const uint braille_dots_234 = 0x100280e; public const uint braille_dots_1234 = 0x100280f; public const uint braille_dots_5 = 0x1002810; public const uint braille_dots_15 = 0x1002811; public const uint braille_dots_25 = 0x1002812; public const uint braille_dots_125 = 0x1002813; public const uint braille_dots_35 = 0x1002814; public const uint braille_dots_135 = 0x1002815; public const uint braille_dots_235 = 0x1002816; public const uint braille_dots_1235 = 0x1002817; public const uint braille_dots_45 = 0x1002818; public const uint braille_dots_145 = 0x1002819; public const uint braille_dots_245 = 0x100281a; public const uint braille_dots_1245 = 0x100281b; public const uint braille_dots_345 = 0x100281c; public const uint braille_dots_1345 = 0x100281d; public const uint braille_dots_2345 = 0x100281e; public const uint braille_dots_12345 = 0x100281f; public const uint braille_dots_6 = 0x1002820; public const uint braille_dots_16 = 0x1002821; public const uint braille_dots_26 = 0x1002822; public const uint braille_dots_126 = 0x1002823; public const uint braille_dots_36 = 0x1002824; public const uint braille_dots_136 = 0x1002825; public const uint braille_dots_236 = 0x1002826; public const uint braille_dots_1236 = 0x1002827; public const uint braille_dots_46 = 0x1002828; public const uint braille_dots_146 = 0x1002829; public const uint braille_dots_246 = 0x100282a; public const uint braille_dots_1246 = 0x100282b; public const uint braille_dots_346 = 0x100282c; public const uint braille_dots_1346 = 0x100282d; public const uint braille_dots_2346 = 0x100282e; public const uint braille_dots_12346 = 0x100282f; public const uint braille_dots_56 = 0x1002830; public const uint braille_dots_156 = 0x1002831; public const uint braille_dots_256 = 0x1002832; public const uint braille_dots_1256 = 0x1002833; public const uint braille_dots_356 = 0x1002834; public const uint braille_dots_1356 = 0x1002835; public const uint braille_dots_2356 = 0x1002836; public const uint braille_dots_12356 = 0x1002837; public const uint braille_dots_456 = 0x1002838; public const uint braille_dots_1456 = 0x1002839; public const uint braille_dots_2456 = 0x100283a; public const uint braille_dots_12456 = 0x100283b; public const uint braille_dots_3456 = 0x100283c; public const uint braille_dots_13456 = 0x100283d; public const uint braille_dots_23456 = 0x100283e; public const uint braille_dots_123456 = 0x100283f; public const uint braille_dots_7 = 0x1002840; public const uint braille_dots_17 = 0x1002841; public const uint braille_dots_27 = 0x1002842; public const uint braille_dots_127 = 0x1002843; public const uint braille_dots_37 = 0x1002844; public const uint braille_dots_137 = 0x1002845; public const uint braille_dots_237 = 0x1002846; public const uint braille_dots_1237 = 0x1002847; public const uint braille_dots_47 = 0x1002848; public const uint braille_dots_147 = 0x1002849; public const uint braille_dots_247 = 0x100284a; public const uint braille_dots_1247 = 0x100284b; public const uint braille_dots_347 = 0x100284c; public const uint braille_dots_1347 = 0x100284d; public const uint braille_dots_2347 = 0x100284e; public const uint braille_dots_12347 = 0x100284f; public const uint braille_dots_57 = 0x1002850; public const uint braille_dots_157 = 0x1002851; public const uint braille_dots_257 = 0x1002852; public const uint braille_dots_1257 = 0x1002853; public const uint braille_dots_357 = 0x1002854; public const uint braille_dots_1357 = 0x1002855; public const uint braille_dots_2357 = 0x1002856; public const uint braille_dots_12357 = 0x1002857; public const uint braille_dots_457 = 0x1002858; public const uint braille_dots_1457 = 0x1002859; public const uint braille_dots_2457 = 0x100285a; public const uint braille_dots_12457 = 0x100285b; public const uint braille_dots_3457 = 0x100285c; public const uint braille_dots_13457 = 0x100285d; public const uint braille_dots_23457 = 0x100285e; public const uint braille_dots_123457 = 0x100285f; public const uint braille_dots_67 = 0x1002860; public const uint braille_dots_167 = 0x1002861; public const uint braille_dots_267 = 0x1002862; public const uint braille_dots_1267 = 0x1002863; public const uint braille_dots_367 = 0x1002864; public const uint braille_dots_1367 = 0x1002865; public const uint braille_dots_2367 = 0x1002866; public const uint braille_dots_12367 = 0x1002867; public const uint braille_dots_467 = 0x1002868; public const uint braille_dots_1467 = 0x1002869; public const uint braille_dots_2467 = 0x100286a; public const uint braille_dots_12467 = 0x100286b; public const uint braille_dots_3467 = 0x100286c; public const uint braille_dots_13467 = 0x100286d; public const uint braille_dots_23467 = 0x100286e; public const uint braille_dots_123467 = 0x100286f; public const uint braille_dots_567 = 0x1002870; public const uint braille_dots_1567 = 0x1002871; public const uint braille_dots_2567 = 0x1002872; public const uint braille_dots_12567 = 0x1002873; public const uint braille_dots_3567 = 0x1002874; public const uint braille_dots_13567 = 0x1002875; public const uint braille_dots_23567 = 0x1002876; public const uint braille_dots_123567 = 0x1002877; public const uint braille_dots_4567 = 0x1002878; public const uint braille_dots_14567 = 0x1002879; public const uint braille_dots_24567 = 0x100287a; public const uint braille_dots_124567 = 0x100287b; public const uint braille_dots_34567 = 0x100287c; public const uint braille_dots_134567 = 0x100287d; public const uint braille_dots_234567 = 0x100287e; public const uint braille_dots_1234567 = 0x100287f; public const uint braille_dots_8 = 0x1002880; public const uint braille_dots_18 = 0x1002881; public const uint braille_dots_28 = 0x1002882; public const uint braille_dots_128 = 0x1002883; public const uint braille_dots_38 = 0x1002884; public const uint braille_dots_138 = 0x1002885; public const uint braille_dots_238 = 0x1002886; public const uint braille_dots_1238 = 0x1002887; public const uint braille_dots_48 = 0x1002888; public const uint braille_dots_148 = 0x1002889; public const uint braille_dots_248 = 0x100288a; public const uint braille_dots_1248 = 0x100288b; public const uint braille_dots_348 = 0x100288c; public const uint braille_dots_1348 = 0x100288d; public const uint braille_dots_2348 = 0x100288e; public const uint braille_dots_12348 = 0x100288f; public const uint braille_dots_58 = 0x1002890; public const uint braille_dots_158 = 0x1002891; public const uint braille_dots_258 = 0x1002892; public const uint braille_dots_1258 = 0x1002893; public const uint braille_dots_358 = 0x1002894; public const uint braille_dots_1358 = 0x1002895; public const uint braille_dots_2358 = 0x1002896; public const uint braille_dots_12358 = 0x1002897; public const uint braille_dots_458 = 0x1002898; public const uint braille_dots_1458 = 0x1002899; public const uint braille_dots_2458 = 0x100289a; public const uint braille_dots_12458 = 0x100289b; public const uint braille_dots_3458 = 0x100289c; public const uint braille_dots_13458 = 0x100289d; public const uint braille_dots_23458 = 0x100289e; public const uint braille_dots_123458 = 0x100289f; public const uint braille_dots_68 = 0x10028a0; public const uint braille_dots_168 = 0x10028a1; public const uint braille_dots_268 = 0x10028a2; public const uint braille_dots_1268 = 0x10028a3; public const uint braille_dots_368 = 0x10028a4; public const uint braille_dots_1368 = 0x10028a5; public const uint braille_dots_2368 = 0x10028a6; public const uint braille_dots_12368 = 0x10028a7; public const uint braille_dots_468 = 0x10028a8; public const uint braille_dots_1468 = 0x10028a9; public const uint braille_dots_2468 = 0x10028aa; public const uint braille_dots_12468 = 0x10028ab; public const uint braille_dots_3468 = 0x10028ac; public const uint braille_dots_13468 = 0x10028ad; public const uint braille_dots_23468 = 0x10028ae; public const uint braille_dots_123468 = 0x10028af; public const uint braille_dots_568 = 0x10028b0; public const uint braille_dots_1568 = 0x10028b1; public const uint braille_dots_2568 = 0x10028b2; public const uint braille_dots_12568 = 0x10028b3; public const uint braille_dots_3568 = 0x10028b4; public const uint braille_dots_13568 = 0x10028b5; public const uint braille_dots_23568 = 0x10028b6; public const uint braille_dots_123568 = 0x10028b7; public const uint braille_dots_4568 = 0x10028b8; public const uint braille_dots_14568 = 0x10028b9; public const uint braille_dots_24568 = 0x10028ba; public const uint braille_dots_124568 = 0x10028bb; public const uint braille_dots_34568 = 0x10028bc; public const uint braille_dots_134568 = 0x10028bd; public const uint braille_dots_234568 = 0x10028be; public const uint braille_dots_1234568 = 0x10028bf; public const uint braille_dots_78 = 0x10028c0; public const uint braille_dots_178 = 0x10028c1; public const uint braille_dots_278 = 0x10028c2; public const uint braille_dots_1278 = 0x10028c3; public const uint braille_dots_378 = 0x10028c4; public const uint braille_dots_1378 = 0x10028c5; public const uint braille_dots_2378 = 0x10028c6; public const uint braille_dots_12378 = 0x10028c7; public const uint braille_dots_478 = 0x10028c8; public const uint braille_dots_1478 = 0x10028c9; public const uint braille_dots_2478 = 0x10028ca; public const uint braille_dots_12478 = 0x10028cb; public const uint braille_dots_3478 = 0x10028cc; public const uint braille_dots_13478 = 0x10028cd; public const uint braille_dots_23478 = 0x10028ce; public const uint braille_dots_123478 = 0x10028cf; public const uint braille_dots_578 = 0x10028d0; public const uint braille_dots_1578 = 0x10028d1; public const uint braille_dots_2578 = 0x10028d2; public const uint braille_dots_12578 = 0x10028d3; public const uint braille_dots_3578 = 0x10028d4; public const uint braille_dots_13578 = 0x10028d5; public const uint braille_dots_23578 = 0x10028d6; public const uint braille_dots_123578 = 0x10028d7; public const uint braille_dots_4578 = 0x10028d8; public const uint braille_dots_14578 = 0x10028d9; public const uint braille_dots_24578 = 0x10028da; public const uint braille_dots_124578 = 0x10028db; public const uint braille_dots_34578 = 0x10028dc; public const uint braille_dots_134578 = 0x10028dd; public const uint braille_dots_234578 = 0x10028de; public const uint braille_dots_1234578 = 0x10028df; public const uint braille_dots_678 = 0x10028e0; public const uint braille_dots_1678 = 0x10028e1; public const uint braille_dots_2678 = 0x10028e2; public const uint braille_dots_12678 = 0x10028e3; public const uint braille_dots_3678 = 0x10028e4; public const uint braille_dots_13678 = 0x10028e5; public const uint braille_dots_23678 = 0x10028e6; public const uint braille_dots_123678 = 0x10028e7; public const uint braille_dots_4678 = 0x10028e8; public const uint braille_dots_14678 = 0x10028e9; public const uint braille_dots_24678 = 0x10028ea; public const uint braille_dots_124678 = 0x10028eb; public const uint braille_dots_34678 = 0x10028ec; public const uint braille_dots_134678 = 0x10028ed; public const uint braille_dots_234678 = 0x10028ee; public const uint braille_dots_1234678 = 0x10028ef; public const uint braille_dots_5678 = 0x10028f0; public const uint braille_dots_15678 = 0x10028f1; public const uint braille_dots_25678 = 0x10028f2; public const uint braille_dots_125678 = 0x10028f3; public const uint braille_dots_35678 = 0x10028f4; public const uint braille_dots_135678 = 0x10028f5; public const uint braille_dots_235678 = 0x10028f6; public const uint braille_dots_1235678 = 0x10028f7; public const uint braille_dots_45678 = 0x10028f8; public const uint braille_dots_145678 = 0x10028f9; public const uint braille_dots_245678 = 0x10028fa; public const uint braille_dots_1245678 = 0x10028fb; public const uint braille_dots_345678 = 0x10028fc; public const uint braille_dots_1345678 = 0x10028fd; public const uint braille_dots_2345678 = 0x10028fe; public const uint braille_dots_12345678 = 0x10028ff; public const uint Sinh_ng = 0x1000d82; public const uint Sinh_h2 = 0x1000d83; public const uint Sinh_a = 0x1000d85; public const uint Sinh_aa = 0x1000d86; public const uint Sinh_ae = 0x1000d87; public const uint Sinh_aee = 0x1000d88; public const uint Sinh_i = 0x1000d89; public const uint Sinh_ii = 0x1000d8a; public const uint Sinh_u = 0x1000d8b; public const uint Sinh_uu = 0x1000d8c; public const uint Sinh_ri = 0x1000d8d; public const uint Sinh_rii = 0x1000d8e; public const uint Sinh_lu = 0x1000d8f; public const uint Sinh_luu = 0x1000d90; public const uint Sinh_e = 0x1000d91; public const uint Sinh_ee = 0x1000d92; public const uint Sinh_ai = 0x1000d93; public const uint Sinh_o = 0x1000d94; public const uint Sinh_oo = 0x1000d95; public const uint Sinh_au = 0x1000d96; public const uint Sinh_ka = 0x1000d9a; public const uint Sinh_kha = 0x1000d9b; public const uint Sinh_ga = 0x1000d9c; public const uint Sinh_gha = 0x1000d9d; public const uint Sinh_ng2 = 0x1000d9e; public const uint Sinh_nga = 0x1000d9f; public const uint Sinh_ca = 0x1000da0; public const uint Sinh_cha = 0x1000da1; public const uint Sinh_ja = 0x1000da2; public const uint Sinh_jha = 0x1000da3; public const uint Sinh_nya = 0x1000da4; public const uint Sinh_jnya = 0x1000da5; public const uint Sinh_nja = 0x1000da6; public const uint Sinh_tta = 0x1000da7; public const uint Sinh_ttha = 0x1000da8; public const uint Sinh_dda = 0x1000da9; public const uint Sinh_ddha = 0x1000daa; public const uint Sinh_nna = 0x1000dab; public const uint Sinh_ndda = 0x1000dac; public const uint Sinh_tha = 0x1000dad; public const uint Sinh_thha = 0x1000dae; public const uint Sinh_dha = 0x1000daf; public const uint Sinh_dhha = 0x1000db0; public const uint Sinh_na = 0x1000db1; public const uint Sinh_ndha = 0x1000db3; public const uint Sinh_pa = 0x1000db4; public const uint Sinh_pha = 0x1000db5; public const uint Sinh_ba = 0x1000db6; public const uint Sinh_bha = 0x1000db7; public const uint Sinh_ma = 0x1000db8; public const uint Sinh_mba = 0x1000db9; public const uint Sinh_ya = 0x1000dba; public const uint Sinh_ra = 0x1000dbb; public const uint Sinh_la = 0x1000dbd; public const uint Sinh_va = 0x1000dc0; public const uint Sinh_sha = 0x1000dc1; public const uint Sinh_ssha = 0x1000dc2; public const uint Sinh_sa = 0x1000dc3; public const uint Sinh_ha = 0x1000dc4; public const uint Sinh_lla = 0x1000dc5; public const uint Sinh_fa = 0x1000dc6; public const uint Sinh_al = 0x1000dca; public const uint Sinh_aa2 = 0x1000dcf; public const uint Sinh_ae2 = 0x1000dd0; public const uint Sinh_aee2 = 0x1000dd1; public const uint Sinh_i2 = 0x1000dd2; public const uint Sinh_ii2 = 0x1000dd3; public const uint Sinh_u2 = 0x1000dd4; public const uint Sinh_uu2 = 0x1000dd6; public const uint Sinh_ru2 = 0x1000dd8; public const uint Sinh_e2 = 0x1000dd9; public const uint Sinh_ee2 = 0x1000dda; public const uint Sinh_ai2 = 0x1000ddb; public const uint Sinh_o2 = 0x1000ddc; public const uint Sinh_oo2 = 0x1000ddd; public const uint Sinh_au2 = 0x1000dde; public const uint Sinh_lu2 = 0x1000ddf; public const uint Sinh_ruu2 = 0x1000df2; public const uint Sinh_luu2 = 0x1000df3; public const uint Sinh_kunddaliya = 0x1000df4; } libkkc-0.3.5/libkkc/keysyms.vapi000066400000000000000000000005541244473050600166130ustar00rootroot00000000000000[CCode (cprefix = "", lower_case_cprefix = "", cheader_filename = "keysyms.h")] namespace Keysyms { public const string keysym_names; [CCode (cname = "struct name_keysym")] public struct KeysymEntry { uint32 keysym; uint32 offset; } public const KeysymEntry[] name_to_keysym; public const KeysymEntry[] keysym_to_name; } libkkc-0.3.5/libkkc/kkc-1.0.deps000066400000000000000000000000471244473050600161440ustar00rootroot00000000000000glib-2.0 gio-2.0 json-glib-1.0 gee-0.8 libkkc-0.3.5/libkkc/kkc-1.0.pc.in000066400000000000000000000022111244473050600162130ustar00rootroot00000000000000# Copyright (C) 2012-2014 Daiki Ueno # Copyright (C) 2012-2014 Red Hat, Inc. # This library is free software; you can redistribute it and/or # modify it under the terms of the GNU Lesser General Public License # as published by the Free Software Foundation; either version 2 of # the License, or (at your option) any later version. # This library is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # You should have received a copy of the GNU Lesser General Public # License along with this library; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 USA prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ includedir=@includedir@ datarootdir=@datarootdir@ pkgdatadir=@datadir@/libkkc Name: libkkc Description: Japanese Kana Kanji conversion library Version: @VERSION@ Requires: gobject-2.0 gio-2.0 json-glib-1.0 gee-0.8 Libs: -L${libdir} -lkkc Cflags: -I${includedir}/kkc-@KKC_API_VERSION@ libkkc-0.3.5/libkkc/kkc.vala000066400000000000000000000043341244473050600156430ustar00rootroot00000000000000/* * Copyright (C) 2012-2014 Daiki Ueno * Copyright (C) 2012-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { /** * Initialize libkkc. * * Must be called before using any functions in libkkc. */ public static void init () { // needed to use static methods defined in some classes typeof (DictionaryUtils).class_ref (); typeof (Keymap).class_ref (); typeof (KeyEventUtils).class_ref (); typeof (LanguageModelMetadata).class_ref (); typeof (RuleMetadata).class_ref (); typeof (RomKanaUtils).class_ref (); Intl.bindtextdomain (Config.GETTEXT_PACKAGE, Config.LOCALEDIR); } /** * Flag to indicate whether to use mmap for indices. * * If `false`, all the contents of indices will be loaded while * initialization. */ public static bool use_mapped_index_file = false; /** * Type to specify input modes. */ public enum InputMode { /** * Hiragana like "あいう...". */ HIRAGANA = KanaMode.HIRAGANA, /** * Katakana like "アイウ...". */ KATAKANA = KanaMode.KATAKANA, /** * Half-width katakana like "アイウ...". */ HANKAKU_KATAKANA = KanaMode.HANKAKU_KATAKANA, /** * Half-width latin like "abc...". */ LATIN = KanaMode.LATIN, /** * Full-width latin like "abc...". */ WIDE_LATIN = KanaMode.WIDE_LATIN, /** * Direct input. */ DIRECT } } libkkc-0.3.5/libkkc/ks_tables.h000066400000000000000000007716341244473050600163640ustar00rootroot00000000000000 /** * This file comes from libxkbcommon and was generated by makekeys.py * You can always fetch the latest version from: * https://raw.github.com/xkbcommon/libxkbcommon/master/src/ks_tables.h */ #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Woverlength-strings" static const char *keysym_names = "0\0" "1\0" "2\0" "3\0" "3270_AltCursor\0" "3270_Attn\0" "3270_BackTab\0" "3270_ChangeScreen\0" "3270_Copy\0" "3270_CursorBlink\0" "3270_CursorSelect\0" "3270_DeleteWord\0" "3270_Duplicate\0" "3270_Enter\0" "3270_EraseEOF\0" "3270_EraseInput\0" "3270_ExSelect\0" "3270_FieldMark\0" "3270_Ident\0" "3270_Jump\0" "3270_KeyClick\0" "3270_Left2\0" "3270_PA1\0" "3270_PA2\0" "3270_PA3\0" "3270_Play\0" "3270_PrintScreen\0" "3270_Quit\0" "3270_Record\0" "3270_Reset\0" "3270_Right2\0" "3270_Rule\0" "3270_Setup\0" "3270_Test\0" "4\0" "5\0" "6\0" "7\0" "8\0" "9\0" "A\0" "a\0" "Aacute\0" "aacute\0" "Abelowdot\0" "abelowdot\0" "abovedot\0" "Abreve\0" "abreve\0" "Abreveacute\0" "abreveacute\0" "Abrevebelowdot\0" "abrevebelowdot\0" "Abrevegrave\0" "abrevegrave\0" "Abrevehook\0" "abrevehook\0" "Abrevetilde\0" "abrevetilde\0" "AccessX_Enable\0" "AccessX_Feedback_Enable\0" "Acircumflex\0" "acircumflex\0" "Acircumflexacute\0" "acircumflexacute\0" "Acircumflexbelowdot\0" "acircumflexbelowdot\0" "Acircumflexgrave\0" "acircumflexgrave\0" "Acircumflexhook\0" "acircumflexhook\0" "Acircumflextilde\0" "acircumflextilde\0" "acute\0" "Adiaeresis\0" "adiaeresis\0" "AE\0" "ae\0" "Agrave\0" "agrave\0" "Ahook\0" "ahook\0" "Alt_L\0" "Alt_R\0" "Amacron\0" "amacron\0" "ampersand\0" "Aogonek\0" "aogonek\0" "apostrophe\0" "approxeq\0" "approximate\0" "Arabic_0\0" "Arabic_1\0" "Arabic_2\0" "Arabic_3\0" "Arabic_4\0" "Arabic_5\0" "Arabic_6\0" "Arabic_7\0" "Arabic_8\0" "Arabic_9\0" "Arabic_ain\0" "Arabic_alef\0" "Arabic_alefmaksura\0" "Arabic_beh\0" "Arabic_comma\0" "Arabic_dad\0" "Arabic_dal\0" "Arabic_damma\0" "Arabic_dammatan\0" "Arabic_ddal\0" "Arabic_farsi_yeh\0" "Arabic_fatha\0" "Arabic_fathatan\0" "Arabic_feh\0" "Arabic_fullstop\0" "Arabic_gaf\0" "Arabic_ghain\0" "Arabic_ha\0" "Arabic_hah\0" "Arabic_hamza\0" "Arabic_hamza_above\0" "Arabic_hamza_below\0" "Arabic_hamzaonalef\0" "Arabic_hamzaonwaw\0" "Arabic_hamzaonyeh\0" "Arabic_hamzaunderalef\0" "Arabic_heh\0" "Arabic_heh_doachashmee\0" "Arabic_heh_goal\0" "Arabic_jeem\0" "Arabic_jeh\0" "Arabic_kaf\0" "Arabic_kasra\0" "Arabic_kasratan\0" "Arabic_keheh\0" "Arabic_khah\0" "Arabic_lam\0" "Arabic_madda_above\0" "Arabic_maddaonalef\0" "Arabic_meem\0" "Arabic_noon\0" "Arabic_noon_ghunna\0" "Arabic_peh\0" "Arabic_percent\0" "Arabic_qaf\0" "Arabic_question_mark\0" "Arabic_ra\0" "Arabic_rreh\0" "Arabic_sad\0" "Arabic_seen\0" "Arabic_semicolon\0" "Arabic_shadda\0" "Arabic_sheen\0" "Arabic_sukun\0" "Arabic_superscript_alef\0" "Arabic_switch\0" "Arabic_tah\0" "Arabic_tatweel\0" "Arabic_tcheh\0" "Arabic_teh\0" "Arabic_tehmarbuta\0" "Arabic_thal\0" "Arabic_theh\0" "Arabic_tteh\0" "Arabic_veh\0" "Arabic_waw\0" "Arabic_yeh\0" "Arabic_yeh_baree\0" "Arabic_zah\0" "Arabic_zain\0" "Aring\0" "aring\0" "Armenian_accent\0" "Armenian_amanak\0" "Armenian_apostrophe\0" "Armenian_AT\0" "Armenian_at\0" "Armenian_AYB\0" "Armenian_ayb\0" "Armenian_BEN\0" "Armenian_ben\0" "Armenian_but\0" "Armenian_CHA\0" "Armenian_cha\0" "Armenian_DA\0" "Armenian_da\0" "Armenian_DZA\0" "Armenian_dza\0" "Armenian_E\0" "Armenian_e\0" "Armenian_exclam\0" "Armenian_FE\0" "Armenian_fe\0" "Armenian_full_stop\0" "Armenian_GHAT\0" "Armenian_ghat\0" "Armenian_GIM\0" "Armenian_gim\0" "Armenian_HI\0" "Armenian_hi\0" "Armenian_HO\0" "Armenian_ho\0" "Armenian_hyphen\0" "Armenian_INI\0" "Armenian_ini\0" "Armenian_JE\0" "Armenian_je\0" "Armenian_KE\0" "Armenian_ke\0" "Armenian_KEN\0" "Armenian_ken\0" "Armenian_KHE\0" "Armenian_khe\0" "Armenian_ligature_ew\0" "Armenian_LYUN\0" "Armenian_lyun\0" "Armenian_MEN\0" "Armenian_men\0" "Armenian_NU\0" "Armenian_nu\0" "Armenian_O\0" "Armenian_o\0" "Armenian_paruyk\0" "Armenian_PE\0" "Armenian_pe\0" "Armenian_PYUR\0" "Armenian_pyur\0" "Armenian_question\0" "Armenian_RA\0" "Armenian_ra\0" "Armenian_RE\0" "Armenian_re\0" "Armenian_SE\0" "Armenian_se\0" "Armenian_separation_mark\0" "Armenian_SHA\0" "Armenian_sha\0" "Armenian_shesht\0" "Armenian_TCHE\0" "Armenian_tche\0" "Armenian_TO\0" "Armenian_to\0" "Armenian_TSA\0" "Armenian_tsa\0" "Armenian_TSO\0" "Armenian_tso\0" "Armenian_TYUN\0" "Armenian_tyun\0" "Armenian_verjaket\0" "Armenian_VEV\0" "Armenian_vev\0" "Armenian_VO\0" "Armenian_vo\0" "Armenian_VYUN\0" "Armenian_vyun\0" "Armenian_YECH\0" "Armenian_yech\0" "Armenian_yentamna\0" "Armenian_ZA\0" "Armenian_za\0" "Armenian_ZHE\0" "Armenian_zhe\0" "asciicircum\0" "asciitilde\0" "asterisk\0" "at\0" "Atilde\0" "atilde\0" "AudibleBell_Enable\0" "B\0" "b\0" "Babovedot\0" "babovedot\0" "backslash\0" "BackSpace\0" "BackTab\0" "ballotcross\0" "bar\0" "because\0" "Begin\0" "blank\0" "block\0" "botintegral\0" "botleftparens\0" "botleftsqbracket\0" "botleftsummation\0" "botrightparens\0" "botrightsqbracket\0" "botrightsummation\0" "bott\0" "botvertsummationconnector\0" "BounceKeys_Enable\0" "braceleft\0" "braceright\0" "bracketleft\0" "bracketright\0" "braille_blank\0" "braille_dot_1\0" "braille_dot_10\0" "braille_dot_2\0" "braille_dot_3\0" "braille_dot_4\0" "braille_dot_5\0" "braille_dot_6\0" "braille_dot_7\0" "braille_dot_8\0" "braille_dot_9\0" "braille_dots_1\0" "braille_dots_12\0" "braille_dots_123\0" "braille_dots_1234\0" "braille_dots_12345\0" "braille_dots_123456\0" "braille_dots_1234567\0" "braille_dots_12345678\0" "braille_dots_1234568\0" "braille_dots_123457\0" "braille_dots_1234578\0" "braille_dots_123458\0" "braille_dots_12346\0" "braille_dots_123467\0" "braille_dots_1234678\0" "braille_dots_123468\0" "braille_dots_12347\0" "braille_dots_123478\0" "braille_dots_12348\0" "braille_dots_1235\0" "braille_dots_12356\0" "braille_dots_123567\0" "braille_dots_1235678\0" "braille_dots_123568\0" "braille_dots_12357\0" "braille_dots_123578\0" "braille_dots_12358\0" "braille_dots_1236\0" "braille_dots_12367\0" "braille_dots_123678\0" "braille_dots_12368\0" "braille_dots_1237\0" "braille_dots_12378\0" "braille_dots_1238\0" "braille_dots_124\0" "braille_dots_1245\0" "braille_dots_12456\0" "braille_dots_124567\0" "braille_dots_1245678\0" "braille_dots_124568\0" "braille_dots_12457\0" "braille_dots_124578\0" "braille_dots_12458\0" "braille_dots_1246\0" "braille_dots_12467\0" "braille_dots_124678\0" "braille_dots_12468\0" "braille_dots_1247\0" "braille_dots_12478\0" "braille_dots_1248\0" "braille_dots_125\0" "braille_dots_1256\0" "braille_dots_12567\0" "braille_dots_125678\0" "braille_dots_12568\0" "braille_dots_1257\0" "braille_dots_12578\0" "braille_dots_1258\0" "braille_dots_126\0" "braille_dots_1267\0" "braille_dots_12678\0" "braille_dots_1268\0" "braille_dots_127\0" "braille_dots_1278\0" "braille_dots_128\0" "braille_dots_13\0" "braille_dots_134\0" "braille_dots_1345\0" "braille_dots_13456\0" "braille_dots_134567\0" "braille_dots_1345678\0" "braille_dots_134568\0" "braille_dots_13457\0" "braille_dots_134578\0" "braille_dots_13458\0" "braille_dots_1346\0" "braille_dots_13467\0" "braille_dots_134678\0" "braille_dots_13468\0" "braille_dots_1347\0" "braille_dots_13478\0" "braille_dots_1348\0" "braille_dots_135\0" "braille_dots_1356\0" "braille_dots_13567\0" "braille_dots_135678\0" "braille_dots_13568\0" "braille_dots_1357\0" "braille_dots_13578\0" "braille_dots_1358\0" "braille_dots_136\0" "braille_dots_1367\0" "braille_dots_13678\0" "braille_dots_1368\0" "braille_dots_137\0" "braille_dots_1378\0" "braille_dots_138\0" "braille_dots_14\0" "braille_dots_145\0" "braille_dots_1456\0" "braille_dots_14567\0" "braille_dots_145678\0" "braille_dots_14568\0" "braille_dots_1457\0" "braille_dots_14578\0" "braille_dots_1458\0" "braille_dots_146\0" "braille_dots_1467\0" "braille_dots_14678\0" "braille_dots_1468\0" "braille_dots_147\0" "braille_dots_1478\0" "braille_dots_148\0" "braille_dots_15\0" "braille_dots_156\0" "braille_dots_1567\0" "braille_dots_15678\0" "braille_dots_1568\0" "braille_dots_157\0" "braille_dots_1578\0" "braille_dots_158\0" "braille_dots_16\0" "braille_dots_167\0" "braille_dots_1678\0" "braille_dots_168\0" "braille_dots_17\0" "braille_dots_178\0" "braille_dots_18\0" "braille_dots_2\0" "braille_dots_23\0" "braille_dots_234\0" "braille_dots_2345\0" "braille_dots_23456\0" "braille_dots_234567\0" "braille_dots_2345678\0" "braille_dots_234568\0" "braille_dots_23457\0" "braille_dots_234578\0" "braille_dots_23458\0" "braille_dots_2346\0" "braille_dots_23467\0" "braille_dots_234678\0" "braille_dots_23468\0" "braille_dots_2347\0" "braille_dots_23478\0" "braille_dots_2348\0" "braille_dots_235\0" "braille_dots_2356\0" "braille_dots_23567\0" "braille_dots_235678\0" "braille_dots_23568\0" "braille_dots_2357\0" "braille_dots_23578\0" "braille_dots_2358\0" "braille_dots_236\0" "braille_dots_2367\0" "braille_dots_23678\0" "braille_dots_2368\0" "braille_dots_237\0" "braille_dots_2378\0" "braille_dots_238\0" "braille_dots_24\0" "braille_dots_245\0" "braille_dots_2456\0" "braille_dots_24567\0" "braille_dots_245678\0" "braille_dots_24568\0" "braille_dots_2457\0" "braille_dots_24578\0" "braille_dots_2458\0" "braille_dots_246\0" "braille_dots_2467\0" "braille_dots_24678\0" "braille_dots_2468\0" "braille_dots_247\0" "braille_dots_2478\0" "braille_dots_248\0" "braille_dots_25\0" "braille_dots_256\0" "braille_dots_2567\0" "braille_dots_25678\0" "braille_dots_2568\0" "braille_dots_257\0" "braille_dots_2578\0" "braille_dots_258\0" "braille_dots_26\0" "braille_dots_267\0" "braille_dots_2678\0" "braille_dots_268\0" "braille_dots_27\0" "braille_dots_278\0" "braille_dots_28\0" "braille_dots_3\0" "braille_dots_34\0" "braille_dots_345\0" "braille_dots_3456\0" "braille_dots_34567\0" "braille_dots_345678\0" "braille_dots_34568\0" "braille_dots_3457\0" "braille_dots_34578\0" "braille_dots_3458\0" "braille_dots_346\0" "braille_dots_3467\0" "braille_dots_34678\0" "braille_dots_3468\0" "braille_dots_347\0" "braille_dots_3478\0" "braille_dots_348\0" "braille_dots_35\0" "braille_dots_356\0" "braille_dots_3567\0" "braille_dots_35678\0" "braille_dots_3568\0" "braille_dots_357\0" "braille_dots_3578\0" "braille_dots_358\0" "braille_dots_36\0" "braille_dots_367\0" "braille_dots_3678\0" "braille_dots_368\0" "braille_dots_37\0" "braille_dots_378\0" "braille_dots_38\0" "braille_dots_4\0" "braille_dots_45\0" "braille_dots_456\0" "braille_dots_4567\0" "braille_dots_45678\0" "braille_dots_4568\0" "braille_dots_457\0" "braille_dots_4578\0" "braille_dots_458\0" "braille_dots_46\0" "braille_dots_467\0" "braille_dots_4678\0" "braille_dots_468\0" "braille_dots_47\0" "braille_dots_478\0" "braille_dots_48\0" "braille_dots_5\0" "braille_dots_56\0" "braille_dots_567\0" "braille_dots_5678\0" "braille_dots_568\0" "braille_dots_57\0" "braille_dots_578\0" "braille_dots_58\0" "braille_dots_6\0" "braille_dots_67\0" "braille_dots_678\0" "braille_dots_68\0" "braille_dots_7\0" "braille_dots_78\0" "braille_dots_8\0" "Break\0" "breve\0" "brokenbar\0" "Byelorussian_shortu\0" "Byelorussian_SHORTU\0" "C\0" "c\0" "c_h\0" "C_h\0" "C_H\0" "Cabovedot\0" "cabovedot\0" "Cacute\0" "cacute\0" "Cancel\0" "Caps_Lock\0" "careof\0" "caret\0" "caron\0" "Ccaron\0" "ccaron\0" "Ccedilla\0" "ccedilla\0" "Ccircumflex\0" "ccircumflex\0" "cedilla\0" "cent\0" "ch\0" "Ch\0" "CH\0" "checkerboard\0" "checkmark\0" "circle\0" "Clear\0" "ClearLine\0" "club\0" "Codeinput\0" "colon\0" "ColonSign\0" "comma\0" "containsas\0" "Control_L\0" "Control_R\0" "copyright\0" "cr\0" "crossinglines\0" "CruzeiroSign\0" "cuberoot\0" "currency\0" "cursor\0" "Cyrillic_a\0" "Cyrillic_A\0" "Cyrillic_be\0" "Cyrillic_BE\0" "Cyrillic_che\0" "Cyrillic_CHE\0" "Cyrillic_CHE_descender\0" "Cyrillic_che_descender\0" "Cyrillic_CHE_vertstroke\0" "Cyrillic_che_vertstroke\0" "Cyrillic_de\0" "Cyrillic_DE\0" "Cyrillic_dzhe\0" "Cyrillic_DZHE\0" "Cyrillic_e\0" "Cyrillic_E\0" "Cyrillic_ef\0" "Cyrillic_EF\0" "Cyrillic_el\0" "Cyrillic_EL\0" "Cyrillic_em\0" "Cyrillic_EM\0" "Cyrillic_en\0" "Cyrillic_EN\0" "Cyrillic_EN_descender\0" "Cyrillic_en_descender\0" "Cyrillic_er\0" "Cyrillic_ER\0" "Cyrillic_es\0" "Cyrillic_ES\0" "Cyrillic_ghe\0" "Cyrillic_GHE\0" "Cyrillic_GHE_bar\0" "Cyrillic_ghe_bar\0" "Cyrillic_ha\0" "Cyrillic_HA\0" "Cyrillic_HA_descender\0" "Cyrillic_ha_descender\0" "Cyrillic_hardsign\0" "Cyrillic_HARDSIGN\0" "Cyrillic_i\0" "Cyrillic_I\0" "Cyrillic_I_macron\0" "Cyrillic_i_macron\0" "Cyrillic_ie\0" "Cyrillic_IE\0" "Cyrillic_io\0" "Cyrillic_IO\0" "Cyrillic_je\0" "Cyrillic_JE\0" "Cyrillic_ka\0" "Cyrillic_KA\0" "Cyrillic_KA_descender\0" "Cyrillic_ka_descender\0" "Cyrillic_KA_vertstroke\0" "Cyrillic_ka_vertstroke\0" "Cyrillic_lje\0" "Cyrillic_LJE\0" "Cyrillic_nje\0" "Cyrillic_NJE\0" "Cyrillic_o\0" "Cyrillic_O\0" "Cyrillic_O_bar\0" "Cyrillic_o_bar\0" "Cyrillic_pe\0" "Cyrillic_PE\0" "Cyrillic_SCHWA\0" "Cyrillic_schwa\0" "Cyrillic_sha\0" "Cyrillic_SHA\0" "Cyrillic_shcha\0" "Cyrillic_SHCHA\0" "Cyrillic_SHHA\0" "Cyrillic_shha\0" "Cyrillic_shorti\0" "Cyrillic_SHORTI\0" "Cyrillic_softsign\0" "Cyrillic_SOFTSIGN\0" "Cyrillic_te\0" "Cyrillic_TE\0" "Cyrillic_tse\0" "Cyrillic_TSE\0" "Cyrillic_u\0" "Cyrillic_U\0" "Cyrillic_U_macron\0" "Cyrillic_u_macron\0" "Cyrillic_U_straight\0" "Cyrillic_u_straight\0" "Cyrillic_U_straight_bar\0" "Cyrillic_u_straight_bar\0" "Cyrillic_ve\0" "Cyrillic_VE\0" "Cyrillic_ya\0" "Cyrillic_YA\0" "Cyrillic_yeru\0" "Cyrillic_YERU\0" "Cyrillic_yu\0" "Cyrillic_YU\0" "Cyrillic_ze\0" "Cyrillic_ZE\0" "Cyrillic_zhe\0" "Cyrillic_ZHE\0" "Cyrillic_ZHE_descender\0" "Cyrillic_zhe_descender\0" "D\0" "d\0" "Dabovedot\0" "dabovedot\0" "Dacute_accent\0" "dagger\0" "Dcaron\0" "dcaron\0" "Dcedilla_accent\0" "Dcircumflex_accent\0" "Ddiaeresis\0" "dead_a\0" "dead_A\0" "dead_abovecomma\0" "dead_abovedot\0" "dead_abovereversedcomma\0" "dead_abovering\0" "dead_aboveverticalline\0" "dead_acute\0" "dead_belowbreve\0" "dead_belowcircumflex\0" "dead_belowcomma\0" "dead_belowdiaeresis\0" "dead_belowdot\0" "dead_belowmacron\0" "dead_belowring\0" "dead_belowtilde\0" "dead_belowverticalline\0" "dead_breve\0" "dead_capital_schwa\0" "dead_caron\0" "dead_cedilla\0" "dead_circumflex\0" "dead_currency\0" "dead_dasia\0" "dead_diaeresis\0" "dead_doubleacute\0" "dead_doublegrave\0" "dead_e\0" "dead_E\0" "dead_grave\0" "dead_greek\0" "dead_hook\0" "dead_horn\0" "dead_i\0" "dead_I\0" "dead_invertedbreve\0" "dead_iota\0" "dead_longsolidusoverlay\0" "dead_lowline\0" "dead_macron\0" "dead_o\0" "dead_O\0" "dead_ogonek\0" "dead_perispomeni\0" "dead_psili\0" "dead_semivoiced_sound\0" "dead_small_schwa\0" "dead_stroke\0" "dead_tilde\0" "dead_u\0" "dead_U\0" "dead_voiced_sound\0" "decimalpoint\0" "degree\0" "Delete\0" "DeleteChar\0" "DeleteLine\0" "Dgrave_accent\0" "diaeresis\0" "diamond\0" "digitspace\0" "dintegral\0" "division\0" "dollar\0" "DongSign\0" "doubbaselinedot\0" "doubleacute\0" "doubledagger\0" "doublelowquotemark\0" "Down\0" "downarrow\0" "downcaret\0" "downshoe\0" "downstile\0" "downtack\0" "DRemove\0" "Dring_accent\0" "Dstroke\0" "dstroke\0" "Dtilde\0" "E\0" "e\0" "Eabovedot\0" "eabovedot\0" "Eacute\0" "eacute\0" "Ebelowdot\0" "ebelowdot\0" "Ecaron\0" "ecaron\0" "Ecircumflex\0" "ecircumflex\0" "Ecircumflexacute\0" "ecircumflexacute\0" "Ecircumflexbelowdot\0" "ecircumflexbelowdot\0" "Ecircumflexgrave\0" "ecircumflexgrave\0" "Ecircumflexhook\0" "ecircumflexhook\0" "Ecircumflextilde\0" "ecircumflextilde\0" "EcuSign\0" "Ediaeresis\0" "ediaeresis\0" "Egrave\0" "egrave\0" "Ehook\0" "ehook\0" "eightsubscript\0" "eightsuperior\0" "Eisu_Shift\0" "Eisu_toggle\0" "elementof\0" "ellipsis\0" "em3space\0" "em4space\0" "Emacron\0" "emacron\0" "emdash\0" "emfilledcircle\0" "emfilledrect\0" "emopencircle\0" "emopenrectangle\0" "emptyset\0" "emspace\0" "End\0" "endash\0" "enfilledcircbullet\0" "enfilledsqbullet\0" "ENG\0" "eng\0" "enopencircbullet\0" "enopensquarebullet\0" "enspace\0" "Eogonek\0" "eogonek\0" "equal\0" "Escape\0" "ETH\0" "Eth\0" "eth\0" "Etilde\0" "etilde\0" "EuroSign\0" "exclam\0" "exclamdown\0" "Execute\0" "Ext16bit_L\0" "Ext16bit_R\0" "EZH\0" "ezh\0" "F\0" "f\0" "F1\0" "F10\0" "F11\0" "F12\0" "F13\0" "F14\0" "F15\0" "F16\0" "F17\0" "F18\0" "F19\0" "F2\0" "F20\0" "F21\0" "F22\0" "F23\0" "F24\0" "F25\0" "F26\0" "F27\0" "F28\0" "F29\0" "F3\0" "F30\0" "F31\0" "F32\0" "F33\0" "F34\0" "F35\0" "F4\0" "F5\0" "F6\0" "F7\0" "F8\0" "F9\0" "Fabovedot\0" "fabovedot\0" "Farsi_0\0" "Farsi_1\0" "Farsi_2\0" "Farsi_3\0" "Farsi_4\0" "Farsi_5\0" "Farsi_6\0" "Farsi_7\0" "Farsi_8\0" "Farsi_9\0" "Farsi_yeh\0" "femalesymbol\0" "ff\0" "FFrancSign\0" "figdash\0" "filledlefttribullet\0" "filledrectbullet\0" "filledrighttribullet\0" "filledtribulletdown\0" "filledtribulletup\0" "Find\0" "First_Virtual_Screen\0" "fiveeighths\0" "fivesixths\0" "fivesubscript\0" "fivesuperior\0" "fourfifths\0" "foursubscript\0" "foursuperior\0" "fourthroot\0" "function\0" "G\0" "g\0" "Gabovedot\0" "gabovedot\0" "Gbreve\0" "gbreve\0" "Gcaron\0" "gcaron\0" "Gcedilla\0" "gcedilla\0" "Gcircumflex\0" "gcircumflex\0" "Georgian_an\0" "Georgian_ban\0" "Georgian_can\0" "Georgian_char\0" "Georgian_chin\0" "Georgian_cil\0" "Georgian_don\0" "Georgian_en\0" "Georgian_fi\0" "Georgian_gan\0" "Georgian_ghan\0" "Georgian_hae\0" "Georgian_har\0" "Georgian_he\0" "Georgian_hie\0" "Georgian_hoe\0" "Georgian_in\0" "Georgian_jhan\0" "Georgian_jil\0" "Georgian_kan\0" "Georgian_khar\0" "Georgian_las\0" "Georgian_man\0" "Georgian_nar\0" "Georgian_on\0" "Georgian_par\0" "Georgian_phar\0" "Georgian_qar\0" "Georgian_rae\0" "Georgian_san\0" "Georgian_shin\0" "Georgian_tan\0" "Georgian_tar\0" "Georgian_un\0" "Georgian_vin\0" "Georgian_we\0" "Georgian_xan\0" "Georgian_zen\0" "Georgian_zhar\0" "grave\0" "greater\0" "greaterthanequal\0" "Greek_accentdieresis\0" "Greek_ALPHA\0" "Greek_alpha\0" "Greek_ALPHAaccent\0" "Greek_alphaaccent\0" "Greek_BETA\0" "Greek_beta\0" "Greek_CHI\0" "Greek_chi\0" "Greek_DELTA\0" "Greek_delta\0" "Greek_EPSILON\0" "Greek_epsilon\0" "Greek_EPSILONaccent\0" "Greek_epsilonaccent\0" "Greek_ETA\0" "Greek_eta\0" "Greek_ETAaccent\0" "Greek_etaaccent\0" "Greek_finalsmallsigma\0" "Greek_GAMMA\0" "Greek_gamma\0" "Greek_horizbar\0" "Greek_IOTA\0" "Greek_iota\0" "Greek_IOTAaccent\0" "Greek_iotaaccent\0" "Greek_iotaaccentdieresis\0" "Greek_IOTAdiaeresis\0" "Greek_IOTAdieresis\0" "Greek_iotadieresis\0" "Greek_KAPPA\0" "Greek_kappa\0" "Greek_LAMBDA\0" "Greek_lambda\0" "Greek_LAMDA\0" "Greek_lamda\0" "Greek_MU\0" "Greek_mu\0" "Greek_NU\0" "Greek_nu\0" "Greek_OMEGA\0" "Greek_omega\0" "Greek_OMEGAaccent\0" "Greek_omegaaccent\0" "Greek_OMICRON\0" "Greek_omicron\0" "Greek_OMICRONaccent\0" "Greek_omicronaccent\0" "Greek_PHI\0" "Greek_phi\0" "Greek_PI\0" "Greek_pi\0" "Greek_PSI\0" "Greek_psi\0" "Greek_RHO\0" "Greek_rho\0" "Greek_SIGMA\0" "Greek_sigma\0" "Greek_switch\0" "Greek_TAU\0" "Greek_tau\0" "Greek_THETA\0" "Greek_theta\0" "Greek_UPSILON\0" "Greek_upsilon\0" "Greek_UPSILONaccent\0" "Greek_upsilonaccent\0" "Greek_upsilonaccentdieresis\0" "Greek_UPSILONdieresis\0" "Greek_upsilondieresis\0" "Greek_XI\0" "Greek_xi\0" "Greek_ZETA\0" "Greek_zeta\0" "guilder\0" "guillemotleft\0" "guillemotright\0" "H\0" "h\0" "hairspace\0" "Hangul\0" "Hangul_A\0" "Hangul_AE\0" "Hangul_AraeA\0" "Hangul_AraeAE\0" "Hangul_Banja\0" "Hangul_Cieuc\0" "Hangul_Codeinput\0" "Hangul_Dikeud\0" "Hangul_E\0" "Hangul_End\0" "Hangul_EO\0" "Hangul_EU\0" "Hangul_Hanja\0" "Hangul_Hieuh\0" "Hangul_I\0" "Hangul_Ieung\0" "Hangul_J_Cieuc\0" "Hangul_J_Dikeud\0" "Hangul_J_Hieuh\0" "Hangul_J_Ieung\0" "Hangul_J_Jieuj\0" "Hangul_J_Khieuq\0" "Hangul_J_Kiyeog\0" "Hangul_J_KiyeogSios\0" "Hangul_J_KkogjiDalrinIeung\0" "Hangul_J_Mieum\0" "Hangul_J_Nieun\0" "Hangul_J_NieunHieuh\0" "Hangul_J_NieunJieuj\0" "Hangul_J_PanSios\0" "Hangul_J_Phieuf\0" "Hangul_J_Pieub\0" "Hangul_J_PieubSios\0" "Hangul_J_Rieul\0" "Hangul_J_RieulHieuh\0" "Hangul_J_RieulKiyeog\0" "Hangul_J_RieulMieum\0" "Hangul_J_RieulPhieuf\0" "Hangul_J_RieulPieub\0" "Hangul_J_RieulSios\0" "Hangul_J_RieulTieut\0" "Hangul_J_Sios\0" "Hangul_J_SsangKiyeog\0" "Hangul_J_SsangSios\0" "Hangul_J_Tieut\0" "Hangul_J_YeorinHieuh\0" "Hangul_Jamo\0" "Hangul_Jeonja\0" "Hangul_Jieuj\0" "Hangul_Khieuq\0" "Hangul_Kiyeog\0" "Hangul_KiyeogSios\0" "Hangul_KkogjiDalrinIeung\0" "Hangul_Mieum\0" "Hangul_MultipleCandidate\0" "Hangul_Nieun\0" "Hangul_NieunHieuh\0" "Hangul_NieunJieuj\0" "Hangul_O\0" "Hangul_OE\0" "Hangul_PanSios\0" "Hangul_Phieuf\0" "Hangul_Pieub\0" "Hangul_PieubSios\0" "Hangul_PostHanja\0" "Hangul_PreHanja\0" "Hangul_PreviousCandidate\0" "Hangul_Rieul\0" "Hangul_RieulHieuh\0" "Hangul_RieulKiyeog\0" "Hangul_RieulMieum\0" "Hangul_RieulPhieuf\0" "Hangul_RieulPieub\0" "Hangul_RieulSios\0" "Hangul_RieulTieut\0" "Hangul_RieulYeorinHieuh\0" "Hangul_Romaja\0" "Hangul_SingleCandidate\0" "Hangul_Sios\0" "Hangul_Special\0" "Hangul_SsangDikeud\0" "Hangul_SsangJieuj\0" "Hangul_SsangKiyeog\0" "Hangul_SsangPieub\0" "Hangul_SsangSios\0" "Hangul_Start\0" "Hangul_SunkyeongeumMieum\0" "Hangul_SunkyeongeumPhieuf\0" "Hangul_SunkyeongeumPieub\0" "Hangul_switch\0" "Hangul_Tieut\0" "Hangul_U\0" "Hangul_WA\0" "Hangul_WAE\0" "Hangul_WE\0" "Hangul_WEO\0" "Hangul_WI\0" "Hangul_YA\0" "Hangul_YAE\0" "Hangul_YE\0" "Hangul_YEO\0" "Hangul_YeorinHieuh\0" "Hangul_YI\0" "Hangul_YO\0" "Hangul_YU\0" "Hankaku\0" "Hcircumflex\0" "hcircumflex\0" "heart\0" "hebrew_aleph\0" "hebrew_ayin\0" "hebrew_bet\0" "hebrew_beth\0" "hebrew_chet\0" "hebrew_dalet\0" "hebrew_daleth\0" "hebrew_doublelowline\0" "hebrew_finalkaph\0" "hebrew_finalmem\0" "hebrew_finalnun\0" "hebrew_finalpe\0" "hebrew_finalzade\0" "hebrew_finalzadi\0" "hebrew_gimel\0" "hebrew_gimmel\0" "hebrew_he\0" "hebrew_het\0" "hebrew_kaph\0" "hebrew_kuf\0" "hebrew_lamed\0" "hebrew_mem\0" "hebrew_nun\0" "hebrew_pe\0" "hebrew_qoph\0" "hebrew_resh\0" "hebrew_samech\0" "hebrew_samekh\0" "hebrew_shin\0" "Hebrew_switch\0" "hebrew_taf\0" "hebrew_taw\0" "hebrew_tet\0" "hebrew_teth\0" "hebrew_waw\0" "hebrew_yod\0" "hebrew_zade\0" "hebrew_zadi\0" "hebrew_zain\0" "hebrew_zayin\0" "Help\0" "Henkan\0" "Henkan_Mode\0" "hexagram\0" "Hiragana\0" "Hiragana_Katakana\0" "Home\0" "horizconnector\0" "horizlinescan1\0" "horizlinescan3\0" "horizlinescan5\0" "horizlinescan7\0" "horizlinescan9\0" "hpBackTab\0" "hpblock\0" "hpClearLine\0" "hpDeleteChar\0" "hpDeleteLine\0" "hpguilder\0" "hpInsertChar\0" "hpInsertLine\0" "hpIO\0" "hpKP_BackTab\0" "hplira\0" "hplongminus\0" "hpModelock1\0" "hpModelock2\0" "hpmute_acute\0" "hpmute_asciicircum\0" "hpmute_asciitilde\0" "hpmute_diaeresis\0" "hpmute_grave\0" "hpReset\0" "hpSystem\0" "hpUser\0" "hpYdiaeresis\0" "Hstroke\0" "hstroke\0" "ht\0" "Hyper_L\0" "Hyper_R\0" "hyphen\0" "I\0" "i\0" "Iabovedot\0" "Iacute\0" "iacute\0" "Ibelowdot\0" "ibelowdot\0" "Ibreve\0" "ibreve\0" "Icircumflex\0" "icircumflex\0" "identical\0" "Idiaeresis\0" "idiaeresis\0" "idotless\0" "ifonlyif\0" "Igrave\0" "igrave\0" "Ihook\0" "ihook\0" "Imacron\0" "imacron\0" "implies\0" "includedin\0" "includes\0" "infinity\0" "Insert\0" "InsertChar\0" "InsertLine\0" "integral\0" "intersection\0" "IO\0" "Iogonek\0" "iogonek\0" "ISO_Center_Object\0" "ISO_Continuous_Underline\0" "ISO_Discontinuous_Underline\0" "ISO_Emphasize\0" "ISO_Enter\0" "ISO_Fast_Cursor_Down\0" "ISO_Fast_Cursor_Left\0" "ISO_Fast_Cursor_Right\0" "ISO_Fast_Cursor_Up\0" "ISO_First_Group\0" "ISO_First_Group_Lock\0" "ISO_Group_Latch\0" "ISO_Group_Lock\0" "ISO_Group_Shift\0" "ISO_Last_Group\0" "ISO_Last_Group_Lock\0" "ISO_Left_Tab\0" "ISO_Level2_Latch\0" "ISO_Level3_Latch\0" "ISO_Level3_Lock\0" "ISO_Level3_Shift\0" "ISO_Level5_Latch\0" "ISO_Level5_Lock\0" "ISO_Level5_Shift\0" "ISO_Lock\0" "ISO_Move_Line_Down\0" "ISO_Move_Line_Up\0" "ISO_Next_Group\0" "ISO_Next_Group_Lock\0" "ISO_Partial_Line_Down\0" "ISO_Partial_Line_Up\0" "ISO_Partial_Space_Left\0" "ISO_Partial_Space_Right\0" "ISO_Prev_Group\0" "ISO_Prev_Group_Lock\0" "ISO_Release_Both_Margins\0" "ISO_Release_Margin_Left\0" "ISO_Release_Margin_Right\0" "ISO_Set_Margin_Left\0" "ISO_Set_Margin_Right\0" "Itilde\0" "itilde\0" "J\0" "j\0" "Jcircumflex\0" "jcircumflex\0" "jot\0" "K\0" "k\0" "kana_a\0" "kana_A\0" "kana_CHI\0" "kana_closingbracket\0" "kana_comma\0" "kana_conjunctive\0" "kana_e\0" "kana_E\0" "kana_FU\0" "kana_fullstop\0" "kana_HA\0" "kana_HE\0" "kana_HI\0" "kana_HO\0" "kana_HU\0" "kana_i\0" "kana_I\0" "kana_KA\0" "kana_KE\0" "kana_KI\0" "kana_KO\0" "kana_KU\0" "Kana_Lock\0" "kana_MA\0" "kana_ME\0" "kana_MI\0" "kana_middledot\0" "kana_MO\0" "kana_MU\0" "kana_N\0" "kana_NA\0" "kana_NE\0" "kana_NI\0" "kana_NO\0" "kana_NU\0" "kana_o\0" "kana_O\0" "kana_openingbracket\0" "kana_RA\0" "kana_RE\0" "kana_RI\0" "kana_RO\0" "kana_RU\0" "kana_SA\0" "kana_SE\0" "kana_SHI\0" "Kana_Shift\0" "kana_SO\0" "kana_SU\0" "kana_switch\0" "kana_TA\0" "kana_TE\0" "kana_TI\0" "kana_TO\0" "kana_tsu\0" "kana_TSU\0" "kana_tu\0" "kana_TU\0" "kana_u\0" "kana_U\0" "kana_WA\0" "kana_WO\0" "kana_ya\0" "kana_YA\0" "kana_yo\0" "kana_YO\0" "kana_yu\0" "kana_YU\0" "Kanji\0" "Kanji_Bangou\0" "kappa\0" "Katakana\0" "Kcedilla\0" "kcedilla\0" "Korean_Won\0" "KP_0\0" "KP_1\0" "KP_2\0" "KP_3\0" "KP_4\0" "KP_5\0" "KP_6\0" "KP_7\0" "KP_8\0" "KP_9\0" "KP_Add\0" "KP_BackTab\0" "KP_Begin\0" "KP_Decimal\0" "KP_Delete\0" "KP_Divide\0" "KP_Down\0" "KP_End\0" "KP_Enter\0" "KP_Equal\0" "KP_F1\0" "KP_F2\0" "KP_F3\0" "KP_F4\0" "KP_Home\0" "KP_Insert\0" "KP_Left\0" "KP_Multiply\0" "KP_Next\0" "KP_Page_Down\0" "KP_Page_Up\0" "KP_Prior\0" "KP_Right\0" "KP_Separator\0" "KP_Space\0" "KP_Subtract\0" "KP_Tab\0" "KP_Up\0" "kra\0" "L\0" "l\0" "L1\0" "L10\0" "L2\0" "L3\0" "L4\0" "L5\0" "L6\0" "L7\0" "L8\0" "L9\0" "Lacute\0" "lacute\0" "Last_Virtual_Screen\0" "latincross\0" "Lbelowdot\0" "lbelowdot\0" "Lcaron\0" "lcaron\0" "Lcedilla\0" "lcedilla\0" "Left\0" "leftanglebracket\0" "leftarrow\0" "leftcaret\0" "leftdoublequotemark\0" "leftmiddlecurlybrace\0" "leftopentriangle\0" "leftpointer\0" "leftradical\0" "leftshoe\0" "leftsinglequotemark\0" "leftt\0" "lefttack\0" "less\0" "lessthanequal\0" "lf\0" "Linefeed\0" "lira\0" "LiraSign\0" "logicaland\0" "logicalor\0" "longminus\0" "lowleftcorner\0" "lowrightcorner\0" "Lstroke\0" "lstroke\0" "M\0" "m\0" "Mabovedot\0" "mabovedot\0" "Macedonia_dse\0" "Macedonia_DSE\0" "Macedonia_gje\0" "Macedonia_GJE\0" "Macedonia_kje\0" "Macedonia_KJE\0" "macron\0" "Mae_Koho\0" "malesymbol\0" "maltesecross\0" "marker\0" "masculine\0" "Massyo\0" "Menu\0" "Meta_L\0" "Meta_R\0" "MillSign\0" "minus\0" "minutes\0" "Mode_switch\0" "MouseKeys_Accel_Enable\0" "MouseKeys_Enable\0" "mu\0" "Muhenkan\0" "Multi_key\0" "MultipleCandidate\0" "multiply\0" "musicalflat\0" "musicalsharp\0" "mute_acute\0" "mute_asciicircum\0" "mute_asciitilde\0" "mute_diaeresis\0" "mute_grave\0" "N\0" "n\0" "nabla\0" "Nacute\0" "nacute\0" "NairaSign\0" "Ncaron\0" "ncaron\0" "Ncedilla\0" "ncedilla\0" "NewSheqelSign\0" "Next\0" "Next_Virtual_Screen\0" "ninesubscript\0" "ninesuperior\0" "nl\0" "nobreakspace\0" "NoSymbol\0" "notapproxeq\0" "notelementof\0" "notequal\0" "notidentical\0" "notsign\0" "Ntilde\0" "ntilde\0" "Num_Lock\0" "numbersign\0" "numerosign\0" "O\0" "o\0" "Oacute\0" "oacute\0" "Obarred\0" "obarred\0" "Obelowdot\0" "obelowdot\0" "Ocaron\0" "ocaron\0" "Ocircumflex\0" "ocircumflex\0" "Ocircumflexacute\0" "ocircumflexacute\0" "Ocircumflexbelowdot\0" "ocircumflexbelowdot\0" "Ocircumflexgrave\0" "ocircumflexgrave\0" "Ocircumflexhook\0" "ocircumflexhook\0" "Ocircumflextilde\0" "ocircumflextilde\0" "Odiaeresis\0" "odiaeresis\0" "Odoubleacute\0" "odoubleacute\0" "OE\0" "oe\0" "ogonek\0" "Ograve\0" "ograve\0" "Ohook\0" "ohook\0" "Ohorn\0" "ohorn\0" "Ohornacute\0" "ohornacute\0" "Ohornbelowdot\0" "ohornbelowdot\0" "Ohorngrave\0" "ohorngrave\0" "Ohornhook\0" "ohornhook\0" "Ohorntilde\0" "ohorntilde\0" "Omacron\0" "omacron\0" "oneeighth\0" "onefifth\0" "onehalf\0" "onequarter\0" "onesixth\0" "onesubscript\0" "onesuperior\0" "onethird\0" "Ooblique\0" "ooblique\0" "openrectbullet\0" "openstar\0" "opentribulletdown\0" "opentribulletup\0" "ordfeminine\0" "osfActivate\0" "osfAddMode\0" "osfBackSpace\0" "osfBackTab\0" "osfBeginData\0" "osfBeginLine\0" "osfCancel\0" "osfClear\0" "osfCopy\0" "osfCut\0" "osfDelete\0" "osfDeselectAll\0" "osfDown\0" "osfEndData\0" "osfEndLine\0" "osfEscape\0" "osfExtend\0" "osfHelp\0" "osfInsert\0" "osfLeft\0" "osfMenu\0" "osfMenuBar\0" "osfNextField\0" "osfNextMenu\0" "osfPageDown\0" "osfPageLeft\0" "osfPageRight\0" "osfPageUp\0" "osfPaste\0" "osfPrevField\0" "osfPrevMenu\0" "osfPrimaryPaste\0" "osfQuickPaste\0" "osfReselect\0" "osfRestore\0" "osfRight\0" "osfSelect\0" "osfSelectAll\0" "osfUndo\0" "osfUp\0" "Oslash\0" "oslash\0" "Otilde\0" "otilde\0" "overbar\0" "Overlay1_Enable\0" "Overlay2_Enable\0" "overline\0" "P\0" "p\0" "Pabovedot\0" "pabovedot\0" "Page_Down\0" "Page_Up\0" "paragraph\0" "parenleft\0" "parenright\0" "partdifferential\0" "partialderivative\0" "Pause\0" "percent\0" "period\0" "periodcentered\0" "permille\0" "PesetaSign\0" "phonographcopyright\0" "plus\0" "plusminus\0" "Pointer_Accelerate\0" "Pointer_Button1\0" "Pointer_Button2\0" "Pointer_Button3\0" "Pointer_Button4\0" "Pointer_Button5\0" "Pointer_Button_Dflt\0" "Pointer_DblClick1\0" "Pointer_DblClick2\0" "Pointer_DblClick3\0" "Pointer_DblClick4\0" "Pointer_DblClick5\0" "Pointer_DblClick_Dflt\0" "Pointer_DfltBtnNext\0" "Pointer_DfltBtnPrev\0" "Pointer_Down\0" "Pointer_DownLeft\0" "Pointer_DownRight\0" "Pointer_Drag1\0" "Pointer_Drag2\0" "Pointer_Drag3\0" "Pointer_Drag4\0" "Pointer_Drag5\0" "Pointer_Drag_Dflt\0" "Pointer_EnableKeys\0" "Pointer_Left\0" "Pointer_Right\0" "Pointer_Up\0" "Pointer_UpLeft\0" "Pointer_UpRight\0" "prescription\0" "Prev_Virtual_Screen\0" "PreviousCandidate\0" "Print\0" "Prior\0" "prolongedsound\0" "punctspace\0" "Q\0" "q\0" "quad\0" "question\0" "questiondown\0" "quotedbl\0" "quoteleft\0" "quoteright\0" "R\0" "r\0" "R1\0" "R10\0" "R11\0" "R12\0" "R13\0" "R14\0" "R15\0" "R2\0" "R3\0" "R4\0" "R5\0" "R6\0" "R7\0" "R8\0" "R9\0" "Racute\0" "racute\0" "radical\0" "Rcaron\0" "rcaron\0" "Rcedilla\0" "rcedilla\0" "Redo\0" "registered\0" "RepeatKeys_Enable\0" "Reset\0" "Return\0" "Right\0" "rightanglebracket\0" "rightarrow\0" "rightcaret\0" "rightdoublequotemark\0" "rightmiddlecurlybrace\0" "rightmiddlesummation\0" "rightopentriangle\0" "rightpointer\0" "rightshoe\0" "rightsinglequotemark\0" "rightt\0" "righttack\0" "Romaji\0" "RupeeSign\0" "S\0" "s\0" "Sabovedot\0" "sabovedot\0" "Sacute\0" "sacute\0" "Scaron\0" "scaron\0" "Scedilla\0" "scedilla\0" "SCHWA\0" "schwa\0" "Scircumflex\0" "scircumflex\0" "script_switch\0" "Scroll_Lock\0" "seconds\0" "section\0" "Select\0" "semicolon\0" "semivoicedsound\0" "Serbian_dje\0" "Serbian_DJE\0" "Serbian_dze\0" "Serbian_DZE\0" "Serbian_je\0" "Serbian_JE\0" "Serbian_lje\0" "Serbian_LJE\0" "Serbian_nje\0" "Serbian_NJE\0" "Serbian_tshe\0" "Serbian_TSHE\0" "seveneighths\0" "sevensubscript\0" "sevensuperior\0" "Shift_L\0" "Shift_Lock\0" "Shift_R\0" "signaturemark\0" "signifblank\0" "similarequal\0" "SingleCandidate\0" "singlelowquotemark\0" "Sinh_a\0" "Sinh_aa\0" "Sinh_aa2\0" "Sinh_ae\0" "Sinh_ae2\0" "Sinh_aee\0" "Sinh_aee2\0" "Sinh_ai\0" "Sinh_ai2\0" "Sinh_al\0" "Sinh_au\0" "Sinh_au2\0" "Sinh_ba\0" "Sinh_bha\0" "Sinh_ca\0" "Sinh_cha\0" "Sinh_dda\0" "Sinh_ddha\0" "Sinh_dha\0" "Sinh_dhha\0" "Sinh_e\0" "Sinh_e2\0" "Sinh_ee\0" "Sinh_ee2\0" "Sinh_fa\0" "Sinh_ga\0" "Sinh_gha\0" "Sinh_h2\0" "Sinh_ha\0" "Sinh_i\0" "Sinh_i2\0" "Sinh_ii\0" "Sinh_ii2\0" "Sinh_ja\0" "Sinh_jha\0" "Sinh_jnya\0" "Sinh_ka\0" "Sinh_kha\0" "Sinh_kunddaliya\0" "Sinh_la\0" "Sinh_lla\0" "Sinh_lu\0" "Sinh_lu2\0" "Sinh_luu\0" "Sinh_luu2\0" "Sinh_ma\0" "Sinh_mba\0" "Sinh_na\0" "Sinh_ndda\0" "Sinh_ndha\0" "Sinh_ng\0" "Sinh_ng2\0" "Sinh_nga\0" "Sinh_nja\0" "Sinh_nna\0" "Sinh_nya\0" "Sinh_o\0" "Sinh_o2\0" "Sinh_oo\0" "Sinh_oo2\0" "Sinh_pa\0" "Sinh_pha\0" "Sinh_ra\0" "Sinh_ri\0" "Sinh_rii\0" "Sinh_ru2\0" "Sinh_ruu2\0" "Sinh_sa\0" "Sinh_sha\0" "Sinh_ssha\0" "Sinh_tha\0" "Sinh_thha\0" "Sinh_tta\0" "Sinh_ttha\0" "Sinh_u\0" "Sinh_u2\0" "Sinh_uu\0" "Sinh_uu2\0" "Sinh_va\0" "Sinh_ya\0" "sixsubscript\0" "sixsuperior\0" "slash\0" "SlowKeys_Enable\0" "soliddiamond\0" "space\0" "squareroot\0" "ssharp\0" "sterling\0" "StickyKeys_Enable\0" "stricteq\0" "SunAgain\0" "SunAltGraph\0" "SunAudioLowerVolume\0" "SunAudioMute\0" "SunAudioRaiseVolume\0" "SunCompose\0" "SunCopy\0" "SunCut\0" "SunF36\0" "SunF37\0" "SunFA_Acute\0" "SunFA_Cedilla\0" "SunFA_Circum\0" "SunFA_Diaeresis\0" "SunFA_Grave\0" "SunFA_Tilde\0" "SunFind\0" "SunFront\0" "SunOpen\0" "SunPageDown\0" "SunPageUp\0" "SunPaste\0" "SunPowerSwitch\0" "SunPowerSwitchShift\0" "SunPrint_Screen\0" "SunProps\0" "SunStop\0" "SunSys_Req\0" "SunUndo\0" "SunVideoDegauss\0" "SunVideoLowerBrightness\0" "SunVideoRaiseBrightness\0" "Super_L\0" "Super_R\0" "Sys_Req\0" "System\0" "T\0" "t\0" "Tab\0" "Tabovedot\0" "tabovedot\0" "Tcaron\0" "tcaron\0" "Tcedilla\0" "tcedilla\0" "telephone\0" "telephonerecorder\0" "Terminate_Server\0" "Thai_baht\0" "Thai_bobaimai\0" "Thai_chochan\0" "Thai_chochang\0" "Thai_choching\0" "Thai_chochoe\0" "Thai_dochada\0" "Thai_dodek\0" "Thai_fofa\0" "Thai_fofan\0" "Thai_hohip\0" "Thai_honokhuk\0" "Thai_khokhai\0" "Thai_khokhon\0" "Thai_khokhuat\0" "Thai_khokhwai\0" "Thai_khorakhang\0" "Thai_kokai\0" "Thai_lakkhangyao\0" "Thai_lekchet\0" "Thai_lekha\0" "Thai_lekhok\0" "Thai_lekkao\0" "Thai_leknung\0" "Thai_lekpaet\0" "Thai_leksam\0" "Thai_leksi\0" "Thai_leksong\0" "Thai_leksun\0" "Thai_lochula\0" "Thai_loling\0" "Thai_lu\0" "Thai_maichattawa\0" "Thai_maiek\0" "Thai_maihanakat\0" "Thai_maihanakat_maitho\0" "Thai_maitaikhu\0" "Thai_maitho\0" "Thai_maitri\0" "Thai_maiyamok\0" "Thai_moma\0" "Thai_ngongu\0" "Thai_nikhahit\0" "Thai_nonen\0" "Thai_nonu\0" "Thai_oang\0" "Thai_paiyannoi\0" "Thai_phinthu\0" "Thai_phophan\0" "Thai_phophung\0" "Thai_phosamphao\0" "Thai_popla\0" "Thai_rorua\0" "Thai_ru\0" "Thai_saraa\0" "Thai_saraaa\0" "Thai_saraae\0" "Thai_saraaimaimalai\0" "Thai_saraaimaimuan\0" "Thai_saraam\0" "Thai_sarae\0" "Thai_sarai\0" "Thai_saraii\0" "Thai_sarao\0" "Thai_sarau\0" "Thai_saraue\0" "Thai_sarauee\0" "Thai_sarauu\0" "Thai_sorusi\0" "Thai_sosala\0" "Thai_soso\0" "Thai_sosua\0" "Thai_thanthakhat\0" "Thai_thonangmontho\0" "Thai_thophuthao\0" "Thai_thothahan\0" "Thai_thothan\0" "Thai_thothong\0" "Thai_thothung\0" "Thai_topatak\0" "Thai_totao\0" "Thai_wowaen\0" "Thai_yoyak\0" "Thai_yoying\0" "therefore\0" "thinspace\0" "THORN\0" "Thorn\0" "thorn\0" "threeeighths\0" "threefifths\0" "threequarters\0" "threesubscript\0" "threesuperior\0" "tintegral\0" "topintegral\0" "topleftparens\0" "topleftradical\0" "topleftsqbracket\0" "topleftsummation\0" "toprightparens\0" "toprightsqbracket\0" "toprightsummation\0" "topt\0" "topvertsummationconnector\0" "Touroku\0" "trademark\0" "trademarkincircle\0" "Tslash\0" "tslash\0" "twofifths\0" "twosubscript\0" "twosuperior\0" "twothirds\0" "U\0" "u\0" "Uacute\0" "uacute\0" "Ubelowdot\0" "ubelowdot\0" "Ubreve\0" "ubreve\0" "Ucircumflex\0" "ucircumflex\0" "Udiaeresis\0" "udiaeresis\0" "Udoubleacute\0" "udoubleacute\0" "Ugrave\0" "ugrave\0" "Uhook\0" "uhook\0" "Uhorn\0" "uhorn\0" "Uhornacute\0" "uhornacute\0" "Uhornbelowdot\0" "uhornbelowdot\0" "Uhorngrave\0" "uhorngrave\0" "Uhornhook\0" "uhornhook\0" "Uhorntilde\0" "uhorntilde\0" "Ukrainian_ghe_with_upturn\0" "Ukrainian_GHE_WITH_UPTURN\0" "Ukrainian_i\0" "Ukrainian_I\0" "Ukrainian_ie\0" "Ukrainian_IE\0" "Ukrainian_yi\0" "Ukrainian_YI\0" "Ukranian_i\0" "Ukranian_I\0" "Ukranian_je\0" "Ukranian_JE\0" "Ukranian_yi\0" "Ukranian_YI\0" "Umacron\0" "umacron\0" "underbar\0" "underscore\0" "Undo\0" "union\0" "Uogonek\0" "uogonek\0" "Up\0" "uparrow\0" "upcaret\0" "upleftcorner\0" "uprightcorner\0" "upshoe\0" "upstile\0" "uptack\0" "Uring\0" "uring\0" "User\0" "Utilde\0" "utilde\0" "V\0" "v\0" "variation\0" "vertbar\0" "vertconnector\0" "voicedsound\0" "VoidSymbol\0" "vt\0" "W\0" "w\0" "Wacute\0" "wacute\0" "Wcircumflex\0" "wcircumflex\0" "Wdiaeresis\0" "wdiaeresis\0" "Wgrave\0" "wgrave\0" "WonSign\0" "X\0" "x\0" "Xabovedot\0" "xabovedot\0" "XF86AddFavorite\0" "XF86ApplicationLeft\0" "XF86ApplicationRight\0" "XF86AudioCycleTrack\0" "XF86AudioForward\0" "XF86AudioLowerVolume\0" "XF86AudioMedia\0" "XF86AudioMicMute\0" "XF86AudioMute\0" "XF86AudioNext\0" "XF86AudioPause\0" "XF86AudioPlay\0" "XF86AudioPrev\0" "XF86AudioRaiseVolume\0" "XF86AudioRandomPlay\0" "XF86AudioRecord\0" "XF86AudioRepeat\0" "XF86AudioRewind\0" "XF86AudioStop\0" "XF86Away\0" "XF86Back\0" "XF86BackForward\0" "XF86Battery\0" "XF86Blue\0" "XF86Bluetooth\0" "XF86Book\0" "XF86BrightnessAdjust\0" "XF86Calculater\0" "XF86Calculator\0" "XF86Calendar\0" "XF86CD\0" "XF86Clear\0" "XF86ClearGrab\0" "XF86Close\0" "XF86Community\0" "XF86ContrastAdjust\0" "XF86Copy\0" "XF86Cut\0" "XF86CycleAngle\0" "XF86Display\0" "XF86Documents\0" "XF86DOS\0" "XF86Eject\0" "XF86Excel\0" "XF86Explorer\0" "XF86Favorites\0" "XF86Finance\0" "XF86Forward\0" "XF86FrameBack\0" "XF86FrameForward\0" "XF86Game\0" "XF86Go\0" "XF86Green\0" "XF86Hibernate\0" "XF86History\0" "XF86HomePage\0" "XF86HotLinks\0" "XF86iTouch\0" "XF86KbdBrightnessDown\0" "XF86KbdBrightnessUp\0" "XF86KbdLightOnOff\0" "XF86Launch0\0" "XF86Launch1\0" "XF86Launch2\0" "XF86Launch3\0" "XF86Launch4\0" "XF86Launch5\0" "XF86Launch6\0" "XF86Launch7\0" "XF86Launch8\0" "XF86Launch9\0" "XF86LaunchA\0" "XF86LaunchB\0" "XF86LaunchC\0" "XF86LaunchD\0" "XF86LaunchE\0" "XF86LaunchF\0" "XF86LightBulb\0" "XF86LogGrabInfo\0" "XF86LogOff\0" "XF86LogWindowTree\0" "XF86Mail\0" "XF86MailForward\0" "XF86Market\0" "XF86Meeting\0" "XF86Memo\0" "XF86MenuKB\0" "XF86MenuPB\0" "XF86Messenger\0" "XF86ModeLock\0" "XF86MonBrightnessDown\0" "XF86MonBrightnessUp\0" "XF86Music\0" "XF86MyComputer\0" "XF86MySites\0" "XF86New\0" "XF86News\0" "XF86Next_VMode\0" "XF86OfficeHome\0" "XF86Open\0" "XF86OpenURL\0" "XF86Option\0" "XF86Paste\0" "XF86Phone\0" "XF86Pictures\0" "XF86PowerDown\0" "XF86PowerOff\0" "XF86Prev_VMode\0" "XF86Q\0" "XF86Red\0" "XF86Refresh\0" "XF86Reload\0" "XF86Reply\0" "XF86RockerDown\0" "XF86RockerEnter\0" "XF86RockerUp\0" "XF86RotateWindows\0" "XF86RotationKB\0" "XF86RotationPB\0" "XF86Save\0" "XF86ScreenSaver\0" "XF86ScrollClick\0" "XF86ScrollDown\0" "XF86ScrollUp\0" "XF86Search\0" "XF86Select\0" "XF86Send\0" "XF86Shop\0" "XF86Sleep\0" "XF86Spell\0" "XF86SplitScreen\0" "XF86Standby\0" "XF86Start\0" "XF86Stop\0" "XF86Subtitle\0" "XF86Support\0" "XF86Suspend\0" "XF86Switch_VT_1\0" "XF86Switch_VT_10\0" "XF86Switch_VT_11\0" "XF86Switch_VT_12\0" "XF86Switch_VT_2\0" "XF86Switch_VT_3\0" "XF86Switch_VT_4\0" "XF86Switch_VT_5\0" "XF86Switch_VT_6\0" "XF86Switch_VT_7\0" "XF86Switch_VT_8\0" "XF86Switch_VT_9\0" "XF86TaskPane\0" "XF86Terminal\0" "XF86Time\0" "XF86ToDoList\0" "XF86Tools\0" "XF86TopMenu\0" "XF86TouchpadOff\0" "XF86TouchpadOn\0" "XF86TouchpadToggle\0" "XF86Travel\0" "XF86Ungrab\0" "XF86User1KB\0" "XF86User2KB\0" "XF86UserPB\0" "XF86UWB\0" "XF86VendorHome\0" "XF86Video\0" "XF86View\0" "XF86WakeUp\0" "XF86WebCam\0" "XF86WheelButton\0" "XF86WLAN\0" "XF86Word\0" "XF86WWW\0" "XF86Xfer\0" "XF86Yellow\0" "XF86ZoomIn\0" "XF86ZoomOut\0" "Y\0" "y\0" "Yacute\0" "yacute\0" "Ybelowdot\0" "ybelowdot\0" "Ycircumflex\0" "ycircumflex\0" "ydiaeresis\0" "Ydiaeresis\0" "yen\0" "Ygrave\0" "ygrave\0" "Yhook\0" "yhook\0" "Ytilde\0" "ytilde\0" "Z\0" "z\0" "Zabovedot\0" "zabovedot\0" "Zacute\0" "zacute\0" "Zcaron\0" "zcaron\0" "Zen_Koho\0" "Zenkaku\0" "Zenkaku_Hankaku\0" "zerosubscript\0" "zerosuperior\0" "Zstroke\0" "zstroke\0" ; #pragma GCC diagnostic pop struct name_keysym { xkb_keysym_t keysym; uint32_t offset; }; static const struct name_keysym name_to_keysym[] = { { 0x00000030, 0 }, /* 0 */ { 0x00000031, 2 }, /* 1 */ { 0x00000032, 4 }, /* 2 */ { 0x00000033, 6 }, /* 3 */ { 0x0000fd10, 8 }, /* 3270_AltCursor */ { 0x0000fd0e, 23 }, /* 3270_Attn */ { 0x0000fd05, 33 }, /* 3270_BackTab */ { 0x0000fd19, 46 }, /* 3270_ChangeScreen */ { 0x0000fd15, 64 }, /* 3270_Copy */ { 0x0000fd0f, 74 }, /* 3270_CursorBlink */ { 0x0000fd1c, 91 }, /* 3270_CursorSelect */ { 0x0000fd1a, 109 }, /* 3270_DeleteWord */ { 0x0000fd01, 125 }, /* 3270_Duplicate */ { 0x0000fd1e, 140 }, /* 3270_Enter */ { 0x0000fd06, 151 }, /* 3270_EraseEOF */ { 0x0000fd07, 165 }, /* 3270_EraseInput */ { 0x0000fd1b, 181 }, /* 3270_ExSelect */ { 0x0000fd02, 195 }, /* 3270_FieldMark */ { 0x0000fd13, 210 }, /* 3270_Ident */ { 0x0000fd12, 221 }, /* 3270_Jump */ { 0x0000fd11, 231 }, /* 3270_KeyClick */ { 0x0000fd04, 245 }, /* 3270_Left2 */ { 0x0000fd0a, 256 }, /* 3270_PA1 */ { 0x0000fd0b, 265 }, /* 3270_PA2 */ { 0x0000fd0c, 274 }, /* 3270_PA3 */ { 0x0000fd16, 283 }, /* 3270_Play */ { 0x0000fd1d, 293 }, /* 3270_PrintScreen */ { 0x0000fd09, 310 }, /* 3270_Quit */ { 0x0000fd18, 320 }, /* 3270_Record */ { 0x0000fd08, 332 }, /* 3270_Reset */ { 0x0000fd03, 343 }, /* 3270_Right2 */ { 0x0000fd14, 355 }, /* 3270_Rule */ { 0x0000fd17, 365 }, /* 3270_Setup */ { 0x0000fd0d, 376 }, /* 3270_Test */ { 0x00000034, 386 }, /* 4 */ { 0x00000035, 388 }, /* 5 */ { 0x00000036, 390 }, /* 6 */ { 0x00000037, 392 }, /* 7 */ { 0x00000038, 394 }, /* 8 */ { 0x00000039, 396 }, /* 9 */ { 0x00000041, 398 }, /* A */ { 0x00000061, 400 }, /* a */ { 0x000000c1, 402 }, /* Aacute */ { 0x000000e1, 409 }, /* aacute */ { 0x01001ea0, 416 }, /* Abelowdot */ { 0x01001ea1, 426 }, /* abelowdot */ { 0x000001ff, 436 }, /* abovedot */ { 0x000001c3, 445 }, /* Abreve */ { 0x000001e3, 452 }, /* abreve */ { 0x01001eae, 459 }, /* Abreveacute */ { 0x01001eaf, 471 }, /* abreveacute */ { 0x01001eb6, 483 }, /* Abrevebelowdot */ { 0x01001eb7, 498 }, /* abrevebelowdot */ { 0x01001eb0, 513 }, /* Abrevegrave */ { 0x01001eb1, 525 }, /* abrevegrave */ { 0x01001eb2, 537 }, /* Abrevehook */ { 0x01001eb3, 548 }, /* abrevehook */ { 0x01001eb4, 559 }, /* Abrevetilde */ { 0x01001eb5, 571 }, /* abrevetilde */ { 0x0000fe70, 583 }, /* AccessX_Enable */ { 0x0000fe71, 598 }, /* AccessX_Feedback_Enable */ { 0x000000c2, 622 }, /* Acircumflex */ { 0x000000e2, 634 }, /* acircumflex */ { 0x01001ea4, 646 }, /* Acircumflexacute */ { 0x01001ea5, 663 }, /* acircumflexacute */ { 0x01001eac, 680 }, /* Acircumflexbelowdot */ { 0x01001ead, 700 }, /* acircumflexbelowdot */ { 0x01001ea6, 720 }, /* Acircumflexgrave */ { 0x01001ea7, 737 }, /* acircumflexgrave */ { 0x01001ea8, 754 }, /* Acircumflexhook */ { 0x01001ea9, 770 }, /* acircumflexhook */ { 0x01001eaa, 786 }, /* Acircumflextilde */ { 0x01001eab, 803 }, /* acircumflextilde */ { 0x000000b4, 820 }, /* acute */ { 0x000000c4, 826 }, /* Adiaeresis */ { 0x000000e4, 837 }, /* adiaeresis */ { 0x000000c6, 848 }, /* AE */ { 0x000000e6, 851 }, /* ae */ { 0x000000c0, 854 }, /* Agrave */ { 0x000000e0, 861 }, /* agrave */ { 0x01001ea2, 868 }, /* Ahook */ { 0x01001ea3, 874 }, /* ahook */ { 0x0000ffe9, 880 }, /* Alt_L */ { 0x0000ffea, 886 }, /* Alt_R */ { 0x000003c0, 892 }, /* Amacron */ { 0x000003e0, 900 }, /* amacron */ { 0x00000026, 908 }, /* ampersand */ { 0x000001a1, 918 }, /* Aogonek */ { 0x000001b1, 926 }, /* aogonek */ { 0x00000027, 934 }, /* apostrophe */ { 0x01002248, 945 }, /* approxeq */ { 0x000008c8, 954 }, /* approximate */ { 0x01000660, 966 }, /* Arabic_0 */ { 0x01000661, 975 }, /* Arabic_1 */ { 0x01000662, 984 }, /* Arabic_2 */ { 0x01000663, 993 }, /* Arabic_3 */ { 0x01000664, 1002 }, /* Arabic_4 */ { 0x01000665, 1011 }, /* Arabic_5 */ { 0x01000666, 1020 }, /* Arabic_6 */ { 0x01000667, 1029 }, /* Arabic_7 */ { 0x01000668, 1038 }, /* Arabic_8 */ { 0x01000669, 1047 }, /* Arabic_9 */ { 0x000005d9, 1056 }, /* Arabic_ain */ { 0x000005c7, 1067 }, /* Arabic_alef */ { 0x000005e9, 1079 }, /* Arabic_alefmaksura */ { 0x000005c8, 1098 }, /* Arabic_beh */ { 0x000005ac, 1109 }, /* Arabic_comma */ { 0x000005d6, 1122 }, /* Arabic_dad */ { 0x000005cf, 1133 }, /* Arabic_dal */ { 0x000005ef, 1144 }, /* Arabic_damma */ { 0x000005ec, 1157 }, /* Arabic_dammatan */ { 0x01000688, 1173 }, /* Arabic_ddal */ { 0x010006cc, 1185 }, /* Arabic_farsi_yeh */ { 0x000005ee, 1202 }, /* Arabic_fatha */ { 0x000005eb, 1215 }, /* Arabic_fathatan */ { 0x000005e1, 1231 }, /* Arabic_feh */ { 0x010006d4, 1242 }, /* Arabic_fullstop */ { 0x010006af, 1258 }, /* Arabic_gaf */ { 0x000005da, 1269 }, /* Arabic_ghain */ { 0x000005e7, 1282 }, /* Arabic_ha */ { 0x000005cd, 1292 }, /* Arabic_hah */ { 0x000005c1, 1303 }, /* Arabic_hamza */ { 0x01000654, 1316 }, /* Arabic_hamza_above */ { 0x01000655, 1335 }, /* Arabic_hamza_below */ { 0x000005c3, 1354 }, /* Arabic_hamzaonalef */ { 0x000005c4, 1373 }, /* Arabic_hamzaonwaw */ { 0x000005c6, 1391 }, /* Arabic_hamzaonyeh */ { 0x000005c5, 1409 }, /* Arabic_hamzaunderalef */ { 0x000005e7, 1431 }, /* Arabic_heh */ { 0x010006be, 1442 }, /* Arabic_heh_doachashmee */ { 0x010006c1, 1465 }, /* Arabic_heh_goal */ { 0x000005cc, 1481 }, /* Arabic_jeem */ { 0x01000698, 1493 }, /* Arabic_jeh */ { 0x000005e3, 1504 }, /* Arabic_kaf */ { 0x000005f0, 1515 }, /* Arabic_kasra */ { 0x000005ed, 1528 }, /* Arabic_kasratan */ { 0x010006a9, 1544 }, /* Arabic_keheh */ { 0x000005ce, 1557 }, /* Arabic_khah */ { 0x000005e4, 1569 }, /* Arabic_lam */ { 0x01000653, 1580 }, /* Arabic_madda_above */ { 0x000005c2, 1599 }, /* Arabic_maddaonalef */ { 0x000005e5, 1618 }, /* Arabic_meem */ { 0x000005e6, 1630 }, /* Arabic_noon */ { 0x010006ba, 1642 }, /* Arabic_noon_ghunna */ { 0x0100067e, 1661 }, /* Arabic_peh */ { 0x0100066a, 1672 }, /* Arabic_percent */ { 0x000005e2, 1687 }, /* Arabic_qaf */ { 0x000005bf, 1698 }, /* Arabic_question_mark */ { 0x000005d1, 1719 }, /* Arabic_ra */ { 0x01000691, 1729 }, /* Arabic_rreh */ { 0x000005d5, 1741 }, /* Arabic_sad */ { 0x000005d3, 1752 }, /* Arabic_seen */ { 0x000005bb, 1764 }, /* Arabic_semicolon */ { 0x000005f1, 1781 }, /* Arabic_shadda */ { 0x000005d4, 1795 }, /* Arabic_sheen */ { 0x000005f2, 1808 }, /* Arabic_sukun */ { 0x01000670, 1821 }, /* Arabic_superscript_alef */ { 0x0000ff7e, 1845 }, /* Arabic_switch */ { 0x000005d7, 1859 }, /* Arabic_tah */ { 0x000005e0, 1870 }, /* Arabic_tatweel */ { 0x01000686, 1885 }, /* Arabic_tcheh */ { 0x000005ca, 1898 }, /* Arabic_teh */ { 0x000005c9, 1909 }, /* Arabic_tehmarbuta */ { 0x000005d0, 1927 }, /* Arabic_thal */ { 0x000005cb, 1939 }, /* Arabic_theh */ { 0x01000679, 1951 }, /* Arabic_tteh */ { 0x010006a4, 1963 }, /* Arabic_veh */ { 0x000005e8, 1974 }, /* Arabic_waw */ { 0x000005ea, 1985 }, /* Arabic_yeh */ { 0x010006d2, 1996 }, /* Arabic_yeh_baree */ { 0x000005d8, 2013 }, /* Arabic_zah */ { 0x000005d2, 2024 }, /* Arabic_zain */ { 0x000000c5, 2036 }, /* Aring */ { 0x000000e5, 2042 }, /* aring */ { 0x0100055b, 2048 }, /* Armenian_accent */ { 0x0100055c, 2064 }, /* Armenian_amanak */ { 0x0100055a, 2080 }, /* Armenian_apostrophe */ { 0x01000538, 2100 }, /* Armenian_AT */ { 0x01000568, 2112 }, /* Armenian_at */ { 0x01000531, 2124 }, /* Armenian_AYB */ { 0x01000561, 2137 }, /* Armenian_ayb */ { 0x01000532, 2150 }, /* Armenian_BEN */ { 0x01000562, 2163 }, /* Armenian_ben */ { 0x0100055d, 2176 }, /* Armenian_but */ { 0x01000549, 2189 }, /* Armenian_CHA */ { 0x01000579, 2202 }, /* Armenian_cha */ { 0x01000534, 2215 }, /* Armenian_DA */ { 0x01000564, 2227 }, /* Armenian_da */ { 0x01000541, 2239 }, /* Armenian_DZA */ { 0x01000571, 2252 }, /* Armenian_dza */ { 0x01000537, 2265 }, /* Armenian_E */ { 0x01000567, 2276 }, /* Armenian_e */ { 0x0100055c, 2287 }, /* Armenian_exclam */ { 0x01000556, 2303 }, /* Armenian_FE */ { 0x01000586, 2315 }, /* Armenian_fe */ { 0x01000589, 2327 }, /* Armenian_full_stop */ { 0x01000542, 2346 }, /* Armenian_GHAT */ { 0x01000572, 2360 }, /* Armenian_ghat */ { 0x01000533, 2374 }, /* Armenian_GIM */ { 0x01000563, 2387 }, /* Armenian_gim */ { 0x01000545, 2400 }, /* Armenian_HI */ { 0x01000575, 2412 }, /* Armenian_hi */ { 0x01000540, 2424 }, /* Armenian_HO */ { 0x01000570, 2436 }, /* Armenian_ho */ { 0x0100058a, 2448 }, /* Armenian_hyphen */ { 0x0100053b, 2464 }, /* Armenian_INI */ { 0x0100056b, 2477 }, /* Armenian_ini */ { 0x0100054b, 2490 }, /* Armenian_JE */ { 0x0100057b, 2502 }, /* Armenian_je */ { 0x01000554, 2514 }, /* Armenian_KE */ { 0x01000584, 2526 }, /* Armenian_ke */ { 0x0100053f, 2538 }, /* Armenian_KEN */ { 0x0100056f, 2551 }, /* Armenian_ken */ { 0x0100053d, 2564 }, /* Armenian_KHE */ { 0x0100056d, 2577 }, /* Armenian_khe */ { 0x01000587, 2590 }, /* Armenian_ligature_ew */ { 0x0100053c, 2611 }, /* Armenian_LYUN */ { 0x0100056c, 2625 }, /* Armenian_lyun */ { 0x01000544, 2639 }, /* Armenian_MEN */ { 0x01000574, 2652 }, /* Armenian_men */ { 0x01000546, 2665 }, /* Armenian_NU */ { 0x01000576, 2677 }, /* Armenian_nu */ { 0x01000555, 2689 }, /* Armenian_O */ { 0x01000585, 2700 }, /* Armenian_o */ { 0x0100055e, 2711 }, /* Armenian_paruyk */ { 0x0100054a, 2727 }, /* Armenian_PE */ { 0x0100057a, 2739 }, /* Armenian_pe */ { 0x01000553, 2751 }, /* Armenian_PYUR */ { 0x01000583, 2765 }, /* Armenian_pyur */ { 0x0100055e, 2779 }, /* Armenian_question */ { 0x0100054c, 2797 }, /* Armenian_RA */ { 0x0100057c, 2809 }, /* Armenian_ra */ { 0x01000550, 2821 }, /* Armenian_RE */ { 0x01000580, 2833 }, /* Armenian_re */ { 0x0100054d, 2845 }, /* Armenian_SE */ { 0x0100057d, 2857 }, /* Armenian_se */ { 0x0100055d, 2869 }, /* Armenian_separation_mark */ { 0x01000547, 2894 }, /* Armenian_SHA */ { 0x01000577, 2907 }, /* Armenian_sha */ { 0x0100055b, 2920 }, /* Armenian_shesht */ { 0x01000543, 2936 }, /* Armenian_TCHE */ { 0x01000573, 2950 }, /* Armenian_tche */ { 0x01000539, 2964 }, /* Armenian_TO */ { 0x01000569, 2976 }, /* Armenian_to */ { 0x0100053e, 2988 }, /* Armenian_TSA */ { 0x0100056e, 3001 }, /* Armenian_tsa */ { 0x01000551, 3014 }, /* Armenian_TSO */ { 0x01000581, 3027 }, /* Armenian_tso */ { 0x0100054f, 3040 }, /* Armenian_TYUN */ { 0x0100057f, 3054 }, /* Armenian_tyun */ { 0x01000589, 3068 }, /* Armenian_verjaket */ { 0x0100054e, 3086 }, /* Armenian_VEV */ { 0x0100057e, 3099 }, /* Armenian_vev */ { 0x01000548, 3112 }, /* Armenian_VO */ { 0x01000578, 3124 }, /* Armenian_vo */ { 0x01000552, 3136 }, /* Armenian_VYUN */ { 0x01000582, 3150 }, /* Armenian_vyun */ { 0x01000535, 3164 }, /* Armenian_YECH */ { 0x01000565, 3178 }, /* Armenian_yech */ { 0x0100058a, 3192 }, /* Armenian_yentamna */ { 0x01000536, 3210 }, /* Armenian_ZA */ { 0x01000566, 3222 }, /* Armenian_za */ { 0x0100053a, 3234 }, /* Armenian_ZHE */ { 0x0100056a, 3247 }, /* Armenian_zhe */ { 0x0000005e, 3260 }, /* asciicircum */ { 0x0000007e, 3272 }, /* asciitilde */ { 0x0000002a, 3283 }, /* asterisk */ { 0x00000040, 3292 }, /* at */ { 0x000000c3, 3295 }, /* Atilde */ { 0x000000e3, 3302 }, /* atilde */ { 0x0000fe7a, 3309 }, /* AudibleBell_Enable */ { 0x00000042, 3328 }, /* B */ { 0x00000062, 3330 }, /* b */ { 0x01001e02, 3332 }, /* Babovedot */ { 0x01001e03, 3342 }, /* babovedot */ { 0x0000005c, 3352 }, /* backslash */ { 0x0000ff08, 3362 }, /* BackSpace */ { 0x1000ff74, 3372 }, /* BackTab */ { 0x00000af4, 3380 }, /* ballotcross */ { 0x0000007c, 3392 }, /* bar */ { 0x01002235, 3396 }, /* because */ { 0x0000ff58, 3404 }, /* Begin */ { 0x000009df, 3410 }, /* blank */ { 0x100000fc, 3416 }, /* block */ { 0x000008a5, 3422 }, /* botintegral */ { 0x000008ac, 3434 }, /* botleftparens */ { 0x000008a8, 3448 }, /* botleftsqbracket */ { 0x000008b2, 3465 }, /* botleftsummation */ { 0x000008ae, 3482 }, /* botrightparens */ { 0x000008aa, 3497 }, /* botrightsqbracket */ { 0x000008b6, 3515 }, /* botrightsummation */ { 0x000009f6, 3533 }, /* bott */ { 0x000008b4, 3538 }, /* botvertsummationconnector */ { 0x0000fe74, 3564 }, /* BounceKeys_Enable */ { 0x0000007b, 3582 }, /* braceleft */ { 0x0000007d, 3592 }, /* braceright */ { 0x0000005b, 3603 }, /* bracketleft */ { 0x0000005d, 3615 }, /* bracketright */ { 0x01002800, 3628 }, /* braille_blank */ { 0x0000fff1, 3642 }, /* braille_dot_1 */ { 0x0000fffa, 3656 }, /* braille_dot_10 */ { 0x0000fff2, 3671 }, /* braille_dot_2 */ { 0x0000fff3, 3685 }, /* braille_dot_3 */ { 0x0000fff4, 3699 }, /* braille_dot_4 */ { 0x0000fff5, 3713 }, /* braille_dot_5 */ { 0x0000fff6, 3727 }, /* braille_dot_6 */ { 0x0000fff7, 3741 }, /* braille_dot_7 */ { 0x0000fff8, 3755 }, /* braille_dot_8 */ { 0x0000fff9, 3769 }, /* braille_dot_9 */ { 0x01002801, 3783 }, /* braille_dots_1 */ { 0x01002803, 3798 }, /* braille_dots_12 */ { 0x01002807, 3814 }, /* braille_dots_123 */ { 0x0100280f, 3831 }, /* braille_dots_1234 */ { 0x0100281f, 3849 }, /* braille_dots_12345 */ { 0x0100283f, 3868 }, /* braille_dots_123456 */ { 0x0100287f, 3888 }, /* braille_dots_1234567 */ { 0x010028ff, 3909 }, /* braille_dots_12345678 */ { 0x010028bf, 3931 }, /* braille_dots_1234568 */ { 0x0100285f, 3952 }, /* braille_dots_123457 */ { 0x010028df, 3972 }, /* braille_dots_1234578 */ { 0x0100289f, 3993 }, /* braille_dots_123458 */ { 0x0100282f, 4013 }, /* braille_dots_12346 */ { 0x0100286f, 4032 }, /* braille_dots_123467 */ { 0x010028ef, 4052 }, /* braille_dots_1234678 */ { 0x010028af, 4073 }, /* braille_dots_123468 */ { 0x0100284f, 4093 }, /* braille_dots_12347 */ { 0x010028cf, 4112 }, /* braille_dots_123478 */ { 0x0100288f, 4132 }, /* braille_dots_12348 */ { 0x01002817, 4151 }, /* braille_dots_1235 */ { 0x01002837, 4169 }, /* braille_dots_12356 */ { 0x01002877, 4188 }, /* braille_dots_123567 */ { 0x010028f7, 4208 }, /* braille_dots_1235678 */ { 0x010028b7, 4229 }, /* braille_dots_123568 */ { 0x01002857, 4249 }, /* braille_dots_12357 */ { 0x010028d7, 4268 }, /* braille_dots_123578 */ { 0x01002897, 4288 }, /* braille_dots_12358 */ { 0x01002827, 4307 }, /* braille_dots_1236 */ { 0x01002867, 4325 }, /* braille_dots_12367 */ { 0x010028e7, 4344 }, /* braille_dots_123678 */ { 0x010028a7, 4364 }, /* braille_dots_12368 */ { 0x01002847, 4383 }, /* braille_dots_1237 */ { 0x010028c7, 4401 }, /* braille_dots_12378 */ { 0x01002887, 4420 }, /* braille_dots_1238 */ { 0x0100280b, 4438 }, /* braille_dots_124 */ { 0x0100281b, 4455 }, /* braille_dots_1245 */ { 0x0100283b, 4473 }, /* braille_dots_12456 */ { 0x0100287b, 4492 }, /* braille_dots_124567 */ { 0x010028fb, 4512 }, /* braille_dots_1245678 */ { 0x010028bb, 4533 }, /* braille_dots_124568 */ { 0x0100285b, 4553 }, /* braille_dots_12457 */ { 0x010028db, 4572 }, /* braille_dots_124578 */ { 0x0100289b, 4592 }, /* braille_dots_12458 */ { 0x0100282b, 4611 }, /* braille_dots_1246 */ { 0x0100286b, 4629 }, /* braille_dots_12467 */ { 0x010028eb, 4648 }, /* braille_dots_124678 */ { 0x010028ab, 4668 }, /* braille_dots_12468 */ { 0x0100284b, 4687 }, /* braille_dots_1247 */ { 0x010028cb, 4705 }, /* braille_dots_12478 */ { 0x0100288b, 4724 }, /* braille_dots_1248 */ { 0x01002813, 4742 }, /* braille_dots_125 */ { 0x01002833, 4759 }, /* braille_dots_1256 */ { 0x01002873, 4777 }, /* braille_dots_12567 */ { 0x010028f3, 4796 }, /* braille_dots_125678 */ { 0x010028b3, 4816 }, /* braille_dots_12568 */ { 0x01002853, 4835 }, /* braille_dots_1257 */ { 0x010028d3, 4853 }, /* braille_dots_12578 */ { 0x01002893, 4872 }, /* braille_dots_1258 */ { 0x01002823, 4890 }, /* braille_dots_126 */ { 0x01002863, 4907 }, /* braille_dots_1267 */ { 0x010028e3, 4925 }, /* braille_dots_12678 */ { 0x010028a3, 4944 }, /* braille_dots_1268 */ { 0x01002843, 4962 }, /* braille_dots_127 */ { 0x010028c3, 4979 }, /* braille_dots_1278 */ { 0x01002883, 4997 }, /* braille_dots_128 */ { 0x01002805, 5014 }, /* braille_dots_13 */ { 0x0100280d, 5030 }, /* braille_dots_134 */ { 0x0100281d, 5047 }, /* braille_dots_1345 */ { 0x0100283d, 5065 }, /* braille_dots_13456 */ { 0x0100287d, 5084 }, /* braille_dots_134567 */ { 0x010028fd, 5104 }, /* braille_dots_1345678 */ { 0x010028bd, 5125 }, /* braille_dots_134568 */ { 0x0100285d, 5145 }, /* braille_dots_13457 */ { 0x010028dd, 5164 }, /* braille_dots_134578 */ { 0x0100289d, 5184 }, /* braille_dots_13458 */ { 0x0100282d, 5203 }, /* braille_dots_1346 */ { 0x0100286d, 5221 }, /* braille_dots_13467 */ { 0x010028ed, 5240 }, /* braille_dots_134678 */ { 0x010028ad, 5260 }, /* braille_dots_13468 */ { 0x0100284d, 5279 }, /* braille_dots_1347 */ { 0x010028cd, 5297 }, /* braille_dots_13478 */ { 0x0100288d, 5316 }, /* braille_dots_1348 */ { 0x01002815, 5334 }, /* braille_dots_135 */ { 0x01002835, 5351 }, /* braille_dots_1356 */ { 0x01002875, 5369 }, /* braille_dots_13567 */ { 0x010028f5, 5388 }, /* braille_dots_135678 */ { 0x010028b5, 5408 }, /* braille_dots_13568 */ { 0x01002855, 5427 }, /* braille_dots_1357 */ { 0x010028d5, 5445 }, /* braille_dots_13578 */ { 0x01002895, 5464 }, /* braille_dots_1358 */ { 0x01002825, 5482 }, /* braille_dots_136 */ { 0x01002865, 5499 }, /* braille_dots_1367 */ { 0x010028e5, 5517 }, /* braille_dots_13678 */ { 0x010028a5, 5536 }, /* braille_dots_1368 */ { 0x01002845, 5554 }, /* braille_dots_137 */ { 0x010028c5, 5571 }, /* braille_dots_1378 */ { 0x01002885, 5589 }, /* braille_dots_138 */ { 0x01002809, 5606 }, /* braille_dots_14 */ { 0x01002819, 5622 }, /* braille_dots_145 */ { 0x01002839, 5639 }, /* braille_dots_1456 */ { 0x01002879, 5657 }, /* braille_dots_14567 */ { 0x010028f9, 5676 }, /* braille_dots_145678 */ { 0x010028b9, 5696 }, /* braille_dots_14568 */ { 0x01002859, 5715 }, /* braille_dots_1457 */ { 0x010028d9, 5733 }, /* braille_dots_14578 */ { 0x01002899, 5752 }, /* braille_dots_1458 */ { 0x01002829, 5770 }, /* braille_dots_146 */ { 0x01002869, 5787 }, /* braille_dots_1467 */ { 0x010028e9, 5805 }, /* braille_dots_14678 */ { 0x010028a9, 5824 }, /* braille_dots_1468 */ { 0x01002849, 5842 }, /* braille_dots_147 */ { 0x010028c9, 5859 }, /* braille_dots_1478 */ { 0x01002889, 5877 }, /* braille_dots_148 */ { 0x01002811, 5894 }, /* braille_dots_15 */ { 0x01002831, 5910 }, /* braille_dots_156 */ { 0x01002871, 5927 }, /* braille_dots_1567 */ { 0x010028f1, 5945 }, /* braille_dots_15678 */ { 0x010028b1, 5964 }, /* braille_dots_1568 */ { 0x01002851, 5982 }, /* braille_dots_157 */ { 0x010028d1, 5999 }, /* braille_dots_1578 */ { 0x01002891, 6017 }, /* braille_dots_158 */ { 0x01002821, 6034 }, /* braille_dots_16 */ { 0x01002861, 6050 }, /* braille_dots_167 */ { 0x010028e1, 6067 }, /* braille_dots_1678 */ { 0x010028a1, 6085 }, /* braille_dots_168 */ { 0x01002841, 6102 }, /* braille_dots_17 */ { 0x010028c1, 6118 }, /* braille_dots_178 */ { 0x01002881, 6135 }, /* braille_dots_18 */ { 0x01002802, 6151 }, /* braille_dots_2 */ { 0x01002806, 6166 }, /* braille_dots_23 */ { 0x0100280e, 6182 }, /* braille_dots_234 */ { 0x0100281e, 6199 }, /* braille_dots_2345 */ { 0x0100283e, 6217 }, /* braille_dots_23456 */ { 0x0100287e, 6236 }, /* braille_dots_234567 */ { 0x010028fe, 6256 }, /* braille_dots_2345678 */ { 0x010028be, 6277 }, /* braille_dots_234568 */ { 0x0100285e, 6297 }, /* braille_dots_23457 */ { 0x010028de, 6316 }, /* braille_dots_234578 */ { 0x0100289e, 6336 }, /* braille_dots_23458 */ { 0x0100282e, 6355 }, /* braille_dots_2346 */ { 0x0100286e, 6373 }, /* braille_dots_23467 */ { 0x010028ee, 6392 }, /* braille_dots_234678 */ { 0x010028ae, 6412 }, /* braille_dots_23468 */ { 0x0100284e, 6431 }, /* braille_dots_2347 */ { 0x010028ce, 6449 }, /* braille_dots_23478 */ { 0x0100288e, 6468 }, /* braille_dots_2348 */ { 0x01002816, 6486 }, /* braille_dots_235 */ { 0x01002836, 6503 }, /* braille_dots_2356 */ { 0x01002876, 6521 }, /* braille_dots_23567 */ { 0x010028f6, 6540 }, /* braille_dots_235678 */ { 0x010028b6, 6560 }, /* braille_dots_23568 */ { 0x01002856, 6579 }, /* braille_dots_2357 */ { 0x010028d6, 6597 }, /* braille_dots_23578 */ { 0x01002896, 6616 }, /* braille_dots_2358 */ { 0x01002826, 6634 }, /* braille_dots_236 */ { 0x01002866, 6651 }, /* braille_dots_2367 */ { 0x010028e6, 6669 }, /* braille_dots_23678 */ { 0x010028a6, 6688 }, /* braille_dots_2368 */ { 0x01002846, 6706 }, /* braille_dots_237 */ { 0x010028c6, 6723 }, /* braille_dots_2378 */ { 0x01002886, 6741 }, /* braille_dots_238 */ { 0x0100280a, 6758 }, /* braille_dots_24 */ { 0x0100281a, 6774 }, /* braille_dots_245 */ { 0x0100283a, 6791 }, /* braille_dots_2456 */ { 0x0100287a, 6809 }, /* braille_dots_24567 */ { 0x010028fa, 6828 }, /* braille_dots_245678 */ { 0x010028ba, 6848 }, /* braille_dots_24568 */ { 0x0100285a, 6867 }, /* braille_dots_2457 */ { 0x010028da, 6885 }, /* braille_dots_24578 */ { 0x0100289a, 6904 }, /* braille_dots_2458 */ { 0x0100282a, 6922 }, /* braille_dots_246 */ { 0x0100286a, 6939 }, /* braille_dots_2467 */ { 0x010028ea, 6957 }, /* braille_dots_24678 */ { 0x010028aa, 6976 }, /* braille_dots_2468 */ { 0x0100284a, 6994 }, /* braille_dots_247 */ { 0x010028ca, 7011 }, /* braille_dots_2478 */ { 0x0100288a, 7029 }, /* braille_dots_248 */ { 0x01002812, 7046 }, /* braille_dots_25 */ { 0x01002832, 7062 }, /* braille_dots_256 */ { 0x01002872, 7079 }, /* braille_dots_2567 */ { 0x010028f2, 7097 }, /* braille_dots_25678 */ { 0x010028b2, 7116 }, /* braille_dots_2568 */ { 0x01002852, 7134 }, /* braille_dots_257 */ { 0x010028d2, 7151 }, /* braille_dots_2578 */ { 0x01002892, 7169 }, /* braille_dots_258 */ { 0x01002822, 7186 }, /* braille_dots_26 */ { 0x01002862, 7202 }, /* braille_dots_267 */ { 0x010028e2, 7219 }, /* braille_dots_2678 */ { 0x010028a2, 7237 }, /* braille_dots_268 */ { 0x01002842, 7254 }, /* braille_dots_27 */ { 0x010028c2, 7270 }, /* braille_dots_278 */ { 0x01002882, 7287 }, /* braille_dots_28 */ { 0x01002804, 7303 }, /* braille_dots_3 */ { 0x0100280c, 7318 }, /* braille_dots_34 */ { 0x0100281c, 7334 }, /* braille_dots_345 */ { 0x0100283c, 7351 }, /* braille_dots_3456 */ { 0x0100287c, 7369 }, /* braille_dots_34567 */ { 0x010028fc, 7388 }, /* braille_dots_345678 */ { 0x010028bc, 7408 }, /* braille_dots_34568 */ { 0x0100285c, 7427 }, /* braille_dots_3457 */ { 0x010028dc, 7445 }, /* braille_dots_34578 */ { 0x0100289c, 7464 }, /* braille_dots_3458 */ { 0x0100282c, 7482 }, /* braille_dots_346 */ { 0x0100286c, 7499 }, /* braille_dots_3467 */ { 0x010028ec, 7517 }, /* braille_dots_34678 */ { 0x010028ac, 7536 }, /* braille_dots_3468 */ { 0x0100284c, 7554 }, /* braille_dots_347 */ { 0x010028cc, 7571 }, /* braille_dots_3478 */ { 0x0100288c, 7589 }, /* braille_dots_348 */ { 0x01002814, 7606 }, /* braille_dots_35 */ { 0x01002834, 7622 }, /* braille_dots_356 */ { 0x01002874, 7639 }, /* braille_dots_3567 */ { 0x010028f4, 7657 }, /* braille_dots_35678 */ { 0x010028b4, 7676 }, /* braille_dots_3568 */ { 0x01002854, 7694 }, /* braille_dots_357 */ { 0x010028d4, 7711 }, /* braille_dots_3578 */ { 0x01002894, 7729 }, /* braille_dots_358 */ { 0x01002824, 7746 }, /* braille_dots_36 */ { 0x01002864, 7762 }, /* braille_dots_367 */ { 0x010028e4, 7779 }, /* braille_dots_3678 */ { 0x010028a4, 7797 }, /* braille_dots_368 */ { 0x01002844, 7814 }, /* braille_dots_37 */ { 0x010028c4, 7830 }, /* braille_dots_378 */ { 0x01002884, 7847 }, /* braille_dots_38 */ { 0x01002808, 7863 }, /* braille_dots_4 */ { 0x01002818, 7878 }, /* braille_dots_45 */ { 0x01002838, 7894 }, /* braille_dots_456 */ { 0x01002878, 7911 }, /* braille_dots_4567 */ { 0x010028f8, 7929 }, /* braille_dots_45678 */ { 0x010028b8, 7948 }, /* braille_dots_4568 */ { 0x01002858, 7966 }, /* braille_dots_457 */ { 0x010028d8, 7983 }, /* braille_dots_4578 */ { 0x01002898, 8001 }, /* braille_dots_458 */ { 0x01002828, 8018 }, /* braille_dots_46 */ { 0x01002868, 8034 }, /* braille_dots_467 */ { 0x010028e8, 8051 }, /* braille_dots_4678 */ { 0x010028a8, 8069 }, /* braille_dots_468 */ { 0x01002848, 8086 }, /* braille_dots_47 */ { 0x010028c8, 8102 }, /* braille_dots_478 */ { 0x01002888, 8119 }, /* braille_dots_48 */ { 0x01002810, 8135 }, /* braille_dots_5 */ { 0x01002830, 8150 }, /* braille_dots_56 */ { 0x01002870, 8166 }, /* braille_dots_567 */ { 0x010028f0, 8183 }, /* braille_dots_5678 */ { 0x010028b0, 8201 }, /* braille_dots_568 */ { 0x01002850, 8218 }, /* braille_dots_57 */ { 0x010028d0, 8234 }, /* braille_dots_578 */ { 0x01002890, 8251 }, /* braille_dots_58 */ { 0x01002820, 8267 }, /* braille_dots_6 */ { 0x01002860, 8282 }, /* braille_dots_67 */ { 0x010028e0, 8298 }, /* braille_dots_678 */ { 0x010028a0, 8315 }, /* braille_dots_68 */ { 0x01002840, 8331 }, /* braille_dots_7 */ { 0x010028c0, 8346 }, /* braille_dots_78 */ { 0x01002880, 8362 }, /* braille_dots_8 */ { 0x0000ff6b, 8377 }, /* Break */ { 0x000001a2, 8383 }, /* breve */ { 0x000000a6, 8389 }, /* brokenbar */ { 0x000006ae, 8399 }, /* Byelorussian_shortu */ { 0x000006be, 8419 }, /* Byelorussian_SHORTU */ { 0x00000043, 8439 }, /* C */ { 0x00000063, 8441 }, /* c */ { 0x0000fea3, 8443 }, /* c_h */ { 0x0000fea4, 8447 }, /* C_h */ { 0x0000fea5, 8451 }, /* C_H */ { 0x000002c5, 8455 }, /* Cabovedot */ { 0x000002e5, 8465 }, /* cabovedot */ { 0x000001c6, 8475 }, /* Cacute */ { 0x000001e6, 8482 }, /* cacute */ { 0x0000ff69, 8489 }, /* Cancel */ { 0x0000ffe5, 8496 }, /* Caps_Lock */ { 0x00000ab8, 8506 }, /* careof */ { 0x00000afc, 8513 }, /* caret */ { 0x000001b7, 8519 }, /* caron */ { 0x000001c8, 8525 }, /* Ccaron */ { 0x000001e8, 8532 }, /* ccaron */ { 0x000000c7, 8539 }, /* Ccedilla */ { 0x000000e7, 8548 }, /* ccedilla */ { 0x000002c6, 8557 }, /* Ccircumflex */ { 0x000002e6, 8569 }, /* ccircumflex */ { 0x000000b8, 8581 }, /* cedilla */ { 0x000000a2, 8589 }, /* cent */ { 0x0000fea0, 8594 }, /* ch */ { 0x0000fea1, 8597 }, /* Ch */ { 0x0000fea2, 8600 }, /* CH */ { 0x000009e1, 8603 }, /* checkerboard */ { 0x00000af3, 8616 }, /* checkmark */ { 0x00000bcf, 8626 }, /* circle */ { 0x0000ff0b, 8633 }, /* Clear */ { 0x1000ff6f, 8639 }, /* ClearLine */ { 0x00000aec, 8649 }, /* club */ { 0x0000ff37, 8654 }, /* Codeinput */ { 0x0000003a, 8664 }, /* colon */ { 0x010020a1, 8670 }, /* ColonSign */ { 0x0000002c, 8680 }, /* comma */ { 0x0100220b, 8686 }, /* containsas */ { 0x0000ffe3, 8697 }, /* Control_L */ { 0x0000ffe4, 8707 }, /* Control_R */ { 0x000000a9, 8717 }, /* copyright */ { 0x000009e4, 8727 }, /* cr */ { 0x000009ee, 8730 }, /* crossinglines */ { 0x010020a2, 8744 }, /* CruzeiroSign */ { 0x0100221b, 8757 }, /* cuberoot */ { 0x000000a4, 8766 }, /* currency */ { 0x00000aff, 8775 }, /* cursor */ { 0x000006c1, 8782 }, /* Cyrillic_a */ { 0x000006e1, 8793 }, /* Cyrillic_A */ { 0x000006c2, 8804 }, /* Cyrillic_be */ { 0x000006e2, 8816 }, /* Cyrillic_BE */ { 0x000006de, 8828 }, /* Cyrillic_che */ { 0x000006fe, 8841 }, /* Cyrillic_CHE */ { 0x010004b6, 8854 }, /* Cyrillic_CHE_descender */ { 0x010004b7, 8877 }, /* Cyrillic_che_descender */ { 0x010004b8, 8900 }, /* Cyrillic_CHE_vertstroke */ { 0x010004b9, 8924 }, /* Cyrillic_che_vertstroke */ { 0x000006c4, 8948 }, /* Cyrillic_de */ { 0x000006e4, 8960 }, /* Cyrillic_DE */ { 0x000006af, 8972 }, /* Cyrillic_dzhe */ { 0x000006bf, 8986 }, /* Cyrillic_DZHE */ { 0x000006dc, 9000 }, /* Cyrillic_e */ { 0x000006fc, 9011 }, /* Cyrillic_E */ { 0x000006c6, 9022 }, /* Cyrillic_ef */ { 0x000006e6, 9034 }, /* Cyrillic_EF */ { 0x000006cc, 9046 }, /* Cyrillic_el */ { 0x000006ec, 9058 }, /* Cyrillic_EL */ { 0x000006cd, 9070 }, /* Cyrillic_em */ { 0x000006ed, 9082 }, /* Cyrillic_EM */ { 0x000006ce, 9094 }, /* Cyrillic_en */ { 0x000006ee, 9106 }, /* Cyrillic_EN */ { 0x010004a2, 9118 }, /* Cyrillic_EN_descender */ { 0x010004a3, 9140 }, /* Cyrillic_en_descender */ { 0x000006d2, 9162 }, /* Cyrillic_er */ { 0x000006f2, 9174 }, /* Cyrillic_ER */ { 0x000006d3, 9186 }, /* Cyrillic_es */ { 0x000006f3, 9198 }, /* Cyrillic_ES */ { 0x000006c7, 9210 }, /* Cyrillic_ghe */ { 0x000006e7, 9223 }, /* Cyrillic_GHE */ { 0x01000492, 9236 }, /* Cyrillic_GHE_bar */ { 0x01000493, 9253 }, /* Cyrillic_ghe_bar */ { 0x000006c8, 9270 }, /* Cyrillic_ha */ { 0x000006e8, 9282 }, /* Cyrillic_HA */ { 0x010004b2, 9294 }, /* Cyrillic_HA_descender */ { 0x010004b3, 9316 }, /* Cyrillic_ha_descender */ { 0x000006df, 9338 }, /* Cyrillic_hardsign */ { 0x000006ff, 9356 }, /* Cyrillic_HARDSIGN */ { 0x000006c9, 9374 }, /* Cyrillic_i */ { 0x000006e9, 9385 }, /* Cyrillic_I */ { 0x010004e2, 9396 }, /* Cyrillic_I_macron */ { 0x010004e3, 9414 }, /* Cyrillic_i_macron */ { 0x000006c5, 9432 }, /* Cyrillic_ie */ { 0x000006e5, 9444 }, /* Cyrillic_IE */ { 0x000006a3, 9456 }, /* Cyrillic_io */ { 0x000006b3, 9468 }, /* Cyrillic_IO */ { 0x000006a8, 9480 }, /* Cyrillic_je */ { 0x000006b8, 9492 }, /* Cyrillic_JE */ { 0x000006cb, 9504 }, /* Cyrillic_ka */ { 0x000006eb, 9516 }, /* Cyrillic_KA */ { 0x0100049a, 9528 }, /* Cyrillic_KA_descender */ { 0x0100049b, 9550 }, /* Cyrillic_ka_descender */ { 0x0100049c, 9572 }, /* Cyrillic_KA_vertstroke */ { 0x0100049d, 9595 }, /* Cyrillic_ka_vertstroke */ { 0x000006a9, 9618 }, /* Cyrillic_lje */ { 0x000006b9, 9631 }, /* Cyrillic_LJE */ { 0x000006aa, 9644 }, /* Cyrillic_nje */ { 0x000006ba, 9657 }, /* Cyrillic_NJE */ { 0x000006cf, 9670 }, /* Cyrillic_o */ { 0x000006ef, 9681 }, /* Cyrillic_O */ { 0x010004e8, 9692 }, /* Cyrillic_O_bar */ { 0x010004e9, 9707 }, /* Cyrillic_o_bar */ { 0x000006d0, 9722 }, /* Cyrillic_pe */ { 0x000006f0, 9734 }, /* Cyrillic_PE */ { 0x010004d8, 9746 }, /* Cyrillic_SCHWA */ { 0x010004d9, 9761 }, /* Cyrillic_schwa */ { 0x000006db, 9776 }, /* Cyrillic_sha */ { 0x000006fb, 9789 }, /* Cyrillic_SHA */ { 0x000006dd, 9802 }, /* Cyrillic_shcha */ { 0x000006fd, 9817 }, /* Cyrillic_SHCHA */ { 0x010004ba, 9832 }, /* Cyrillic_SHHA */ { 0x010004bb, 9846 }, /* Cyrillic_shha */ { 0x000006ca, 9860 }, /* Cyrillic_shorti */ { 0x000006ea, 9876 }, /* Cyrillic_SHORTI */ { 0x000006d8, 9892 }, /* Cyrillic_softsign */ { 0x000006f8, 9910 }, /* Cyrillic_SOFTSIGN */ { 0x000006d4, 9928 }, /* Cyrillic_te */ { 0x000006f4, 9940 }, /* Cyrillic_TE */ { 0x000006c3, 9952 }, /* Cyrillic_tse */ { 0x000006e3, 9965 }, /* Cyrillic_TSE */ { 0x000006d5, 9978 }, /* Cyrillic_u */ { 0x000006f5, 9989 }, /* Cyrillic_U */ { 0x010004ee, 10000 }, /* Cyrillic_U_macron */ { 0x010004ef, 10018 }, /* Cyrillic_u_macron */ { 0x010004ae, 10036 }, /* Cyrillic_U_straight */ { 0x010004af, 10056 }, /* Cyrillic_u_straight */ { 0x010004b0, 10076 }, /* Cyrillic_U_straight_bar */ { 0x010004b1, 10100 }, /* Cyrillic_u_straight_bar */ { 0x000006d7, 10124 }, /* Cyrillic_ve */ { 0x000006f7, 10136 }, /* Cyrillic_VE */ { 0x000006d1, 10148 }, /* Cyrillic_ya */ { 0x000006f1, 10160 }, /* Cyrillic_YA */ { 0x000006d9, 10172 }, /* Cyrillic_yeru */ { 0x000006f9, 10186 }, /* Cyrillic_YERU */ { 0x000006c0, 10200 }, /* Cyrillic_yu */ { 0x000006e0, 10212 }, /* Cyrillic_YU */ { 0x000006da, 10224 }, /* Cyrillic_ze */ { 0x000006fa, 10236 }, /* Cyrillic_ZE */ { 0x000006d6, 10248 }, /* Cyrillic_zhe */ { 0x000006f6, 10261 }, /* Cyrillic_ZHE */ { 0x01000496, 10274 }, /* Cyrillic_ZHE_descender */ { 0x01000497, 10297 }, /* Cyrillic_zhe_descender */ { 0x00000044, 10320 }, /* D */ { 0x00000064, 10322 }, /* d */ { 0x01001e0a, 10324 }, /* Dabovedot */ { 0x01001e0b, 10334 }, /* dabovedot */ { 0x1000fe27, 10344 }, /* Dacute_accent */ { 0x00000af1, 10358 }, /* dagger */ { 0x000001cf, 10365 }, /* Dcaron */ { 0x000001ef, 10372 }, /* dcaron */ { 0x1000fe2c, 10379 }, /* Dcedilla_accent */ { 0x1000fe5e, 10395 }, /* Dcircumflex_accent */ { 0x1000fe22, 10414 }, /* Ddiaeresis */ { 0x0000fe80, 10425 }, /* dead_a */ { 0x0000fe81, 10432 }, /* dead_A */ { 0x0000fe64, 10439 }, /* dead_abovecomma */ { 0x0000fe56, 10455 }, /* dead_abovedot */ { 0x0000fe65, 10469 }, /* dead_abovereversedcomma */ { 0x0000fe58, 10493 }, /* dead_abovering */ { 0x0000fe91, 10508 }, /* dead_aboveverticalline */ { 0x0000fe51, 10531 }, /* dead_acute */ { 0x0000fe6b, 10542 }, /* dead_belowbreve */ { 0x0000fe69, 10558 }, /* dead_belowcircumflex */ { 0x0000fe6e, 10579 }, /* dead_belowcomma */ { 0x0000fe6c, 10595 }, /* dead_belowdiaeresis */ { 0x0000fe60, 10615 }, /* dead_belowdot */ { 0x0000fe68, 10629 }, /* dead_belowmacron */ { 0x0000fe67, 10646 }, /* dead_belowring */ { 0x0000fe6a, 10661 }, /* dead_belowtilde */ { 0x0000fe92, 10677 }, /* dead_belowverticalline */ { 0x0000fe55, 10700 }, /* dead_breve */ { 0x0000fe8b, 10711 }, /* dead_capital_schwa */ { 0x0000fe5a, 10730 }, /* dead_caron */ { 0x0000fe5b, 10741 }, /* dead_cedilla */ { 0x0000fe52, 10754 }, /* dead_circumflex */ { 0x0000fe6f, 10770 }, /* dead_currency */ { 0x0000fe65, 10784 }, /* dead_dasia */ { 0x0000fe57, 10795 }, /* dead_diaeresis */ { 0x0000fe59, 10810 }, /* dead_doubleacute */ { 0x0000fe66, 10827 }, /* dead_doublegrave */ { 0x0000fe82, 10844 }, /* dead_e */ { 0x0000fe83, 10851 }, /* dead_E */ { 0x0000fe50, 10858 }, /* dead_grave */ { 0x0000fe8c, 10869 }, /* dead_greek */ { 0x0000fe61, 10880 }, /* dead_hook */ { 0x0000fe62, 10890 }, /* dead_horn */ { 0x0000fe84, 10900 }, /* dead_i */ { 0x0000fe85, 10907 }, /* dead_I */ { 0x0000fe6d, 10914 }, /* dead_invertedbreve */ { 0x0000fe5d, 10933 }, /* dead_iota */ { 0x0000fe93, 10943 }, /* dead_longsolidusoverlay */ { 0x0000fe90, 10967 }, /* dead_lowline */ { 0x0000fe54, 10980 }, /* dead_macron */ { 0x0000fe86, 10992 }, /* dead_o */ { 0x0000fe87, 10999 }, /* dead_O */ { 0x0000fe5c, 11006 }, /* dead_ogonek */ { 0x0000fe53, 11018 }, /* dead_perispomeni */ { 0x0000fe64, 11035 }, /* dead_psili */ { 0x0000fe5f, 11046 }, /* dead_semivoiced_sound */ { 0x0000fe8a, 11068 }, /* dead_small_schwa */ { 0x0000fe63, 11085 }, /* dead_stroke */ { 0x0000fe53, 11097 }, /* dead_tilde */ { 0x0000fe88, 11108 }, /* dead_u */ { 0x0000fe89, 11115 }, /* dead_U */ { 0x0000fe5e, 11122 }, /* dead_voiced_sound */ { 0x00000abd, 11140 }, /* decimalpoint */ { 0x000000b0, 11153 }, /* degree */ { 0x0000ffff, 11160 }, /* Delete */ { 0x1000ff73, 11167 }, /* DeleteChar */ { 0x1000ff71, 11178 }, /* DeleteLine */ { 0x1000fe60, 11189 }, /* Dgrave_accent */ { 0x000000a8, 11203 }, /* diaeresis */ { 0x00000aed, 11213 }, /* diamond */ { 0x00000aa5, 11221 }, /* digitspace */ { 0x0100222c, 11232 }, /* dintegral */ { 0x000000f7, 11242 }, /* division */ { 0x00000024, 11251 }, /* dollar */ { 0x010020ab, 11258 }, /* DongSign */ { 0x00000aaf, 11267 }, /* doubbaselinedot */ { 0x000001bd, 11283 }, /* doubleacute */ { 0x00000af2, 11295 }, /* doubledagger */ { 0x00000afe, 11308 }, /* doublelowquotemark */ { 0x0000ff54, 11327 }, /* Down */ { 0x000008fe, 11332 }, /* downarrow */ { 0x00000ba8, 11342 }, /* downcaret */ { 0x00000bd6, 11352 }, /* downshoe */ { 0x00000bc4, 11361 }, /* downstile */ { 0x00000bc2, 11371 }, /* downtack */ { 0x1000ff00, 11380 }, /* DRemove */ { 0x1000feb0, 11388 }, /* Dring_accent */ { 0x000001d0, 11401 }, /* Dstroke */ { 0x000001f0, 11409 }, /* dstroke */ { 0x1000fe7e, 11417 }, /* Dtilde */ { 0x00000045, 11424 }, /* E */ { 0x00000065, 11426 }, /* e */ { 0x000003cc, 11428 }, /* Eabovedot */ { 0x000003ec, 11438 }, /* eabovedot */ { 0x000000c9, 11448 }, /* Eacute */ { 0x000000e9, 11455 }, /* eacute */ { 0x01001eb8, 11462 }, /* Ebelowdot */ { 0x01001eb9, 11472 }, /* ebelowdot */ { 0x000001cc, 11482 }, /* Ecaron */ { 0x000001ec, 11489 }, /* ecaron */ { 0x000000ca, 11496 }, /* Ecircumflex */ { 0x000000ea, 11508 }, /* ecircumflex */ { 0x01001ebe, 11520 }, /* Ecircumflexacute */ { 0x01001ebf, 11537 }, /* ecircumflexacute */ { 0x01001ec6, 11554 }, /* Ecircumflexbelowdot */ { 0x01001ec7, 11574 }, /* ecircumflexbelowdot */ { 0x01001ec0, 11594 }, /* Ecircumflexgrave */ { 0x01001ec1, 11611 }, /* ecircumflexgrave */ { 0x01001ec2, 11628 }, /* Ecircumflexhook */ { 0x01001ec3, 11644 }, /* ecircumflexhook */ { 0x01001ec4, 11660 }, /* Ecircumflextilde */ { 0x01001ec5, 11677 }, /* ecircumflextilde */ { 0x010020a0, 11694 }, /* EcuSign */ { 0x000000cb, 11702 }, /* Ediaeresis */ { 0x000000eb, 11713 }, /* ediaeresis */ { 0x000000c8, 11724 }, /* Egrave */ { 0x000000e8, 11731 }, /* egrave */ { 0x01001eba, 11738 }, /* Ehook */ { 0x01001ebb, 11744 }, /* ehook */ { 0x01002088, 11750 }, /* eightsubscript */ { 0x01002078, 11765 }, /* eightsuperior */ { 0x0000ff2f, 11779 }, /* Eisu_Shift */ { 0x0000ff30, 11790 }, /* Eisu_toggle */ { 0x01002208, 11802 }, /* elementof */ { 0x00000aae, 11812 }, /* ellipsis */ { 0x00000aa3, 11821 }, /* em3space */ { 0x00000aa4, 11830 }, /* em4space */ { 0x000003aa, 11839 }, /* Emacron */ { 0x000003ba, 11847 }, /* emacron */ { 0x00000aa9, 11855 }, /* emdash */ { 0x00000ade, 11862 }, /* emfilledcircle */ { 0x00000adf, 11877 }, /* emfilledrect */ { 0x00000ace, 11890 }, /* emopencircle */ { 0x00000acf, 11903 }, /* emopenrectangle */ { 0x01002205, 11919 }, /* emptyset */ { 0x00000aa1, 11928 }, /* emspace */ { 0x0000ff57, 11936 }, /* End */ { 0x00000aaa, 11940 }, /* endash */ { 0x00000ae6, 11947 }, /* enfilledcircbullet */ { 0x00000ae7, 11966 }, /* enfilledsqbullet */ { 0x000003bd, 11983 }, /* ENG */ { 0x000003bf, 11987 }, /* eng */ { 0x00000ae0, 11991 }, /* enopencircbullet */ { 0x00000ae1, 12008 }, /* enopensquarebullet */ { 0x00000aa2, 12027 }, /* enspace */ { 0x000001ca, 12035 }, /* Eogonek */ { 0x000001ea, 12043 }, /* eogonek */ { 0x0000003d, 12051 }, /* equal */ { 0x0000ff1b, 12057 }, /* Escape */ { 0x000000d0, 12064 }, /* ETH */ { 0x000000d0, 12068 }, /* Eth */ { 0x000000f0, 12072 }, /* eth */ { 0x01001ebc, 12076 }, /* Etilde */ { 0x01001ebd, 12083 }, /* etilde */ { 0x000020ac, 12090 }, /* EuroSign */ { 0x00000021, 12099 }, /* exclam */ { 0x000000a1, 12106 }, /* exclamdown */ { 0x0000ff62, 12117 }, /* Execute */ { 0x1000ff76, 12125 }, /* Ext16bit_L */ { 0x1000ff77, 12136 }, /* Ext16bit_R */ { 0x010001b7, 12147 }, /* EZH */ { 0x01000292, 12151 }, /* ezh */ { 0x00000046, 12155 }, /* F */ { 0x00000066, 12157 }, /* f */ { 0x0000ffbe, 12159 }, /* F1 */ { 0x0000ffc7, 12162 }, /* F10 */ { 0x0000ffc8, 12166 }, /* F11 */ { 0x0000ffc9, 12170 }, /* F12 */ { 0x0000ffca, 12174 }, /* F13 */ { 0x0000ffcb, 12178 }, /* F14 */ { 0x0000ffcc, 12182 }, /* F15 */ { 0x0000ffcd, 12186 }, /* F16 */ { 0x0000ffce, 12190 }, /* F17 */ { 0x0000ffcf, 12194 }, /* F18 */ { 0x0000ffd0, 12198 }, /* F19 */ { 0x0000ffbf, 12202 }, /* F2 */ { 0x0000ffd1, 12205 }, /* F20 */ { 0x0000ffd2, 12209 }, /* F21 */ { 0x0000ffd3, 12213 }, /* F22 */ { 0x0000ffd4, 12217 }, /* F23 */ { 0x0000ffd5, 12221 }, /* F24 */ { 0x0000ffd6, 12225 }, /* F25 */ { 0x0000ffd7, 12229 }, /* F26 */ { 0x0000ffd8, 12233 }, /* F27 */ { 0x0000ffd9, 12237 }, /* F28 */ { 0x0000ffda, 12241 }, /* F29 */ { 0x0000ffc0, 12245 }, /* F3 */ { 0x0000ffdb, 12248 }, /* F30 */ { 0x0000ffdc, 12252 }, /* F31 */ { 0x0000ffdd, 12256 }, /* F32 */ { 0x0000ffde, 12260 }, /* F33 */ { 0x0000ffdf, 12264 }, /* F34 */ { 0x0000ffe0, 12268 }, /* F35 */ { 0x0000ffc1, 12272 }, /* F4 */ { 0x0000ffc2, 12275 }, /* F5 */ { 0x0000ffc3, 12278 }, /* F6 */ { 0x0000ffc4, 12281 }, /* F7 */ { 0x0000ffc5, 12284 }, /* F8 */ { 0x0000ffc6, 12287 }, /* F9 */ { 0x01001e1e, 12290 }, /* Fabovedot */ { 0x01001e1f, 12300 }, /* fabovedot */ { 0x010006f0, 12310 }, /* Farsi_0 */ { 0x010006f1, 12318 }, /* Farsi_1 */ { 0x010006f2, 12326 }, /* Farsi_2 */ { 0x010006f3, 12334 }, /* Farsi_3 */ { 0x010006f4, 12342 }, /* Farsi_4 */ { 0x010006f5, 12350 }, /* Farsi_5 */ { 0x010006f6, 12358 }, /* Farsi_6 */ { 0x010006f7, 12366 }, /* Farsi_7 */ { 0x010006f8, 12374 }, /* Farsi_8 */ { 0x010006f9, 12382 }, /* Farsi_9 */ { 0x010006cc, 12390 }, /* Farsi_yeh */ { 0x00000af8, 12400 }, /* femalesymbol */ { 0x000009e3, 12413 }, /* ff */ { 0x010020a3, 12416 }, /* FFrancSign */ { 0x00000abb, 12427 }, /* figdash */ { 0x00000adc, 12435 }, /* filledlefttribullet */ { 0x00000adb, 12455 }, /* filledrectbullet */ { 0x00000add, 12472 }, /* filledrighttribullet */ { 0x00000ae9, 12493 }, /* filledtribulletdown */ { 0x00000ae8, 12513 }, /* filledtribulletup */ { 0x0000ff68, 12531 }, /* Find */ { 0x0000fed0, 12536 }, /* First_Virtual_Screen */ { 0x00000ac5, 12557 }, /* fiveeighths */ { 0x00000ab7, 12569 }, /* fivesixths */ { 0x01002085, 12580 }, /* fivesubscript */ { 0x01002075, 12594 }, /* fivesuperior */ { 0x00000ab5, 12607 }, /* fourfifths */ { 0x01002084, 12618 }, /* foursubscript */ { 0x01002074, 12632 }, /* foursuperior */ { 0x0100221c, 12645 }, /* fourthroot */ { 0x000008f6, 12656 }, /* function */ { 0x00000047, 12665 }, /* G */ { 0x00000067, 12667 }, /* g */ { 0x000002d5, 12669 }, /* Gabovedot */ { 0x000002f5, 12679 }, /* gabovedot */ { 0x000002ab, 12689 }, /* Gbreve */ { 0x000002bb, 12696 }, /* gbreve */ { 0x010001e6, 12703 }, /* Gcaron */ { 0x010001e7, 12710 }, /* gcaron */ { 0x000003ab, 12717 }, /* Gcedilla */ { 0x000003bb, 12726 }, /* gcedilla */ { 0x000002d8, 12735 }, /* Gcircumflex */ { 0x000002f8, 12747 }, /* gcircumflex */ { 0x010010d0, 12759 }, /* Georgian_an */ { 0x010010d1, 12771 }, /* Georgian_ban */ { 0x010010ea, 12784 }, /* Georgian_can */ { 0x010010ed, 12797 }, /* Georgian_char */ { 0x010010e9, 12811 }, /* Georgian_chin */ { 0x010010ec, 12825 }, /* Georgian_cil */ { 0x010010d3, 12838 }, /* Georgian_don */ { 0x010010d4, 12851 }, /* Georgian_en */ { 0x010010f6, 12863 }, /* Georgian_fi */ { 0x010010d2, 12875 }, /* Georgian_gan */ { 0x010010e6, 12888 }, /* Georgian_ghan */ { 0x010010f0, 12902 }, /* Georgian_hae */ { 0x010010f4, 12915 }, /* Georgian_har */ { 0x010010f1, 12928 }, /* Georgian_he */ { 0x010010f2, 12940 }, /* Georgian_hie */ { 0x010010f5, 12953 }, /* Georgian_hoe */ { 0x010010d8, 12966 }, /* Georgian_in */ { 0x010010ef, 12978 }, /* Georgian_jhan */ { 0x010010eb, 12992 }, /* Georgian_jil */ { 0x010010d9, 13005 }, /* Georgian_kan */ { 0x010010e5, 13018 }, /* Georgian_khar */ { 0x010010da, 13032 }, /* Georgian_las */ { 0x010010db, 13045 }, /* Georgian_man */ { 0x010010dc, 13058 }, /* Georgian_nar */ { 0x010010dd, 13071 }, /* Georgian_on */ { 0x010010de, 13083 }, /* Georgian_par */ { 0x010010e4, 13096 }, /* Georgian_phar */ { 0x010010e7, 13110 }, /* Georgian_qar */ { 0x010010e0, 13123 }, /* Georgian_rae */ { 0x010010e1, 13136 }, /* Georgian_san */ { 0x010010e8, 13149 }, /* Georgian_shin */ { 0x010010d7, 13163 }, /* Georgian_tan */ { 0x010010e2, 13176 }, /* Georgian_tar */ { 0x010010e3, 13189 }, /* Georgian_un */ { 0x010010d5, 13201 }, /* Georgian_vin */ { 0x010010f3, 13214 }, /* Georgian_we */ { 0x010010ee, 13226 }, /* Georgian_xan */ { 0x010010d6, 13239 }, /* Georgian_zen */ { 0x010010df, 13252 }, /* Georgian_zhar */ { 0x00000060, 13266 }, /* grave */ { 0x0000003e, 13272 }, /* greater */ { 0x000008be, 13280 }, /* greaterthanequal */ { 0x000007ae, 13297 }, /* Greek_accentdieresis */ { 0x000007c1, 13318 }, /* Greek_ALPHA */ { 0x000007e1, 13330 }, /* Greek_alpha */ { 0x000007a1, 13342 }, /* Greek_ALPHAaccent */ { 0x000007b1, 13360 }, /* Greek_alphaaccent */ { 0x000007c2, 13378 }, /* Greek_BETA */ { 0x000007e2, 13389 }, /* Greek_beta */ { 0x000007d7, 13400 }, /* Greek_CHI */ { 0x000007f7, 13410 }, /* Greek_chi */ { 0x000007c4, 13420 }, /* Greek_DELTA */ { 0x000007e4, 13432 }, /* Greek_delta */ { 0x000007c5, 13444 }, /* Greek_EPSILON */ { 0x000007e5, 13458 }, /* Greek_epsilon */ { 0x000007a2, 13472 }, /* Greek_EPSILONaccent */ { 0x000007b2, 13492 }, /* Greek_epsilonaccent */ { 0x000007c7, 13512 }, /* Greek_ETA */ { 0x000007e7, 13522 }, /* Greek_eta */ { 0x000007a3, 13532 }, /* Greek_ETAaccent */ { 0x000007b3, 13548 }, /* Greek_etaaccent */ { 0x000007f3, 13564 }, /* Greek_finalsmallsigma */ { 0x000007c3, 13586 }, /* Greek_GAMMA */ { 0x000007e3, 13598 }, /* Greek_gamma */ { 0x000007af, 13610 }, /* Greek_horizbar */ { 0x000007c9, 13625 }, /* Greek_IOTA */ { 0x000007e9, 13636 }, /* Greek_iota */ { 0x000007a4, 13647 }, /* Greek_IOTAaccent */ { 0x000007b4, 13664 }, /* Greek_iotaaccent */ { 0x000007b6, 13681 }, /* Greek_iotaaccentdieresis */ { 0x000007a5, 13706 }, /* Greek_IOTAdiaeresis */ { 0x000007a5, 13726 }, /* Greek_IOTAdieresis */ { 0x000007b5, 13745 }, /* Greek_iotadieresis */ { 0x000007ca, 13764 }, /* Greek_KAPPA */ { 0x000007ea, 13776 }, /* Greek_kappa */ { 0x000007cb, 13788 }, /* Greek_LAMBDA */ { 0x000007eb, 13801 }, /* Greek_lambda */ { 0x000007cb, 13814 }, /* Greek_LAMDA */ { 0x000007eb, 13826 }, /* Greek_lamda */ { 0x000007cc, 13838 }, /* Greek_MU */ { 0x000007ec, 13847 }, /* Greek_mu */ { 0x000007cd, 13856 }, /* Greek_NU */ { 0x000007ed, 13865 }, /* Greek_nu */ { 0x000007d9, 13874 }, /* Greek_OMEGA */ { 0x000007f9, 13886 }, /* Greek_omega */ { 0x000007ab, 13898 }, /* Greek_OMEGAaccent */ { 0x000007bb, 13916 }, /* Greek_omegaaccent */ { 0x000007cf, 13934 }, /* Greek_OMICRON */ { 0x000007ef, 13948 }, /* Greek_omicron */ { 0x000007a7, 13962 }, /* Greek_OMICRONaccent */ { 0x000007b7, 13982 }, /* Greek_omicronaccent */ { 0x000007d6, 14002 }, /* Greek_PHI */ { 0x000007f6, 14012 }, /* Greek_phi */ { 0x000007d0, 14022 }, /* Greek_PI */ { 0x000007f0, 14031 }, /* Greek_pi */ { 0x000007d8, 14040 }, /* Greek_PSI */ { 0x000007f8, 14050 }, /* Greek_psi */ { 0x000007d1, 14060 }, /* Greek_RHO */ { 0x000007f1, 14070 }, /* Greek_rho */ { 0x000007d2, 14080 }, /* Greek_SIGMA */ { 0x000007f2, 14092 }, /* Greek_sigma */ { 0x0000ff7e, 14104 }, /* Greek_switch */ { 0x000007d4, 14117 }, /* Greek_TAU */ { 0x000007f4, 14127 }, /* Greek_tau */ { 0x000007c8, 14137 }, /* Greek_THETA */ { 0x000007e8, 14149 }, /* Greek_theta */ { 0x000007d5, 14161 }, /* Greek_UPSILON */ { 0x000007f5, 14175 }, /* Greek_upsilon */ { 0x000007a8, 14189 }, /* Greek_UPSILONaccent */ { 0x000007b8, 14209 }, /* Greek_upsilonaccent */ { 0x000007ba, 14229 }, /* Greek_upsilonaccentdieresis */ { 0x000007a9, 14257 }, /* Greek_UPSILONdieresis */ { 0x000007b9, 14279 }, /* Greek_upsilondieresis */ { 0x000007ce, 14301 }, /* Greek_XI */ { 0x000007ee, 14310 }, /* Greek_xi */ { 0x000007c6, 14319 }, /* Greek_ZETA */ { 0x000007e6, 14330 }, /* Greek_zeta */ { 0x100000be, 14341 }, /* guilder */ { 0x000000ab, 14349 }, /* guillemotleft */ { 0x000000bb, 14363 }, /* guillemotright */ { 0x00000048, 14378 }, /* H */ { 0x00000068, 14380 }, /* h */ { 0x00000aa8, 14382 }, /* hairspace */ { 0x0000ff31, 14392 }, /* Hangul */ { 0x00000ebf, 14399 }, /* Hangul_A */ { 0x00000ec0, 14408 }, /* Hangul_AE */ { 0x00000ef6, 14418 }, /* Hangul_AraeA */ { 0x00000ef7, 14431 }, /* Hangul_AraeAE */ { 0x0000ff39, 14445 }, /* Hangul_Banja */ { 0x00000eba, 14458 }, /* Hangul_Cieuc */ { 0x0000ff37, 14471 }, /* Hangul_Codeinput */ { 0x00000ea7, 14488 }, /* Hangul_Dikeud */ { 0x00000ec4, 14502 }, /* Hangul_E */ { 0x0000ff33, 14511 }, /* Hangul_End */ { 0x00000ec3, 14522 }, /* Hangul_EO */ { 0x00000ed1, 14532 }, /* Hangul_EU */ { 0x0000ff34, 14542 }, /* Hangul_Hanja */ { 0x00000ebe, 14555 }, /* Hangul_Hieuh */ { 0x00000ed3, 14568 }, /* Hangul_I */ { 0x00000eb7, 14577 }, /* Hangul_Ieung */ { 0x00000eea, 14590 }, /* Hangul_J_Cieuc */ { 0x00000eda, 14605 }, /* Hangul_J_Dikeud */ { 0x00000eee, 14621 }, /* Hangul_J_Hieuh */ { 0x00000ee8, 14636 }, /* Hangul_J_Ieung */ { 0x00000ee9, 14651 }, /* Hangul_J_Jieuj */ { 0x00000eeb, 14666 }, /* Hangul_J_Khieuq */ { 0x00000ed4, 14682 }, /* Hangul_J_Kiyeog */ { 0x00000ed6, 14698 }, /* Hangul_J_KiyeogSios */ { 0x00000ef9, 14718 }, /* Hangul_J_KkogjiDalrinIeung */ { 0x00000ee3, 14745 }, /* Hangul_J_Mieum */ { 0x00000ed7, 14760 }, /* Hangul_J_Nieun */ { 0x00000ed9, 14775 }, /* Hangul_J_NieunHieuh */ { 0x00000ed8, 14795 }, /* Hangul_J_NieunJieuj */ { 0x00000ef8, 14815 }, /* Hangul_J_PanSios */ { 0x00000eed, 14832 }, /* Hangul_J_Phieuf */ { 0x00000ee4, 14848 }, /* Hangul_J_Pieub */ { 0x00000ee5, 14863 }, /* Hangul_J_PieubSios */ { 0x00000edb, 14882 }, /* Hangul_J_Rieul */ { 0x00000ee2, 14897 }, /* Hangul_J_RieulHieuh */ { 0x00000edc, 14917 }, /* Hangul_J_RieulKiyeog */ { 0x00000edd, 14938 }, /* Hangul_J_RieulMieum */ { 0x00000ee1, 14958 }, /* Hangul_J_RieulPhieuf */ { 0x00000ede, 14979 }, /* Hangul_J_RieulPieub */ { 0x00000edf, 14999 }, /* Hangul_J_RieulSios */ { 0x00000ee0, 15018 }, /* Hangul_J_RieulTieut */ { 0x00000ee6, 15038 }, /* Hangul_J_Sios */ { 0x00000ed5, 15052 }, /* Hangul_J_SsangKiyeog */ { 0x00000ee7, 15073 }, /* Hangul_J_SsangSios */ { 0x00000eec, 15092 }, /* Hangul_J_Tieut */ { 0x00000efa, 15107 }, /* Hangul_J_YeorinHieuh */ { 0x0000ff35, 15128 }, /* Hangul_Jamo */ { 0x0000ff38, 15140 }, /* Hangul_Jeonja */ { 0x00000eb8, 15154 }, /* Hangul_Jieuj */ { 0x00000ebb, 15167 }, /* Hangul_Khieuq */ { 0x00000ea1, 15181 }, /* Hangul_Kiyeog */ { 0x00000ea3, 15195 }, /* Hangul_KiyeogSios */ { 0x00000ef3, 15213 }, /* Hangul_KkogjiDalrinIeung */ { 0x00000eb1, 15238 }, /* Hangul_Mieum */ { 0x0000ff3d, 15251 }, /* Hangul_MultipleCandidate */ { 0x00000ea4, 15276 }, /* Hangul_Nieun */ { 0x00000ea6, 15289 }, /* Hangul_NieunHieuh */ { 0x00000ea5, 15307 }, /* Hangul_NieunJieuj */ { 0x00000ec7, 15325 }, /* Hangul_O */ { 0x00000eca, 15334 }, /* Hangul_OE */ { 0x00000ef2, 15344 }, /* Hangul_PanSios */ { 0x00000ebd, 15359 }, /* Hangul_Phieuf */ { 0x00000eb2, 15373 }, /* Hangul_Pieub */ { 0x00000eb4, 15386 }, /* Hangul_PieubSios */ { 0x0000ff3b, 15403 }, /* Hangul_PostHanja */ { 0x0000ff3a, 15420 }, /* Hangul_PreHanja */ { 0x0000ff3e, 15436 }, /* Hangul_PreviousCandidate */ { 0x00000ea9, 15461 }, /* Hangul_Rieul */ { 0x00000eb0, 15474 }, /* Hangul_RieulHieuh */ { 0x00000eaa, 15492 }, /* Hangul_RieulKiyeog */ { 0x00000eab, 15511 }, /* Hangul_RieulMieum */ { 0x00000eaf, 15529 }, /* Hangul_RieulPhieuf */ { 0x00000eac, 15548 }, /* Hangul_RieulPieub */ { 0x00000ead, 15566 }, /* Hangul_RieulSios */ { 0x00000eae, 15583 }, /* Hangul_RieulTieut */ { 0x00000eef, 15601 }, /* Hangul_RieulYeorinHieuh */ { 0x0000ff36, 15625 }, /* Hangul_Romaja */ { 0x0000ff3c, 15639 }, /* Hangul_SingleCandidate */ { 0x00000eb5, 15662 }, /* Hangul_Sios */ { 0x0000ff3f, 15674 }, /* Hangul_Special */ { 0x00000ea8, 15689 }, /* Hangul_SsangDikeud */ { 0x00000eb9, 15708 }, /* Hangul_SsangJieuj */ { 0x00000ea2, 15726 }, /* Hangul_SsangKiyeog */ { 0x00000eb3, 15745 }, /* Hangul_SsangPieub */ { 0x00000eb6, 15763 }, /* Hangul_SsangSios */ { 0x0000ff32, 15780 }, /* Hangul_Start */ { 0x00000ef0, 15793 }, /* Hangul_SunkyeongeumMieum */ { 0x00000ef4, 15818 }, /* Hangul_SunkyeongeumPhieuf */ { 0x00000ef1, 15844 }, /* Hangul_SunkyeongeumPieub */ { 0x0000ff7e, 15869 }, /* Hangul_switch */ { 0x00000ebc, 15883 }, /* Hangul_Tieut */ { 0x00000ecc, 15896 }, /* Hangul_U */ { 0x00000ec8, 15905 }, /* Hangul_WA */ { 0x00000ec9, 15915 }, /* Hangul_WAE */ { 0x00000ece, 15926 }, /* Hangul_WE */ { 0x00000ecd, 15936 }, /* Hangul_WEO */ { 0x00000ecf, 15947 }, /* Hangul_WI */ { 0x00000ec1, 15957 }, /* Hangul_YA */ { 0x00000ec2, 15967 }, /* Hangul_YAE */ { 0x00000ec6, 15978 }, /* Hangul_YE */ { 0x00000ec5, 15988 }, /* Hangul_YEO */ { 0x00000ef5, 15999 }, /* Hangul_YeorinHieuh */ { 0x00000ed2, 16018 }, /* Hangul_YI */ { 0x00000ecb, 16028 }, /* Hangul_YO */ { 0x00000ed0, 16038 }, /* Hangul_YU */ { 0x0000ff29, 16048 }, /* Hankaku */ { 0x000002a6, 16056 }, /* Hcircumflex */ { 0x000002b6, 16068 }, /* hcircumflex */ { 0x00000aee, 16080 }, /* heart */ { 0x00000ce0, 16086 }, /* hebrew_aleph */ { 0x00000cf2, 16099 }, /* hebrew_ayin */ { 0x00000ce1, 16111 }, /* hebrew_bet */ { 0x00000ce1, 16122 }, /* hebrew_beth */ { 0x00000ce7, 16134 }, /* hebrew_chet */ { 0x00000ce3, 16146 }, /* hebrew_dalet */ { 0x00000ce3, 16159 }, /* hebrew_daleth */ { 0x00000cdf, 16173 }, /* hebrew_doublelowline */ { 0x00000cea, 16194 }, /* hebrew_finalkaph */ { 0x00000ced, 16211 }, /* hebrew_finalmem */ { 0x00000cef, 16227 }, /* hebrew_finalnun */ { 0x00000cf3, 16243 }, /* hebrew_finalpe */ { 0x00000cf5, 16258 }, /* hebrew_finalzade */ { 0x00000cf5, 16275 }, /* hebrew_finalzadi */ { 0x00000ce2, 16292 }, /* hebrew_gimel */ { 0x00000ce2, 16305 }, /* hebrew_gimmel */ { 0x00000ce4, 16319 }, /* hebrew_he */ { 0x00000ce7, 16329 }, /* hebrew_het */ { 0x00000ceb, 16340 }, /* hebrew_kaph */ { 0x00000cf7, 16352 }, /* hebrew_kuf */ { 0x00000cec, 16363 }, /* hebrew_lamed */ { 0x00000cee, 16376 }, /* hebrew_mem */ { 0x00000cf0, 16387 }, /* hebrew_nun */ { 0x00000cf4, 16398 }, /* hebrew_pe */ { 0x00000cf7, 16408 }, /* hebrew_qoph */ { 0x00000cf8, 16420 }, /* hebrew_resh */ { 0x00000cf1, 16432 }, /* hebrew_samech */ { 0x00000cf1, 16446 }, /* hebrew_samekh */ { 0x00000cf9, 16460 }, /* hebrew_shin */ { 0x0000ff7e, 16472 }, /* Hebrew_switch */ { 0x00000cfa, 16486 }, /* hebrew_taf */ { 0x00000cfa, 16497 }, /* hebrew_taw */ { 0x00000ce8, 16508 }, /* hebrew_tet */ { 0x00000ce8, 16519 }, /* hebrew_teth */ { 0x00000ce5, 16531 }, /* hebrew_waw */ { 0x00000ce9, 16542 }, /* hebrew_yod */ { 0x00000cf6, 16553 }, /* hebrew_zade */ { 0x00000cf6, 16565 }, /* hebrew_zadi */ { 0x00000ce6, 16577 }, /* hebrew_zain */ { 0x00000ce6, 16589 }, /* hebrew_zayin */ { 0x0000ff6a, 16602 }, /* Help */ { 0x0000ff23, 16607 }, /* Henkan */ { 0x0000ff23, 16614 }, /* Henkan_Mode */ { 0x00000ada, 16626 }, /* hexagram */ { 0x0000ff25, 16635 }, /* Hiragana */ { 0x0000ff27, 16644 }, /* Hiragana_Katakana */ { 0x0000ff50, 16662 }, /* Home */ { 0x000008a3, 16667 }, /* horizconnector */ { 0x000009ef, 16682 }, /* horizlinescan1 */ { 0x000009f0, 16697 }, /* horizlinescan3 */ { 0x000009f1, 16712 }, /* horizlinescan5 */ { 0x000009f2, 16727 }, /* horizlinescan7 */ { 0x000009f3, 16742 }, /* horizlinescan9 */ { 0x1000ff74, 16757 }, /* hpBackTab */ { 0x100000fc, 16767 }, /* hpblock */ { 0x1000ff6f, 16775 }, /* hpClearLine */ { 0x1000ff73, 16787 }, /* hpDeleteChar */ { 0x1000ff71, 16800 }, /* hpDeleteLine */ { 0x100000be, 16813 }, /* hpguilder */ { 0x1000ff72, 16823 }, /* hpInsertChar */ { 0x1000ff70, 16836 }, /* hpInsertLine */ { 0x100000ee, 16849 }, /* hpIO */ { 0x1000ff75, 16854 }, /* hpKP_BackTab */ { 0x100000af, 16867 }, /* hplira */ { 0x100000f6, 16874 }, /* hplongminus */ { 0x1000ff48, 16886 }, /* hpModelock1 */ { 0x1000ff49, 16898 }, /* hpModelock2 */ { 0x100000a8, 16910 }, /* hpmute_acute */ { 0x100000aa, 16923 }, /* hpmute_asciicircum */ { 0x100000ac, 16942 }, /* hpmute_asciitilde */ { 0x100000ab, 16960 }, /* hpmute_diaeresis */ { 0x100000a9, 16977 }, /* hpmute_grave */ { 0x1000ff6c, 16990 }, /* hpReset */ { 0x1000ff6d, 16998 }, /* hpSystem */ { 0x1000ff6e, 17007 }, /* hpUser */ { 0x100000ee, 17014 }, /* hpYdiaeresis */ { 0x000002a1, 17027 }, /* Hstroke */ { 0x000002b1, 17035 }, /* hstroke */ { 0x000009e2, 17043 }, /* ht */ { 0x0000ffed, 17046 }, /* Hyper_L */ { 0x0000ffee, 17054 }, /* Hyper_R */ { 0x000000ad, 17062 }, /* hyphen */ { 0x00000049, 17069 }, /* I */ { 0x00000069, 17071 }, /* i */ { 0x000002a9, 17073 }, /* Iabovedot */ { 0x000000cd, 17083 }, /* Iacute */ { 0x000000ed, 17090 }, /* iacute */ { 0x01001eca, 17097 }, /* Ibelowdot */ { 0x01001ecb, 17107 }, /* ibelowdot */ { 0x0100012c, 17117 }, /* Ibreve */ { 0x0100012d, 17124 }, /* ibreve */ { 0x000000ce, 17131 }, /* Icircumflex */ { 0x000000ee, 17143 }, /* icircumflex */ { 0x000008cf, 17155 }, /* identical */ { 0x000000cf, 17165 }, /* Idiaeresis */ { 0x000000ef, 17176 }, /* idiaeresis */ { 0x000002b9, 17187 }, /* idotless */ { 0x000008cd, 17196 }, /* ifonlyif */ { 0x000000cc, 17205 }, /* Igrave */ { 0x000000ec, 17212 }, /* igrave */ { 0x01001ec8, 17219 }, /* Ihook */ { 0x01001ec9, 17225 }, /* ihook */ { 0x000003cf, 17231 }, /* Imacron */ { 0x000003ef, 17239 }, /* imacron */ { 0x000008ce, 17247 }, /* implies */ { 0x000008da, 17255 }, /* includedin */ { 0x000008db, 17266 }, /* includes */ { 0x000008c2, 17275 }, /* infinity */ { 0x0000ff63, 17284 }, /* Insert */ { 0x1000ff72, 17291 }, /* InsertChar */ { 0x1000ff70, 17302 }, /* InsertLine */ { 0x000008bf, 17313 }, /* integral */ { 0x000008dc, 17322 }, /* intersection */ { 0x100000ee, 17335 }, /* IO */ { 0x000003c7, 17338 }, /* Iogonek */ { 0x000003e7, 17346 }, /* iogonek */ { 0x0000fe33, 17354 }, /* ISO_Center_Object */ { 0x0000fe30, 17372 }, /* ISO_Continuous_Underline */ { 0x0000fe31, 17397 }, /* ISO_Discontinuous_Underline */ { 0x0000fe32, 17425 }, /* ISO_Emphasize */ { 0x0000fe34, 17439 }, /* ISO_Enter */ { 0x0000fe2f, 17449 }, /* ISO_Fast_Cursor_Down */ { 0x0000fe2c, 17470 }, /* ISO_Fast_Cursor_Left */ { 0x0000fe2d, 17491 }, /* ISO_Fast_Cursor_Right */ { 0x0000fe2e, 17513 }, /* ISO_Fast_Cursor_Up */ { 0x0000fe0c, 17532 }, /* ISO_First_Group */ { 0x0000fe0d, 17548 }, /* ISO_First_Group_Lock */ { 0x0000fe06, 17569 }, /* ISO_Group_Latch */ { 0x0000fe07, 17585 }, /* ISO_Group_Lock */ { 0x0000ff7e, 17600 }, /* ISO_Group_Shift */ { 0x0000fe0e, 17616 }, /* ISO_Last_Group */ { 0x0000fe0f, 17631 }, /* ISO_Last_Group_Lock */ { 0x0000fe20, 17651 }, /* ISO_Left_Tab */ { 0x0000fe02, 17664 }, /* ISO_Level2_Latch */ { 0x0000fe04, 17681 }, /* ISO_Level3_Latch */ { 0x0000fe05, 17698 }, /* ISO_Level3_Lock */ { 0x0000fe03, 17714 }, /* ISO_Level3_Shift */ { 0x0000fe12, 17731 }, /* ISO_Level5_Latch */ { 0x0000fe13, 17748 }, /* ISO_Level5_Lock */ { 0x0000fe11, 17764 }, /* ISO_Level5_Shift */ { 0x0000fe01, 17781 }, /* ISO_Lock */ { 0x0000fe22, 17790 }, /* ISO_Move_Line_Down */ { 0x0000fe21, 17809 }, /* ISO_Move_Line_Up */ { 0x0000fe08, 17826 }, /* ISO_Next_Group */ { 0x0000fe09, 17841 }, /* ISO_Next_Group_Lock */ { 0x0000fe24, 17861 }, /* ISO_Partial_Line_Down */ { 0x0000fe23, 17883 }, /* ISO_Partial_Line_Up */ { 0x0000fe25, 17903 }, /* ISO_Partial_Space_Left */ { 0x0000fe26, 17926 }, /* ISO_Partial_Space_Right */ { 0x0000fe0a, 17950 }, /* ISO_Prev_Group */ { 0x0000fe0b, 17965 }, /* ISO_Prev_Group_Lock */ { 0x0000fe2b, 17985 }, /* ISO_Release_Both_Margins */ { 0x0000fe29, 18010 }, /* ISO_Release_Margin_Left */ { 0x0000fe2a, 18034 }, /* ISO_Release_Margin_Right */ { 0x0000fe27, 18059 }, /* ISO_Set_Margin_Left */ { 0x0000fe28, 18079 }, /* ISO_Set_Margin_Right */ { 0x000003a5, 18100 }, /* Itilde */ { 0x000003b5, 18107 }, /* itilde */ { 0x0000004a, 18114 }, /* J */ { 0x0000006a, 18116 }, /* j */ { 0x000002ac, 18118 }, /* Jcircumflex */ { 0x000002bc, 18130 }, /* jcircumflex */ { 0x00000bca, 18142 }, /* jot */ { 0x0000004b, 18146 }, /* K */ { 0x0000006b, 18148 }, /* k */ { 0x000004a7, 18150 }, /* kana_a */ { 0x000004b1, 18157 }, /* kana_A */ { 0x000004c1, 18164 }, /* kana_CHI */ { 0x000004a3, 18173 }, /* kana_closingbracket */ { 0x000004a4, 18193 }, /* kana_comma */ { 0x000004a5, 18204 }, /* kana_conjunctive */ { 0x000004aa, 18221 }, /* kana_e */ { 0x000004b4, 18228 }, /* kana_E */ { 0x000004cc, 18235 }, /* kana_FU */ { 0x000004a1, 18243 }, /* kana_fullstop */ { 0x000004ca, 18257 }, /* kana_HA */ { 0x000004cd, 18265 }, /* kana_HE */ { 0x000004cb, 18273 }, /* kana_HI */ { 0x000004ce, 18281 }, /* kana_HO */ { 0x000004cc, 18289 }, /* kana_HU */ { 0x000004a8, 18297 }, /* kana_i */ { 0x000004b2, 18304 }, /* kana_I */ { 0x000004b6, 18311 }, /* kana_KA */ { 0x000004b9, 18319 }, /* kana_KE */ { 0x000004b7, 18327 }, /* kana_KI */ { 0x000004ba, 18335 }, /* kana_KO */ { 0x000004b8, 18343 }, /* kana_KU */ { 0x0000ff2d, 18351 }, /* Kana_Lock */ { 0x000004cf, 18361 }, /* kana_MA */ { 0x000004d2, 18369 }, /* kana_ME */ { 0x000004d0, 18377 }, /* kana_MI */ { 0x000004a5, 18385 }, /* kana_middledot */ { 0x000004d3, 18400 }, /* kana_MO */ { 0x000004d1, 18408 }, /* kana_MU */ { 0x000004dd, 18416 }, /* kana_N */ { 0x000004c5, 18423 }, /* kana_NA */ { 0x000004c8, 18431 }, /* kana_NE */ { 0x000004c6, 18439 }, /* kana_NI */ { 0x000004c9, 18447 }, /* kana_NO */ { 0x000004c7, 18455 }, /* kana_NU */ { 0x000004ab, 18463 }, /* kana_o */ { 0x000004b5, 18470 }, /* kana_O */ { 0x000004a2, 18477 }, /* kana_openingbracket */ { 0x000004d7, 18497 }, /* kana_RA */ { 0x000004da, 18505 }, /* kana_RE */ { 0x000004d8, 18513 }, /* kana_RI */ { 0x000004db, 18521 }, /* kana_RO */ { 0x000004d9, 18529 }, /* kana_RU */ { 0x000004bb, 18537 }, /* kana_SA */ { 0x000004be, 18545 }, /* kana_SE */ { 0x000004bc, 18553 }, /* kana_SHI */ { 0x0000ff2e, 18562 }, /* Kana_Shift */ { 0x000004bf, 18573 }, /* kana_SO */ { 0x000004bd, 18581 }, /* kana_SU */ { 0x0000ff7e, 18589 }, /* kana_switch */ { 0x000004c0, 18601 }, /* kana_TA */ { 0x000004c3, 18609 }, /* kana_TE */ { 0x000004c1, 18617 }, /* kana_TI */ { 0x000004c4, 18625 }, /* kana_TO */ { 0x000004af, 18633 }, /* kana_tsu */ { 0x000004c2, 18642 }, /* kana_TSU */ { 0x000004af, 18651 }, /* kana_tu */ { 0x000004c2, 18659 }, /* kana_TU */ { 0x000004a9, 18667 }, /* kana_u */ { 0x000004b3, 18674 }, /* kana_U */ { 0x000004dc, 18681 }, /* kana_WA */ { 0x000004a6, 18689 }, /* kana_WO */ { 0x000004ac, 18697 }, /* kana_ya */ { 0x000004d4, 18705 }, /* kana_YA */ { 0x000004ae, 18713 }, /* kana_yo */ { 0x000004d6, 18721 }, /* kana_YO */ { 0x000004ad, 18729 }, /* kana_yu */ { 0x000004d5, 18737 }, /* kana_YU */ { 0x0000ff21, 18745 }, /* Kanji */ { 0x0000ff37, 18751 }, /* Kanji_Bangou */ { 0x000003a2, 18764 }, /* kappa */ { 0x0000ff26, 18770 }, /* Katakana */ { 0x000003d3, 18779 }, /* Kcedilla */ { 0x000003f3, 18788 }, /* kcedilla */ { 0x00000eff, 18797 }, /* Korean_Won */ { 0x0000ffb0, 18808 }, /* KP_0 */ { 0x0000ffb1, 18813 }, /* KP_1 */ { 0x0000ffb2, 18818 }, /* KP_2 */ { 0x0000ffb3, 18823 }, /* KP_3 */ { 0x0000ffb4, 18828 }, /* KP_4 */ { 0x0000ffb5, 18833 }, /* KP_5 */ { 0x0000ffb6, 18838 }, /* KP_6 */ { 0x0000ffb7, 18843 }, /* KP_7 */ { 0x0000ffb8, 18848 }, /* KP_8 */ { 0x0000ffb9, 18853 }, /* KP_9 */ { 0x0000ffab, 18858 }, /* KP_Add */ { 0x1000ff75, 18865 }, /* KP_BackTab */ { 0x0000ff9d, 18876 }, /* KP_Begin */ { 0x0000ffae, 18885 }, /* KP_Decimal */ { 0x0000ff9f, 18896 }, /* KP_Delete */ { 0x0000ffaf, 18906 }, /* KP_Divide */ { 0x0000ff99, 18916 }, /* KP_Down */ { 0x0000ff9c, 18924 }, /* KP_End */ { 0x0000ff8d, 18931 }, /* KP_Enter */ { 0x0000ffbd, 18940 }, /* KP_Equal */ { 0x0000ff91, 18949 }, /* KP_F1 */ { 0x0000ff92, 18955 }, /* KP_F2 */ { 0x0000ff93, 18961 }, /* KP_F3 */ { 0x0000ff94, 18967 }, /* KP_F4 */ { 0x0000ff95, 18973 }, /* KP_Home */ { 0x0000ff9e, 18981 }, /* KP_Insert */ { 0x0000ff96, 18991 }, /* KP_Left */ { 0x0000ffaa, 18999 }, /* KP_Multiply */ { 0x0000ff9b, 19011 }, /* KP_Next */ { 0x0000ff9b, 19019 }, /* KP_Page_Down */ { 0x0000ff9a, 19032 }, /* KP_Page_Up */ { 0x0000ff9a, 19043 }, /* KP_Prior */ { 0x0000ff98, 19052 }, /* KP_Right */ { 0x0000ffac, 19061 }, /* KP_Separator */ { 0x0000ff80, 19074 }, /* KP_Space */ { 0x0000ffad, 19083 }, /* KP_Subtract */ { 0x0000ff89, 19095 }, /* KP_Tab */ { 0x0000ff97, 19102 }, /* KP_Up */ { 0x000003a2, 19108 }, /* kra */ { 0x0000004c, 19112 }, /* L */ { 0x0000006c, 19114 }, /* l */ { 0x0000ffc8, 19116 }, /* L1 */ { 0x0000ffd1, 19119 }, /* L10 */ { 0x0000ffc9, 19123 }, /* L2 */ { 0x0000ffca, 19126 }, /* L3 */ { 0x0000ffcb, 19129 }, /* L4 */ { 0x0000ffcc, 19132 }, /* L5 */ { 0x0000ffcd, 19135 }, /* L6 */ { 0x0000ffce, 19138 }, /* L7 */ { 0x0000ffcf, 19141 }, /* L8 */ { 0x0000ffd0, 19144 }, /* L9 */ { 0x000001c5, 19147 }, /* Lacute */ { 0x000001e5, 19154 }, /* lacute */ { 0x0000fed4, 19161 }, /* Last_Virtual_Screen */ { 0x00000ad9, 19181 }, /* latincross */ { 0x01001e36, 19192 }, /* Lbelowdot */ { 0x01001e37, 19202 }, /* lbelowdot */ { 0x000001a5, 19212 }, /* Lcaron */ { 0x000001b5, 19219 }, /* lcaron */ { 0x000003a6, 19226 }, /* Lcedilla */ { 0x000003b6, 19235 }, /* lcedilla */ { 0x0000ff51, 19244 }, /* Left */ { 0x00000abc, 19249 }, /* leftanglebracket */ { 0x000008fb, 19266 }, /* leftarrow */ { 0x00000ba3, 19276 }, /* leftcaret */ { 0x00000ad2, 19286 }, /* leftdoublequotemark */ { 0x000008af, 19306 }, /* leftmiddlecurlybrace */ { 0x00000acc, 19327 }, /* leftopentriangle */ { 0x00000aea, 19344 }, /* leftpointer */ { 0x000008a1, 19356 }, /* leftradical */ { 0x00000bda, 19368 }, /* leftshoe */ { 0x00000ad0, 19377 }, /* leftsinglequotemark */ { 0x000009f4, 19397 }, /* leftt */ { 0x00000bdc, 19403 }, /* lefttack */ { 0x0000003c, 19412 }, /* less */ { 0x000008bc, 19417 }, /* lessthanequal */ { 0x000009e5, 19431 }, /* lf */ { 0x0000ff0a, 19434 }, /* Linefeed */ { 0x100000af, 19443 }, /* lira */ { 0x010020a4, 19448 }, /* LiraSign */ { 0x000008de, 19457 }, /* logicaland */ { 0x000008df, 19468 }, /* logicalor */ { 0x100000f6, 19478 }, /* longminus */ { 0x000009ed, 19488 }, /* lowleftcorner */ { 0x000009ea, 19502 }, /* lowrightcorner */ { 0x000001a3, 19517 }, /* Lstroke */ { 0x000001b3, 19525 }, /* lstroke */ { 0x0000004d, 19533 }, /* M */ { 0x0000006d, 19535 }, /* m */ { 0x01001e40, 19537 }, /* Mabovedot */ { 0x01001e41, 19547 }, /* mabovedot */ { 0x000006a5, 19557 }, /* Macedonia_dse */ { 0x000006b5, 19571 }, /* Macedonia_DSE */ { 0x000006a2, 19585 }, /* Macedonia_gje */ { 0x000006b2, 19599 }, /* Macedonia_GJE */ { 0x000006ac, 19613 }, /* Macedonia_kje */ { 0x000006bc, 19627 }, /* Macedonia_KJE */ { 0x000000af, 19641 }, /* macron */ { 0x0000ff3e, 19648 }, /* Mae_Koho */ { 0x00000af7, 19657 }, /* malesymbol */ { 0x00000af0, 19668 }, /* maltesecross */ { 0x00000abf, 19681 }, /* marker */ { 0x000000ba, 19688 }, /* masculine */ { 0x0000ff2c, 19698 }, /* Massyo */ { 0x0000ff67, 19705 }, /* Menu */ { 0x0000ffe7, 19710 }, /* Meta_L */ { 0x0000ffe8, 19717 }, /* Meta_R */ { 0x010020a5, 19724 }, /* MillSign */ { 0x0000002d, 19733 }, /* minus */ { 0x00000ad6, 19739 }, /* minutes */ { 0x0000ff7e, 19747 }, /* Mode_switch */ { 0x0000fe77, 19759 }, /* MouseKeys_Accel_Enable */ { 0x0000fe76, 19782 }, /* MouseKeys_Enable */ { 0x000000b5, 19799 }, /* mu */ { 0x0000ff22, 19802 }, /* Muhenkan */ { 0x0000ff20, 19811 }, /* Multi_key */ { 0x0000ff3d, 19821 }, /* MultipleCandidate */ { 0x000000d7, 19839 }, /* multiply */ { 0x00000af6, 19848 }, /* musicalflat */ { 0x00000af5, 19860 }, /* musicalsharp */ { 0x100000a8, 19873 }, /* mute_acute */ { 0x100000aa, 19884 }, /* mute_asciicircum */ { 0x100000ac, 19901 }, /* mute_asciitilde */ { 0x100000ab, 19917 }, /* mute_diaeresis */ { 0x100000a9, 19932 }, /* mute_grave */ { 0x0000004e, 19943 }, /* N */ { 0x0000006e, 19945 }, /* n */ { 0x000008c5, 19947 }, /* nabla */ { 0x000001d1, 19953 }, /* Nacute */ { 0x000001f1, 19960 }, /* nacute */ { 0x010020a6, 19967 }, /* NairaSign */ { 0x000001d2, 19977 }, /* Ncaron */ { 0x000001f2, 19984 }, /* ncaron */ { 0x000003d1, 19991 }, /* Ncedilla */ { 0x000003f1, 20000 }, /* ncedilla */ { 0x010020aa, 20009 }, /* NewSheqelSign */ { 0x0000ff56, 20023 }, /* Next */ { 0x0000fed2, 20028 }, /* Next_Virtual_Screen */ { 0x01002089, 20048 }, /* ninesubscript */ { 0x01002079, 20062 }, /* ninesuperior */ { 0x000009e8, 20075 }, /* nl */ { 0x000000a0, 20078 }, /* nobreakspace */ { 0x00000000, 20091 }, /* NoSymbol */ { 0x01002247, 20100 }, /* notapproxeq */ { 0x01002209, 20112 }, /* notelementof */ { 0x000008bd, 20125 }, /* notequal */ { 0x01002262, 20134 }, /* notidentical */ { 0x000000ac, 20147 }, /* notsign */ { 0x000000d1, 20155 }, /* Ntilde */ { 0x000000f1, 20162 }, /* ntilde */ { 0x0000ff7f, 20169 }, /* Num_Lock */ { 0x00000023, 20178 }, /* numbersign */ { 0x000006b0, 20189 }, /* numerosign */ { 0x0000004f, 20200 }, /* O */ { 0x0000006f, 20202 }, /* o */ { 0x000000d3, 20204 }, /* Oacute */ { 0x000000f3, 20211 }, /* oacute */ { 0x0100019f, 20218 }, /* Obarred */ { 0x01000275, 20226 }, /* obarred */ { 0x01001ecc, 20234 }, /* Obelowdot */ { 0x01001ecd, 20244 }, /* obelowdot */ { 0x010001d1, 20254 }, /* Ocaron */ { 0x010001d2, 20261 }, /* ocaron */ { 0x000000d4, 20268 }, /* Ocircumflex */ { 0x000000f4, 20280 }, /* ocircumflex */ { 0x01001ed0, 20292 }, /* Ocircumflexacute */ { 0x01001ed1, 20309 }, /* ocircumflexacute */ { 0x01001ed8, 20326 }, /* Ocircumflexbelowdot */ { 0x01001ed9, 20346 }, /* ocircumflexbelowdot */ { 0x01001ed2, 20366 }, /* Ocircumflexgrave */ { 0x01001ed3, 20383 }, /* ocircumflexgrave */ { 0x01001ed4, 20400 }, /* Ocircumflexhook */ { 0x01001ed5, 20416 }, /* ocircumflexhook */ { 0x01001ed6, 20432 }, /* Ocircumflextilde */ { 0x01001ed7, 20449 }, /* ocircumflextilde */ { 0x000000d6, 20466 }, /* Odiaeresis */ { 0x000000f6, 20477 }, /* odiaeresis */ { 0x000001d5, 20488 }, /* Odoubleacute */ { 0x000001f5, 20501 }, /* odoubleacute */ { 0x000013bc, 20514 }, /* OE */ { 0x000013bd, 20517 }, /* oe */ { 0x000001b2, 20520 }, /* ogonek */ { 0x000000d2, 20527 }, /* Ograve */ { 0x000000f2, 20534 }, /* ograve */ { 0x01001ece, 20541 }, /* Ohook */ { 0x01001ecf, 20547 }, /* ohook */ { 0x010001a0, 20553 }, /* Ohorn */ { 0x010001a1, 20559 }, /* ohorn */ { 0x01001eda, 20565 }, /* Ohornacute */ { 0x01001edb, 20576 }, /* ohornacute */ { 0x01001ee2, 20587 }, /* Ohornbelowdot */ { 0x01001ee3, 20601 }, /* ohornbelowdot */ { 0x01001edc, 20615 }, /* Ohorngrave */ { 0x01001edd, 20626 }, /* ohorngrave */ { 0x01001ede, 20637 }, /* Ohornhook */ { 0x01001edf, 20647 }, /* ohornhook */ { 0x01001ee0, 20657 }, /* Ohorntilde */ { 0x01001ee1, 20668 }, /* ohorntilde */ { 0x000003d2, 20679 }, /* Omacron */ { 0x000003f2, 20687 }, /* omacron */ { 0x00000ac3, 20695 }, /* oneeighth */ { 0x00000ab2, 20705 }, /* onefifth */ { 0x000000bd, 20714 }, /* onehalf */ { 0x000000bc, 20722 }, /* onequarter */ { 0x00000ab6, 20733 }, /* onesixth */ { 0x01002081, 20742 }, /* onesubscript */ { 0x000000b9, 20755 }, /* onesuperior */ { 0x00000ab0, 20767 }, /* onethird */ { 0x000000d8, 20776 }, /* Ooblique */ { 0x000000f8, 20785 }, /* ooblique */ { 0x00000ae2, 20794 }, /* openrectbullet */ { 0x00000ae5, 20809 }, /* openstar */ { 0x00000ae4, 20818 }, /* opentribulletdown */ { 0x00000ae3, 20836 }, /* opentribulletup */ { 0x000000aa, 20852 }, /* ordfeminine */ { 0x1004ff44, 20864 }, /* osfActivate */ { 0x1004ff31, 20876 }, /* osfAddMode */ { 0x1004ff08, 20887 }, /* osfBackSpace */ { 0x1004ff07, 20900 }, /* osfBackTab */ { 0x1004ff5a, 20911 }, /* osfBeginData */ { 0x1004ff58, 20924 }, /* osfBeginLine */ { 0x1004ff69, 20937 }, /* osfCancel */ { 0x1004ff0b, 20947 }, /* osfClear */ { 0x1004ff02, 20956 }, /* osfCopy */ { 0x1004ff03, 20964 }, /* osfCut */ { 0x1004ffff, 20971 }, /* osfDelete */ { 0x1004ff72, 20981 }, /* osfDeselectAll */ { 0x1004ff54, 20996 }, /* osfDown */ { 0x1004ff59, 21004 }, /* osfEndData */ { 0x1004ff57, 21015 }, /* osfEndLine */ { 0x1004ff1b, 21026 }, /* osfEscape */ { 0x1004ff74, 21036 }, /* osfExtend */ { 0x1004ff6a, 21046 }, /* osfHelp */ { 0x1004ff63, 21054 }, /* osfInsert */ { 0x1004ff51, 21064 }, /* osfLeft */ { 0x1004ff67, 21072 }, /* osfMenu */ { 0x1004ff45, 21080 }, /* osfMenuBar */ { 0x1004ff5e, 21091 }, /* osfNextField */ { 0x1004ff5c, 21104 }, /* osfNextMenu */ { 0x1004ff42, 21116 }, /* osfPageDown */ { 0x1004ff40, 21128 }, /* osfPageLeft */ { 0x1004ff43, 21140 }, /* osfPageRight */ { 0x1004ff41, 21153 }, /* osfPageUp */ { 0x1004ff04, 21163 }, /* osfPaste */ { 0x1004ff5d, 21172 }, /* osfPrevField */ { 0x1004ff5b, 21185 }, /* osfPrevMenu */ { 0x1004ff32, 21197 }, /* osfPrimaryPaste */ { 0x1004ff33, 21213 }, /* osfQuickPaste */ { 0x1004ff73, 21227 }, /* osfReselect */ { 0x1004ff78, 21239 }, /* osfRestore */ { 0x1004ff53, 21250 }, /* osfRight */ { 0x1004ff60, 21259 }, /* osfSelect */ { 0x1004ff71, 21269 }, /* osfSelectAll */ { 0x1004ff65, 21282 }, /* osfUndo */ { 0x1004ff52, 21290 }, /* osfUp */ { 0x000000d8, 21296 }, /* Oslash */ { 0x000000f8, 21303 }, /* oslash */ { 0x000000d5, 21310 }, /* Otilde */ { 0x000000f5, 21317 }, /* otilde */ { 0x00000bc0, 21324 }, /* overbar */ { 0x0000fe78, 21332 }, /* Overlay1_Enable */ { 0x0000fe79, 21348 }, /* Overlay2_Enable */ { 0x0000047e, 21364 }, /* overline */ { 0x00000050, 21373 }, /* P */ { 0x00000070, 21375 }, /* p */ { 0x01001e56, 21377 }, /* Pabovedot */ { 0x01001e57, 21387 }, /* pabovedot */ { 0x0000ff56, 21397 }, /* Page_Down */ { 0x0000ff55, 21407 }, /* Page_Up */ { 0x000000b6, 21415 }, /* paragraph */ { 0x00000028, 21425 }, /* parenleft */ { 0x00000029, 21435 }, /* parenright */ { 0x01002202, 21446 }, /* partdifferential */ { 0x000008ef, 21463 }, /* partialderivative */ { 0x0000ff13, 21481 }, /* Pause */ { 0x00000025, 21487 }, /* percent */ { 0x0000002e, 21495 }, /* period */ { 0x000000b7, 21502 }, /* periodcentered */ { 0x00000ad5, 21517 }, /* permille */ { 0x010020a7, 21526 }, /* PesetaSign */ { 0x00000afb, 21537 }, /* phonographcopyright */ { 0x0000002b, 21557 }, /* plus */ { 0x000000b1, 21562 }, /* plusminus */ { 0x0000fefa, 21572 }, /* Pointer_Accelerate */ { 0x0000fee9, 21591 }, /* Pointer_Button1 */ { 0x0000feea, 21607 }, /* Pointer_Button2 */ { 0x0000feeb, 21623 }, /* Pointer_Button3 */ { 0x0000feec, 21639 }, /* Pointer_Button4 */ { 0x0000feed, 21655 }, /* Pointer_Button5 */ { 0x0000fee8, 21671 }, /* Pointer_Button_Dflt */ { 0x0000feef, 21691 }, /* Pointer_DblClick1 */ { 0x0000fef0, 21709 }, /* Pointer_DblClick2 */ { 0x0000fef1, 21727 }, /* Pointer_DblClick3 */ { 0x0000fef2, 21745 }, /* Pointer_DblClick4 */ { 0x0000fef3, 21763 }, /* Pointer_DblClick5 */ { 0x0000feee, 21781 }, /* Pointer_DblClick_Dflt */ { 0x0000fefb, 21803 }, /* Pointer_DfltBtnNext */ { 0x0000fefc, 21823 }, /* Pointer_DfltBtnPrev */ { 0x0000fee3, 21843 }, /* Pointer_Down */ { 0x0000fee6, 21856 }, /* Pointer_DownLeft */ { 0x0000fee7, 21873 }, /* Pointer_DownRight */ { 0x0000fef5, 21891 }, /* Pointer_Drag1 */ { 0x0000fef6, 21905 }, /* Pointer_Drag2 */ { 0x0000fef7, 21919 }, /* Pointer_Drag3 */ { 0x0000fef8, 21933 }, /* Pointer_Drag4 */ { 0x0000fefd, 21947 }, /* Pointer_Drag5 */ { 0x0000fef4, 21961 }, /* Pointer_Drag_Dflt */ { 0x0000fef9, 21979 }, /* Pointer_EnableKeys */ { 0x0000fee0, 21998 }, /* Pointer_Left */ { 0x0000fee1, 22011 }, /* Pointer_Right */ { 0x0000fee2, 22025 }, /* Pointer_Up */ { 0x0000fee4, 22036 }, /* Pointer_UpLeft */ { 0x0000fee5, 22051 }, /* Pointer_UpRight */ { 0x00000ad4, 22067 }, /* prescription */ { 0x0000fed1, 22080 }, /* Prev_Virtual_Screen */ { 0x0000ff3e, 22100 }, /* PreviousCandidate */ { 0x0000ff61, 22118 }, /* Print */ { 0x0000ff55, 22124 }, /* Prior */ { 0x000004b0, 22130 }, /* prolongedsound */ { 0x00000aa6, 22145 }, /* punctspace */ { 0x00000051, 22156 }, /* Q */ { 0x00000071, 22158 }, /* q */ { 0x00000bcc, 22160 }, /* quad */ { 0x0000003f, 22165 }, /* question */ { 0x000000bf, 22174 }, /* questiondown */ { 0x00000022, 22187 }, /* quotedbl */ { 0x00000060, 22196 }, /* quoteleft */ { 0x00000027, 22206 }, /* quoteright */ { 0x00000052, 22217 }, /* R */ { 0x00000072, 22219 }, /* r */ { 0x0000ffd2, 22221 }, /* R1 */ { 0x0000ffdb, 22224 }, /* R10 */ { 0x0000ffdc, 22228 }, /* R11 */ { 0x0000ffdd, 22232 }, /* R12 */ { 0x0000ffde, 22236 }, /* R13 */ { 0x0000ffdf, 22240 }, /* R14 */ { 0x0000ffe0, 22244 }, /* R15 */ { 0x0000ffd3, 22248 }, /* R2 */ { 0x0000ffd4, 22251 }, /* R3 */ { 0x0000ffd5, 22254 }, /* R4 */ { 0x0000ffd6, 22257 }, /* R5 */ { 0x0000ffd7, 22260 }, /* R6 */ { 0x0000ffd8, 22263 }, /* R7 */ { 0x0000ffd9, 22266 }, /* R8 */ { 0x0000ffda, 22269 }, /* R9 */ { 0x000001c0, 22272 }, /* Racute */ { 0x000001e0, 22279 }, /* racute */ { 0x000008d6, 22286 }, /* radical */ { 0x000001d8, 22294 }, /* Rcaron */ { 0x000001f8, 22301 }, /* rcaron */ { 0x000003a3, 22308 }, /* Rcedilla */ { 0x000003b3, 22317 }, /* rcedilla */ { 0x0000ff66, 22326 }, /* Redo */ { 0x000000ae, 22331 }, /* registered */ { 0x0000fe72, 22342 }, /* RepeatKeys_Enable */ { 0x1000ff6c, 22360 }, /* Reset */ { 0x0000ff0d, 22366 }, /* Return */ { 0x0000ff53, 22373 }, /* Right */ { 0x00000abe, 22379 }, /* rightanglebracket */ { 0x000008fd, 22397 }, /* rightarrow */ { 0x00000ba6, 22408 }, /* rightcaret */ { 0x00000ad3, 22419 }, /* rightdoublequotemark */ { 0x000008b0, 22440 }, /* rightmiddlecurlybrace */ { 0x000008b7, 22462 }, /* rightmiddlesummation */ { 0x00000acd, 22483 }, /* rightopentriangle */ { 0x00000aeb, 22501 }, /* rightpointer */ { 0x00000bd8, 22514 }, /* rightshoe */ { 0x00000ad1, 22524 }, /* rightsinglequotemark */ { 0x000009f5, 22545 }, /* rightt */ { 0x00000bfc, 22552 }, /* righttack */ { 0x0000ff24, 22562 }, /* Romaji */ { 0x010020a8, 22569 }, /* RupeeSign */ { 0x00000053, 22579 }, /* S */ { 0x00000073, 22581 }, /* s */ { 0x01001e60, 22583 }, /* Sabovedot */ { 0x01001e61, 22593 }, /* sabovedot */ { 0x000001a6, 22603 }, /* Sacute */ { 0x000001b6, 22610 }, /* sacute */ { 0x000001a9, 22617 }, /* Scaron */ { 0x000001b9, 22624 }, /* scaron */ { 0x000001aa, 22631 }, /* Scedilla */ { 0x000001ba, 22640 }, /* scedilla */ { 0x0100018f, 22649 }, /* SCHWA */ { 0x01000259, 22655 }, /* schwa */ { 0x000002de, 22661 }, /* Scircumflex */ { 0x000002fe, 22673 }, /* scircumflex */ { 0x0000ff7e, 22685 }, /* script_switch */ { 0x0000ff14, 22699 }, /* Scroll_Lock */ { 0x00000ad7, 22711 }, /* seconds */ { 0x000000a7, 22719 }, /* section */ { 0x0000ff60, 22727 }, /* Select */ { 0x0000003b, 22734 }, /* semicolon */ { 0x000004df, 22744 }, /* semivoicedsound */ { 0x000006a1, 22760 }, /* Serbian_dje */ { 0x000006b1, 22772 }, /* Serbian_DJE */ { 0x000006af, 22784 }, /* Serbian_dze */ { 0x000006bf, 22796 }, /* Serbian_DZE */ { 0x000006a8, 22808 }, /* Serbian_je */ { 0x000006b8, 22819 }, /* Serbian_JE */ { 0x000006a9, 22830 }, /* Serbian_lje */ { 0x000006b9, 22842 }, /* Serbian_LJE */ { 0x000006aa, 22854 }, /* Serbian_nje */ { 0x000006ba, 22866 }, /* Serbian_NJE */ { 0x000006ab, 22878 }, /* Serbian_tshe */ { 0x000006bb, 22891 }, /* Serbian_TSHE */ { 0x00000ac6, 22904 }, /* seveneighths */ { 0x01002087, 22917 }, /* sevensubscript */ { 0x01002077, 22932 }, /* sevensuperior */ { 0x0000ffe1, 22946 }, /* Shift_L */ { 0x0000ffe6, 22954 }, /* Shift_Lock */ { 0x0000ffe2, 22965 }, /* Shift_R */ { 0x00000aca, 22973 }, /* signaturemark */ { 0x00000aac, 22987 }, /* signifblank */ { 0x000008c9, 22999 }, /* similarequal */ { 0x0000ff3c, 23012 }, /* SingleCandidate */ { 0x00000afd, 23028 }, /* singlelowquotemark */ { 0x01000d85, 23047 }, /* Sinh_a */ { 0x01000d86, 23054 }, /* Sinh_aa */ { 0x01000dcf, 23062 }, /* Sinh_aa2 */ { 0x01000d87, 23071 }, /* Sinh_ae */ { 0x01000dd0, 23079 }, /* Sinh_ae2 */ { 0x01000d88, 23088 }, /* Sinh_aee */ { 0x01000dd1, 23097 }, /* Sinh_aee2 */ { 0x01000d93, 23107 }, /* Sinh_ai */ { 0x01000ddb, 23115 }, /* Sinh_ai2 */ { 0x01000dca, 23124 }, /* Sinh_al */ { 0x01000d96, 23132 }, /* Sinh_au */ { 0x01000dde, 23140 }, /* Sinh_au2 */ { 0x01000db6, 23149 }, /* Sinh_ba */ { 0x01000db7, 23157 }, /* Sinh_bha */ { 0x01000da0, 23166 }, /* Sinh_ca */ { 0x01000da1, 23174 }, /* Sinh_cha */ { 0x01000da9, 23183 }, /* Sinh_dda */ { 0x01000daa, 23192 }, /* Sinh_ddha */ { 0x01000daf, 23202 }, /* Sinh_dha */ { 0x01000db0, 23211 }, /* Sinh_dhha */ { 0x01000d91, 23221 }, /* Sinh_e */ { 0x01000dd9, 23228 }, /* Sinh_e2 */ { 0x01000d92, 23236 }, /* Sinh_ee */ { 0x01000dda, 23244 }, /* Sinh_ee2 */ { 0x01000dc6, 23253 }, /* Sinh_fa */ { 0x01000d9c, 23261 }, /* Sinh_ga */ { 0x01000d9d, 23269 }, /* Sinh_gha */ { 0x01000d83, 23278 }, /* Sinh_h2 */ { 0x01000dc4, 23286 }, /* Sinh_ha */ { 0x01000d89, 23294 }, /* Sinh_i */ { 0x01000dd2, 23301 }, /* Sinh_i2 */ { 0x01000d8a, 23309 }, /* Sinh_ii */ { 0x01000dd3, 23317 }, /* Sinh_ii2 */ { 0x01000da2, 23326 }, /* Sinh_ja */ { 0x01000da3, 23334 }, /* Sinh_jha */ { 0x01000da5, 23343 }, /* Sinh_jnya */ { 0x01000d9a, 23353 }, /* Sinh_ka */ { 0x01000d9b, 23361 }, /* Sinh_kha */ { 0x01000df4, 23370 }, /* Sinh_kunddaliya */ { 0x01000dbd, 23386 }, /* Sinh_la */ { 0x01000dc5, 23394 }, /* Sinh_lla */ { 0x01000d8f, 23403 }, /* Sinh_lu */ { 0x01000ddf, 23411 }, /* Sinh_lu2 */ { 0x01000d90, 23420 }, /* Sinh_luu */ { 0x01000df3, 23429 }, /* Sinh_luu2 */ { 0x01000db8, 23439 }, /* Sinh_ma */ { 0x01000db9, 23447 }, /* Sinh_mba */ { 0x01000db1, 23456 }, /* Sinh_na */ { 0x01000dac, 23464 }, /* Sinh_ndda */ { 0x01000db3, 23474 }, /* Sinh_ndha */ { 0x01000d82, 23484 }, /* Sinh_ng */ { 0x01000d9e, 23492 }, /* Sinh_ng2 */ { 0x01000d9f, 23501 }, /* Sinh_nga */ { 0x01000da6, 23510 }, /* Sinh_nja */ { 0x01000dab, 23519 }, /* Sinh_nna */ { 0x01000da4, 23528 }, /* Sinh_nya */ { 0x01000d94, 23537 }, /* Sinh_o */ { 0x01000ddc, 23544 }, /* Sinh_o2 */ { 0x01000d95, 23552 }, /* Sinh_oo */ { 0x01000ddd, 23560 }, /* Sinh_oo2 */ { 0x01000db4, 23569 }, /* Sinh_pa */ { 0x01000db5, 23577 }, /* Sinh_pha */ { 0x01000dbb, 23586 }, /* Sinh_ra */ { 0x01000d8d, 23594 }, /* Sinh_ri */ { 0x01000d8e, 23602 }, /* Sinh_rii */ { 0x01000dd8, 23611 }, /* Sinh_ru2 */ { 0x01000df2, 23620 }, /* Sinh_ruu2 */ { 0x01000dc3, 23630 }, /* Sinh_sa */ { 0x01000dc1, 23638 }, /* Sinh_sha */ { 0x01000dc2, 23647 }, /* Sinh_ssha */ { 0x01000dad, 23657 }, /* Sinh_tha */ { 0x01000dae, 23666 }, /* Sinh_thha */ { 0x01000da7, 23676 }, /* Sinh_tta */ { 0x01000da8, 23685 }, /* Sinh_ttha */ { 0x01000d8b, 23695 }, /* Sinh_u */ { 0x01000dd4, 23702 }, /* Sinh_u2 */ { 0x01000d8c, 23710 }, /* Sinh_uu */ { 0x01000dd6, 23718 }, /* Sinh_uu2 */ { 0x01000dc0, 23727 }, /* Sinh_va */ { 0x01000dba, 23735 }, /* Sinh_ya */ { 0x01002086, 23743 }, /* sixsubscript */ { 0x01002076, 23756 }, /* sixsuperior */ { 0x0000002f, 23768 }, /* slash */ { 0x0000fe73, 23774 }, /* SlowKeys_Enable */ { 0x000009e0, 23790 }, /* soliddiamond */ { 0x00000020, 23803 }, /* space */ { 0x0100221a, 23809 }, /* squareroot */ { 0x000000df, 23820 }, /* ssharp */ { 0x000000a3, 23827 }, /* sterling */ { 0x0000fe75, 23836 }, /* StickyKeys_Enable */ { 0x01002263, 23854 }, /* stricteq */ { 0x0000ff66, 23863 }, /* SunAgain */ { 0x0000ff7e, 23872 }, /* SunAltGraph */ { 0x1005ff77, 23884 }, /* SunAudioLowerVolume */ { 0x1005ff78, 23904 }, /* SunAudioMute */ { 0x1005ff79, 23917 }, /* SunAudioRaiseVolume */ { 0x0000ff20, 23937 }, /* SunCompose */ { 0x1005ff72, 23948 }, /* SunCopy */ { 0x1005ff75, 23956 }, /* SunCut */ { 0x1005ff10, 23963 }, /* SunF36 */ { 0x1005ff11, 23970 }, /* SunF37 */ { 0x1005ff03, 23977 }, /* SunFA_Acute */ { 0x1005ff05, 23989 }, /* SunFA_Cedilla */ { 0x1005ff01, 24003 }, /* SunFA_Circum */ { 0x1005ff04, 24016 }, /* SunFA_Diaeresis */ { 0x1005ff00, 24032 }, /* SunFA_Grave */ { 0x1005ff02, 24044 }, /* SunFA_Tilde */ { 0x0000ff68, 24056 }, /* SunFind */ { 0x1005ff71, 24064 }, /* SunFront */ { 0x1005ff73, 24073 }, /* SunOpen */ { 0x0000ff56, 24081 }, /* SunPageDown */ { 0x0000ff55, 24093 }, /* SunPageUp */ { 0x1005ff74, 24103 }, /* SunPaste */ { 0x1005ff76, 24112 }, /* SunPowerSwitch */ { 0x1005ff7d, 24127 }, /* SunPowerSwitchShift */ { 0x0000ff61, 24147 }, /* SunPrint_Screen */ { 0x1005ff70, 24163 }, /* SunProps */ { 0x0000ff69, 24172 }, /* SunStop */ { 0x1005ff60, 24180 }, /* SunSys_Req */ { 0x0000ff65, 24191 }, /* SunUndo */ { 0x1005ff7a, 24199 }, /* SunVideoDegauss */ { 0x1005ff7b, 24215 }, /* SunVideoLowerBrightness */ { 0x1005ff7c, 24239 }, /* SunVideoRaiseBrightness */ { 0x0000ffeb, 24263 }, /* Super_L */ { 0x0000ffec, 24271 }, /* Super_R */ { 0x0000ff15, 24279 }, /* Sys_Req */ { 0x1000ff6d, 24287 }, /* System */ { 0x00000054, 24294 }, /* T */ { 0x00000074, 24296 }, /* t */ { 0x0000ff09, 24298 }, /* Tab */ { 0x01001e6a, 24302 }, /* Tabovedot */ { 0x01001e6b, 24312 }, /* tabovedot */ { 0x000001ab, 24322 }, /* Tcaron */ { 0x000001bb, 24329 }, /* tcaron */ { 0x000001de, 24336 }, /* Tcedilla */ { 0x000001fe, 24345 }, /* tcedilla */ { 0x00000af9, 24354 }, /* telephone */ { 0x00000afa, 24364 }, /* telephonerecorder */ { 0x0000fed5, 24382 }, /* Terminate_Server */ { 0x00000ddf, 24399 }, /* Thai_baht */ { 0x00000dba, 24409 }, /* Thai_bobaimai */ { 0x00000da8, 24423 }, /* Thai_chochan */ { 0x00000daa, 24436 }, /* Thai_chochang */ { 0x00000da9, 24450 }, /* Thai_choching */ { 0x00000dac, 24464 }, /* Thai_chochoe */ { 0x00000dae, 24477 }, /* Thai_dochada */ { 0x00000db4, 24490 }, /* Thai_dodek */ { 0x00000dbd, 24501 }, /* Thai_fofa */ { 0x00000dbf, 24511 }, /* Thai_fofan */ { 0x00000dcb, 24522 }, /* Thai_hohip */ { 0x00000dce, 24533 }, /* Thai_honokhuk */ { 0x00000da2, 24547 }, /* Thai_khokhai */ { 0x00000da5, 24560 }, /* Thai_khokhon */ { 0x00000da3, 24573 }, /* Thai_khokhuat */ { 0x00000da4, 24587 }, /* Thai_khokhwai */ { 0x00000da6, 24601 }, /* Thai_khorakhang */ { 0x00000da1, 24617 }, /* Thai_kokai */ { 0x00000de5, 24628 }, /* Thai_lakkhangyao */ { 0x00000df7, 24645 }, /* Thai_lekchet */ { 0x00000df5, 24658 }, /* Thai_lekha */ { 0x00000df6, 24669 }, /* Thai_lekhok */ { 0x00000df9, 24681 }, /* Thai_lekkao */ { 0x00000df1, 24693 }, /* Thai_leknung */ { 0x00000df8, 24706 }, /* Thai_lekpaet */ { 0x00000df3, 24719 }, /* Thai_leksam */ { 0x00000df4, 24731 }, /* Thai_leksi */ { 0x00000df2, 24742 }, /* Thai_leksong */ { 0x00000df0, 24755 }, /* Thai_leksun */ { 0x00000dcc, 24767 }, /* Thai_lochula */ { 0x00000dc5, 24780 }, /* Thai_loling */ { 0x00000dc6, 24792 }, /* Thai_lu */ { 0x00000deb, 24800 }, /* Thai_maichattawa */ { 0x00000de8, 24817 }, /* Thai_maiek */ { 0x00000dd1, 24828 }, /* Thai_maihanakat */ { 0x00000dde, 24844 }, /* Thai_maihanakat_maitho */ { 0x00000de7, 24867 }, /* Thai_maitaikhu */ { 0x00000de9, 24882 }, /* Thai_maitho */ { 0x00000dea, 24894 }, /* Thai_maitri */ { 0x00000de6, 24906 }, /* Thai_maiyamok */ { 0x00000dc1, 24920 }, /* Thai_moma */ { 0x00000da7, 24930 }, /* Thai_ngongu */ { 0x00000ded, 24942 }, /* Thai_nikhahit */ { 0x00000db3, 24956 }, /* Thai_nonen */ { 0x00000db9, 24967 }, /* Thai_nonu */ { 0x00000dcd, 24977 }, /* Thai_oang */ { 0x00000dcf, 24987 }, /* Thai_paiyannoi */ { 0x00000dda, 25002 }, /* Thai_phinthu */ { 0x00000dbe, 25015 }, /* Thai_phophan */ { 0x00000dbc, 25028 }, /* Thai_phophung */ { 0x00000dc0, 25042 }, /* Thai_phosamphao */ { 0x00000dbb, 25058 }, /* Thai_popla */ { 0x00000dc3, 25069 }, /* Thai_rorua */ { 0x00000dc4, 25080 }, /* Thai_ru */ { 0x00000dd0, 25088 }, /* Thai_saraa */ { 0x00000dd2, 25099 }, /* Thai_saraaa */ { 0x00000de1, 25111 }, /* Thai_saraae */ { 0x00000de4, 25123 }, /* Thai_saraaimaimalai */ { 0x00000de3, 25143 }, /* Thai_saraaimaimuan */ { 0x00000dd3, 25162 }, /* Thai_saraam */ { 0x00000de0, 25174 }, /* Thai_sarae */ { 0x00000dd4, 25185 }, /* Thai_sarai */ { 0x00000dd5, 25196 }, /* Thai_saraii */ { 0x00000de2, 25208 }, /* Thai_sarao */ { 0x00000dd8, 25219 }, /* Thai_sarau */ { 0x00000dd6, 25230 }, /* Thai_saraue */ { 0x00000dd7, 25242 }, /* Thai_sarauee */ { 0x00000dd9, 25255 }, /* Thai_sarauu */ { 0x00000dc9, 25267 }, /* Thai_sorusi */ { 0x00000dc8, 25279 }, /* Thai_sosala */ { 0x00000dab, 25291 }, /* Thai_soso */ { 0x00000dca, 25301 }, /* Thai_sosua */ { 0x00000dec, 25312 }, /* Thai_thanthakhat */ { 0x00000db1, 25329 }, /* Thai_thonangmontho */ { 0x00000db2, 25348 }, /* Thai_thophuthao */ { 0x00000db7, 25364 }, /* Thai_thothahan */ { 0x00000db0, 25379 }, /* Thai_thothan */ { 0x00000db8, 25392 }, /* Thai_thothong */ { 0x00000db6, 25406 }, /* Thai_thothung */ { 0x00000daf, 25420 }, /* Thai_topatak */ { 0x00000db5, 25433 }, /* Thai_totao */ { 0x00000dc7, 25444 }, /* Thai_wowaen */ { 0x00000dc2, 25456 }, /* Thai_yoyak */ { 0x00000dad, 25467 }, /* Thai_yoying */ { 0x000008c0, 25479 }, /* therefore */ { 0x00000aa7, 25489 }, /* thinspace */ { 0x000000de, 25499 }, /* THORN */ { 0x000000de, 25505 }, /* Thorn */ { 0x000000fe, 25511 }, /* thorn */ { 0x00000ac4, 25517 }, /* threeeighths */ { 0x00000ab4, 25530 }, /* threefifths */ { 0x000000be, 25542 }, /* threequarters */ { 0x01002083, 25556 }, /* threesubscript */ { 0x000000b3, 25571 }, /* threesuperior */ { 0x0100222d, 25585 }, /* tintegral */ { 0x000008a4, 25595 }, /* topintegral */ { 0x000008ab, 25607 }, /* topleftparens */ { 0x000008a2, 25621 }, /* topleftradical */ { 0x000008a7, 25636 }, /* topleftsqbracket */ { 0x000008b1, 25653 }, /* topleftsummation */ { 0x000008ad, 25670 }, /* toprightparens */ { 0x000008a9, 25685 }, /* toprightsqbracket */ { 0x000008b5, 25703 }, /* toprightsummation */ { 0x000009f7, 25721 }, /* topt */ { 0x000008b3, 25726 }, /* topvertsummationconnector */ { 0x0000ff2b, 25752 }, /* Touroku */ { 0x00000ac9, 25760 }, /* trademark */ { 0x00000acb, 25770 }, /* trademarkincircle */ { 0x000003ac, 25788 }, /* Tslash */ { 0x000003bc, 25795 }, /* tslash */ { 0x00000ab3, 25802 }, /* twofifths */ { 0x01002082, 25812 }, /* twosubscript */ { 0x000000b2, 25825 }, /* twosuperior */ { 0x00000ab1, 25837 }, /* twothirds */ { 0x00000055, 25847 }, /* U */ { 0x00000075, 25849 }, /* u */ { 0x000000da, 25851 }, /* Uacute */ { 0x000000fa, 25858 }, /* uacute */ { 0x01001ee4, 25865 }, /* Ubelowdot */ { 0x01001ee5, 25875 }, /* ubelowdot */ { 0x000002dd, 25885 }, /* Ubreve */ { 0x000002fd, 25892 }, /* ubreve */ { 0x000000db, 25899 }, /* Ucircumflex */ { 0x000000fb, 25911 }, /* ucircumflex */ { 0x000000dc, 25923 }, /* Udiaeresis */ { 0x000000fc, 25934 }, /* udiaeresis */ { 0x000001db, 25945 }, /* Udoubleacute */ { 0x000001fb, 25958 }, /* udoubleacute */ { 0x000000d9, 25971 }, /* Ugrave */ { 0x000000f9, 25978 }, /* ugrave */ { 0x01001ee6, 25985 }, /* Uhook */ { 0x01001ee7, 25991 }, /* uhook */ { 0x010001af, 25997 }, /* Uhorn */ { 0x010001b0, 26003 }, /* uhorn */ { 0x01001ee8, 26009 }, /* Uhornacute */ { 0x01001ee9, 26020 }, /* uhornacute */ { 0x01001ef0, 26031 }, /* Uhornbelowdot */ { 0x01001ef1, 26045 }, /* uhornbelowdot */ { 0x01001eea, 26059 }, /* Uhorngrave */ { 0x01001eeb, 26070 }, /* uhorngrave */ { 0x01001eec, 26081 }, /* Uhornhook */ { 0x01001eed, 26091 }, /* uhornhook */ { 0x01001eee, 26101 }, /* Uhorntilde */ { 0x01001eef, 26112 }, /* uhorntilde */ { 0x000006ad, 26123 }, /* Ukrainian_ghe_with_upturn */ { 0x000006bd, 26149 }, /* Ukrainian_GHE_WITH_UPTURN */ { 0x000006a6, 26175 }, /* Ukrainian_i */ { 0x000006b6, 26187 }, /* Ukrainian_I */ { 0x000006a4, 26199 }, /* Ukrainian_ie */ { 0x000006b4, 26212 }, /* Ukrainian_IE */ { 0x000006a7, 26225 }, /* Ukrainian_yi */ { 0x000006b7, 26238 }, /* Ukrainian_YI */ { 0x000006a6, 26251 }, /* Ukranian_i */ { 0x000006b6, 26262 }, /* Ukranian_I */ { 0x000006a4, 26273 }, /* Ukranian_je */ { 0x000006b4, 26285 }, /* Ukranian_JE */ { 0x000006a7, 26297 }, /* Ukranian_yi */ { 0x000006b7, 26309 }, /* Ukranian_YI */ { 0x000003de, 26321 }, /* Umacron */ { 0x000003fe, 26329 }, /* umacron */ { 0x00000bc6, 26337 }, /* underbar */ { 0x0000005f, 26346 }, /* underscore */ { 0x0000ff65, 26357 }, /* Undo */ { 0x000008dd, 26362 }, /* union */ { 0x000003d9, 26368 }, /* Uogonek */ { 0x000003f9, 26376 }, /* uogonek */ { 0x0000ff52, 26384 }, /* Up */ { 0x000008fc, 26387 }, /* uparrow */ { 0x00000ba9, 26395 }, /* upcaret */ { 0x000009ec, 26403 }, /* upleftcorner */ { 0x000009eb, 26416 }, /* uprightcorner */ { 0x00000bc3, 26430 }, /* upshoe */ { 0x00000bd3, 26437 }, /* upstile */ { 0x00000bce, 26445 }, /* uptack */ { 0x000001d9, 26452 }, /* Uring */ { 0x000001f9, 26458 }, /* uring */ { 0x1000ff6e, 26464 }, /* User */ { 0x000003dd, 26469 }, /* Utilde */ { 0x000003fd, 26476 }, /* utilde */ { 0x00000056, 26483 }, /* V */ { 0x00000076, 26485 }, /* v */ { 0x000008c1, 26487 }, /* variation */ { 0x000009f8, 26497 }, /* vertbar */ { 0x000008a6, 26505 }, /* vertconnector */ { 0x000004de, 26519 }, /* voicedsound */ { 0x00ffffff, 26531 }, /* VoidSymbol */ { 0x000009e9, 26542 }, /* vt */ { 0x00000057, 26545 }, /* W */ { 0x00000077, 26547 }, /* w */ { 0x01001e82, 26549 }, /* Wacute */ { 0x01001e83, 26556 }, /* wacute */ { 0x01000174, 26563 }, /* Wcircumflex */ { 0x01000175, 26575 }, /* wcircumflex */ { 0x01001e84, 26587 }, /* Wdiaeresis */ { 0x01001e85, 26598 }, /* wdiaeresis */ { 0x01001e80, 26609 }, /* Wgrave */ { 0x01001e81, 26616 }, /* wgrave */ { 0x010020a9, 26623 }, /* WonSign */ { 0x00000058, 26631 }, /* X */ { 0x00000078, 26633 }, /* x */ { 0x01001e8a, 26635 }, /* Xabovedot */ { 0x01001e8b, 26645 }, /* xabovedot */ { 0x1008ff39, 26655 }, /* XF86AddFavorite */ { 0x1008ff50, 26671 }, /* XF86ApplicationLeft */ { 0x1008ff51, 26691 }, /* XF86ApplicationRight */ { 0x1008ff9b, 26712 }, /* XF86AudioCycleTrack */ { 0x1008ff97, 26732 }, /* XF86AudioForward */ { 0x1008ff11, 26749 }, /* XF86AudioLowerVolume */ { 0x1008ff32, 26770 }, /* XF86AudioMedia */ { 0x1008ffb2, 26785 }, /* XF86AudioMicMute */ { 0x1008ff12, 26802 }, /* XF86AudioMute */ { 0x1008ff17, 26816 }, /* XF86AudioNext */ { 0x1008ff31, 26830 }, /* XF86AudioPause */ { 0x1008ff14, 26845 }, /* XF86AudioPlay */ { 0x1008ff16, 26859 }, /* XF86AudioPrev */ { 0x1008ff13, 26873 }, /* XF86AudioRaiseVolume */ { 0x1008ff99, 26894 }, /* XF86AudioRandomPlay */ { 0x1008ff1c, 26914 }, /* XF86AudioRecord */ { 0x1008ff98, 26930 }, /* XF86AudioRepeat */ { 0x1008ff3e, 26946 }, /* XF86AudioRewind */ { 0x1008ff15, 26962 }, /* XF86AudioStop */ { 0x1008ff8d, 26976 }, /* XF86Away */ { 0x1008ff26, 26985 }, /* XF86Back */ { 0x1008ff3f, 26994 }, /* XF86BackForward */ { 0x1008ff93, 27010 }, /* XF86Battery */ { 0x1008ffa6, 27022 }, /* XF86Blue */ { 0x1008ff94, 27031 }, /* XF86Bluetooth */ { 0x1008ff52, 27045 }, /* XF86Book */ { 0x1008ff3b, 27054 }, /* XF86BrightnessAdjust */ { 0x1008ff54, 27075 }, /* XF86Calculater */ { 0x1008ff1d, 27090 }, /* XF86Calculator */ { 0x1008ff20, 27105 }, /* XF86Calendar */ { 0x1008ff53, 27118 }, /* XF86CD */ { 0x1008ff55, 27125 }, /* XF86Clear */ { 0x1008fe21, 27135 }, /* XF86ClearGrab */ { 0x1008ff56, 27149 }, /* XF86Close */ { 0x1008ff3d, 27159 }, /* XF86Community */ { 0x1008ff22, 27173 }, /* XF86ContrastAdjust */ { 0x1008ff57, 27192 }, /* XF86Copy */ { 0x1008ff58, 27201 }, /* XF86Cut */ { 0x1008ff9c, 27209 }, /* XF86CycleAngle */ { 0x1008ff59, 27224 }, /* XF86Display */ { 0x1008ff5b, 27236 }, /* XF86Documents */ { 0x1008ff5a, 27250 }, /* XF86DOS */ { 0x1008ff2c, 27258 }, /* XF86Eject */ { 0x1008ff5c, 27268 }, /* XF86Excel */ { 0x1008ff5d, 27278 }, /* XF86Explorer */ { 0x1008ff30, 27291 }, /* XF86Favorites */ { 0x1008ff3c, 27305 }, /* XF86Finance */ { 0x1008ff27, 27317 }, /* XF86Forward */ { 0x1008ff9d, 27329 }, /* XF86FrameBack */ { 0x1008ff9e, 27343 }, /* XF86FrameForward */ { 0x1008ff5e, 27360 }, /* XF86Game */ { 0x1008ff5f, 27369 }, /* XF86Go */ { 0x1008ffa4, 27376 }, /* XF86Green */ { 0x1008ffa8, 27386 }, /* XF86Hibernate */ { 0x1008ff37, 27400 }, /* XF86History */ { 0x1008ff18, 27412 }, /* XF86HomePage */ { 0x1008ff3a, 27425 }, /* XF86HotLinks */ { 0x1008ff60, 27438 }, /* XF86iTouch */ { 0x1008ff06, 27449 }, /* XF86KbdBrightnessDown */ { 0x1008ff05, 27471 }, /* XF86KbdBrightnessUp */ { 0x1008ff04, 27491 }, /* XF86KbdLightOnOff */ { 0x1008ff40, 27509 }, /* XF86Launch0 */ { 0x1008ff41, 27521 }, /* XF86Launch1 */ { 0x1008ff42, 27533 }, /* XF86Launch2 */ { 0x1008ff43, 27545 }, /* XF86Launch3 */ { 0x1008ff44, 27557 }, /* XF86Launch4 */ { 0x1008ff45, 27569 }, /* XF86Launch5 */ { 0x1008ff46, 27581 }, /* XF86Launch6 */ { 0x1008ff47, 27593 }, /* XF86Launch7 */ { 0x1008ff48, 27605 }, /* XF86Launch8 */ { 0x1008ff49, 27617 }, /* XF86Launch9 */ { 0x1008ff4a, 27629 }, /* XF86LaunchA */ { 0x1008ff4b, 27641 }, /* XF86LaunchB */ { 0x1008ff4c, 27653 }, /* XF86LaunchC */ { 0x1008ff4d, 27665 }, /* XF86LaunchD */ { 0x1008ff4e, 27677 }, /* XF86LaunchE */ { 0x1008ff4f, 27689 }, /* XF86LaunchF */ { 0x1008ff35, 27701 }, /* XF86LightBulb */ { 0x1008fe25, 27715 }, /* XF86LogGrabInfo */ { 0x1008ff61, 27731 }, /* XF86LogOff */ { 0x1008fe24, 27742 }, /* XF86LogWindowTree */ { 0x1008ff19, 27760 }, /* XF86Mail */ { 0x1008ff90, 27769 }, /* XF86MailForward */ { 0x1008ff62, 27785 }, /* XF86Market */ { 0x1008ff63, 27796 }, /* XF86Meeting */ { 0x1008ff1e, 27808 }, /* XF86Memo */ { 0x1008ff65, 27817 }, /* XF86MenuKB */ { 0x1008ff66, 27828 }, /* XF86MenuPB */ { 0x1008ff8e, 27839 }, /* XF86Messenger */ { 0x1008ff01, 27853 }, /* XF86ModeLock */ { 0x1008ff03, 27866 }, /* XF86MonBrightnessDown */ { 0x1008ff02, 27888 }, /* XF86MonBrightnessUp */ { 0x1008ff92, 27908 }, /* XF86Music */ { 0x1008ff33, 27918 }, /* XF86MyComputer */ { 0x1008ff67, 27933 }, /* XF86MySites */ { 0x1008ff68, 27945 }, /* XF86New */ { 0x1008ff69, 27953 }, /* XF86News */ { 0x1008fe22, 27962 }, /* XF86Next_VMode */ { 0x1008ff6a, 27977 }, /* XF86OfficeHome */ { 0x1008ff6b, 27992 }, /* XF86Open */ { 0x1008ff38, 28001 }, /* XF86OpenURL */ { 0x1008ff6c, 28013 }, /* XF86Option */ { 0x1008ff6d, 28024 }, /* XF86Paste */ { 0x1008ff6e, 28034 }, /* XF86Phone */ { 0x1008ff91, 28044 }, /* XF86Pictures */ { 0x1008ff21, 28057 }, /* XF86PowerDown */ { 0x1008ff2a, 28071 }, /* XF86PowerOff */ { 0x1008fe23, 28084 }, /* XF86Prev_VMode */ { 0x1008ff70, 28099 }, /* XF86Q */ { 0x1008ffa3, 28105 }, /* XF86Red */ { 0x1008ff29, 28113 }, /* XF86Refresh */ { 0x1008ff73, 28125 }, /* XF86Reload */ { 0x1008ff72, 28136 }, /* XF86Reply */ { 0x1008ff24, 28146 }, /* XF86RockerDown */ { 0x1008ff25, 28161 }, /* XF86RockerEnter */ { 0x1008ff23, 28177 }, /* XF86RockerUp */ { 0x1008ff74, 28190 }, /* XF86RotateWindows */ { 0x1008ff76, 28208 }, /* XF86RotationKB */ { 0x1008ff75, 28223 }, /* XF86RotationPB */ { 0x1008ff77, 28238 }, /* XF86Save */ { 0x1008ff2d, 28247 }, /* XF86ScreenSaver */ { 0x1008ff7a, 28263 }, /* XF86ScrollClick */ { 0x1008ff79, 28279 }, /* XF86ScrollDown */ { 0x1008ff78, 28294 }, /* XF86ScrollUp */ { 0x1008ff1b, 28307 }, /* XF86Search */ { 0x1008ffa0, 28318 }, /* XF86Select */ { 0x1008ff7b, 28329 }, /* XF86Send */ { 0x1008ff36, 28338 }, /* XF86Shop */ { 0x1008ff2f, 28347 }, /* XF86Sleep */ { 0x1008ff7c, 28357 }, /* XF86Spell */ { 0x1008ff7d, 28367 }, /* XF86SplitScreen */ { 0x1008ff10, 28383 }, /* XF86Standby */ { 0x1008ff1a, 28395 }, /* XF86Start */ { 0x1008ff28, 28405 }, /* XF86Stop */ { 0x1008ff9a, 28414 }, /* XF86Subtitle */ { 0x1008ff7e, 28427 }, /* XF86Support */ { 0x1008ffa7, 28439 }, /* XF86Suspend */ { 0x1008fe01, 28451 }, /* XF86Switch_VT_1 */ { 0x1008fe0a, 28467 }, /* XF86Switch_VT_10 */ { 0x1008fe0b, 28484 }, /* XF86Switch_VT_11 */ { 0x1008fe0c, 28501 }, /* XF86Switch_VT_12 */ { 0x1008fe02, 28518 }, /* XF86Switch_VT_2 */ { 0x1008fe03, 28534 }, /* XF86Switch_VT_3 */ { 0x1008fe04, 28550 }, /* XF86Switch_VT_4 */ { 0x1008fe05, 28566 }, /* XF86Switch_VT_5 */ { 0x1008fe06, 28582 }, /* XF86Switch_VT_6 */ { 0x1008fe07, 28598 }, /* XF86Switch_VT_7 */ { 0x1008fe08, 28614 }, /* XF86Switch_VT_8 */ { 0x1008fe09, 28630 }, /* XF86Switch_VT_9 */ { 0x1008ff7f, 28646 }, /* XF86TaskPane */ { 0x1008ff80, 28659 }, /* XF86Terminal */ { 0x1008ff9f, 28672 }, /* XF86Time */ { 0x1008ff1f, 28681 }, /* XF86ToDoList */ { 0x1008ff81, 28694 }, /* XF86Tools */ { 0x1008ffa2, 28704 }, /* XF86TopMenu */ { 0x1008ffb1, 28716 }, /* XF86TouchpadOff */ { 0x1008ffb0, 28732 }, /* XF86TouchpadOn */ { 0x1008ffa9, 28747 }, /* XF86TouchpadToggle */ { 0x1008ff82, 28766 }, /* XF86Travel */ { 0x1008fe20, 28777 }, /* XF86Ungrab */ { 0x1008ff85, 28788 }, /* XF86User1KB */ { 0x1008ff86, 28800 }, /* XF86User2KB */ { 0x1008ff84, 28812 }, /* XF86UserPB */ { 0x1008ff96, 28823 }, /* XF86UWB */ { 0x1008ff34, 28831 }, /* XF86VendorHome */ { 0x1008ff87, 28846 }, /* XF86Video */ { 0x1008ffa1, 28856 }, /* XF86View */ { 0x1008ff2b, 28865 }, /* XF86WakeUp */ { 0x1008ff8f, 28876 }, /* XF86WebCam */ { 0x1008ff88, 28887 }, /* XF86WheelButton */ { 0x1008ff95, 28903 }, /* XF86WLAN */ { 0x1008ff89, 28912 }, /* XF86Word */ { 0x1008ff2e, 28921 }, /* XF86WWW */ { 0x1008ff8a, 28929 }, /* XF86Xfer */ { 0x1008ffa5, 28938 }, /* XF86Yellow */ { 0x1008ff8b, 28949 }, /* XF86ZoomIn */ { 0x1008ff8c, 28960 }, /* XF86ZoomOut */ { 0x00000059, 28972 }, /* Y */ { 0x00000079, 28974 }, /* y */ { 0x000000dd, 28976 }, /* Yacute */ { 0x000000fd, 28983 }, /* yacute */ { 0x01001ef4, 28990 }, /* Ybelowdot */ { 0x01001ef5, 29000 }, /* ybelowdot */ { 0x01000176, 29010 }, /* Ycircumflex */ { 0x01000177, 29022 }, /* ycircumflex */ { 0x000000ff, 29034 }, /* ydiaeresis */ { 0x000013be, 29045 }, /* Ydiaeresis */ { 0x000000a5, 29056 }, /* yen */ { 0x01001ef2, 29060 }, /* Ygrave */ { 0x01001ef3, 29067 }, /* ygrave */ { 0x01001ef6, 29074 }, /* Yhook */ { 0x01001ef7, 29080 }, /* yhook */ { 0x01001ef8, 29086 }, /* Ytilde */ { 0x01001ef9, 29093 }, /* ytilde */ { 0x0000005a, 29100 }, /* Z */ { 0x0000007a, 29102 }, /* z */ { 0x000001af, 29104 }, /* Zabovedot */ { 0x000001bf, 29114 }, /* zabovedot */ { 0x000001ac, 29124 }, /* Zacute */ { 0x000001bc, 29131 }, /* zacute */ { 0x000001ae, 29138 }, /* Zcaron */ { 0x000001be, 29145 }, /* zcaron */ { 0x0000ff3d, 29152 }, /* Zen_Koho */ { 0x0000ff28, 29161 }, /* Zenkaku */ { 0x0000ff2a, 29169 }, /* Zenkaku_Hankaku */ { 0x01002080, 29185 }, /* zerosubscript */ { 0x01002070, 29199 }, /* zerosuperior */ { 0x010001b5, 29212 }, /* Zstroke */ { 0x010001b6, 29220 }, /* zstroke */ }; static const struct name_keysym keysym_to_name[] = { { 0x00000000, 20091 }, /* NoSymbol */ { 0x00000020, 23803 }, /* space */ { 0x00000021, 12099 }, /* exclam */ { 0x00000022, 22187 }, /* quotedbl */ { 0x00000023, 20178 }, /* numbersign */ { 0x00000024, 11251 }, /* dollar */ { 0x00000025, 21487 }, /* percent */ { 0x00000026, 908 }, /* ampersand */ { 0x00000027, 934 }, /* apostrophe */ { 0x00000028, 21425 }, /* parenleft */ { 0x00000029, 21435 }, /* parenright */ { 0x0000002a, 3283 }, /* asterisk */ { 0x0000002b, 21557 }, /* plus */ { 0x0000002c, 8680 }, /* comma */ { 0x0000002d, 19733 }, /* minus */ { 0x0000002e, 21495 }, /* period */ { 0x0000002f, 23768 }, /* slash */ { 0x00000030, 0 }, /* 0 */ { 0x00000031, 2 }, /* 1 */ { 0x00000032, 4 }, /* 2 */ { 0x00000033, 6 }, /* 3 */ { 0x00000034, 386 }, /* 4 */ { 0x00000035, 388 }, /* 5 */ { 0x00000036, 390 }, /* 6 */ { 0x00000037, 392 }, /* 7 */ { 0x00000038, 394 }, /* 8 */ { 0x00000039, 396 }, /* 9 */ { 0x0000003a, 8664 }, /* colon */ { 0x0000003b, 22734 }, /* semicolon */ { 0x0000003c, 19412 }, /* less */ { 0x0000003d, 12051 }, /* equal */ { 0x0000003e, 13272 }, /* greater */ { 0x0000003f, 22165 }, /* question */ { 0x00000040, 3292 }, /* at */ { 0x00000041, 398 }, /* A */ { 0x00000042, 3328 }, /* B */ { 0x00000043, 8439 }, /* C */ { 0x00000044, 10320 }, /* D */ { 0x00000045, 11424 }, /* E */ { 0x00000046, 12155 }, /* F */ { 0x00000047, 12665 }, /* G */ { 0x00000048, 14378 }, /* H */ { 0x00000049, 17069 }, /* I */ { 0x0000004a, 18114 }, /* J */ { 0x0000004b, 18146 }, /* K */ { 0x0000004c, 19112 }, /* L */ { 0x0000004d, 19533 }, /* M */ { 0x0000004e, 19943 }, /* N */ { 0x0000004f, 20200 }, /* O */ { 0x00000050, 21373 }, /* P */ { 0x00000051, 22156 }, /* Q */ { 0x00000052, 22217 }, /* R */ { 0x00000053, 22579 }, /* S */ { 0x00000054, 24294 }, /* T */ { 0x00000055, 25847 }, /* U */ { 0x00000056, 26483 }, /* V */ { 0x00000057, 26545 }, /* W */ { 0x00000058, 26631 }, /* X */ { 0x00000059, 28972 }, /* Y */ { 0x0000005a, 29100 }, /* Z */ { 0x0000005b, 3603 }, /* bracketleft */ { 0x0000005c, 3352 }, /* backslash */ { 0x0000005d, 3615 }, /* bracketright */ { 0x0000005e, 3260 }, /* asciicircum */ { 0x0000005f, 26346 }, /* underscore */ { 0x00000060, 13266 }, /* grave */ { 0x00000061, 400 }, /* a */ { 0x00000062, 3330 }, /* b */ { 0x00000063, 8441 }, /* c */ { 0x00000064, 10322 }, /* d */ { 0x00000065, 11426 }, /* e */ { 0x00000066, 12157 }, /* f */ { 0x00000067, 12667 }, /* g */ { 0x00000068, 14380 }, /* h */ { 0x00000069, 17071 }, /* i */ { 0x0000006a, 18116 }, /* j */ { 0x0000006b, 18148 }, /* k */ { 0x0000006c, 19114 }, /* l */ { 0x0000006d, 19535 }, /* m */ { 0x0000006e, 19945 }, /* n */ { 0x0000006f, 20202 }, /* o */ { 0x00000070, 21375 }, /* p */ { 0x00000071, 22158 }, /* q */ { 0x00000072, 22219 }, /* r */ { 0x00000073, 22581 }, /* s */ { 0x00000074, 24296 }, /* t */ { 0x00000075, 25849 }, /* u */ { 0x00000076, 26485 }, /* v */ { 0x00000077, 26547 }, /* w */ { 0x00000078, 26633 }, /* x */ { 0x00000079, 28974 }, /* y */ { 0x0000007a, 29102 }, /* z */ { 0x0000007b, 3582 }, /* braceleft */ { 0x0000007c, 3392 }, /* bar */ { 0x0000007d, 3592 }, /* braceright */ { 0x0000007e, 3272 }, /* asciitilde */ { 0x000000a0, 20078 }, /* nobreakspace */ { 0x000000a1, 12106 }, /* exclamdown */ { 0x000000a2, 8589 }, /* cent */ { 0x000000a3, 23827 }, /* sterling */ { 0x000000a4, 8766 }, /* currency */ { 0x000000a5, 29056 }, /* yen */ { 0x000000a6, 8389 }, /* brokenbar */ { 0x000000a7, 22719 }, /* section */ { 0x000000a8, 11203 }, /* diaeresis */ { 0x000000a9, 8717 }, /* copyright */ { 0x000000aa, 20852 }, /* ordfeminine */ { 0x000000ab, 14349 }, /* guillemotleft */ { 0x000000ac, 20147 }, /* notsign */ { 0x000000ad, 17062 }, /* hyphen */ { 0x000000ae, 22331 }, /* registered */ { 0x000000af, 19641 }, /* macron */ { 0x000000b0, 11153 }, /* degree */ { 0x000000b1, 21562 }, /* plusminus */ { 0x000000b2, 25825 }, /* twosuperior */ { 0x000000b3, 25571 }, /* threesuperior */ { 0x000000b4, 820 }, /* acute */ { 0x000000b5, 19799 }, /* mu */ { 0x000000b6, 21415 }, /* paragraph */ { 0x000000b7, 21502 }, /* periodcentered */ { 0x000000b8, 8581 }, /* cedilla */ { 0x000000b9, 20755 }, /* onesuperior */ { 0x000000ba, 19688 }, /* masculine */ { 0x000000bb, 14363 }, /* guillemotright */ { 0x000000bc, 20722 }, /* onequarter */ { 0x000000bd, 20714 }, /* onehalf */ { 0x000000be, 25542 }, /* threequarters */ { 0x000000bf, 22174 }, /* questiondown */ { 0x000000c0, 854 }, /* Agrave */ { 0x000000c1, 402 }, /* Aacute */ { 0x000000c2, 622 }, /* Acircumflex */ { 0x000000c3, 3295 }, /* Atilde */ { 0x000000c4, 826 }, /* Adiaeresis */ { 0x000000c5, 2036 }, /* Aring */ { 0x000000c6, 848 }, /* AE */ { 0x000000c7, 8539 }, /* Ccedilla */ { 0x000000c8, 11724 }, /* Egrave */ { 0x000000c9, 11448 }, /* Eacute */ { 0x000000ca, 11496 }, /* Ecircumflex */ { 0x000000cb, 11702 }, /* Ediaeresis */ { 0x000000cc, 17205 }, /* Igrave */ { 0x000000cd, 17083 }, /* Iacute */ { 0x000000ce, 17131 }, /* Icircumflex */ { 0x000000cf, 17165 }, /* Idiaeresis */ { 0x000000d0, 12064 }, /* ETH */ { 0x000000d1, 20155 }, /* Ntilde */ { 0x000000d2, 20527 }, /* Ograve */ { 0x000000d3, 20204 }, /* Oacute */ { 0x000000d4, 20268 }, /* Ocircumflex */ { 0x000000d5, 21310 }, /* Otilde */ { 0x000000d6, 20466 }, /* Odiaeresis */ { 0x000000d7, 19839 }, /* multiply */ { 0x000000d8, 21296 }, /* Oslash */ { 0x000000d9, 25971 }, /* Ugrave */ { 0x000000da, 25851 }, /* Uacute */ { 0x000000db, 25899 }, /* Ucircumflex */ { 0x000000dc, 25923 }, /* Udiaeresis */ { 0x000000dd, 28976 }, /* Yacute */ { 0x000000de, 25499 }, /* THORN */ { 0x000000df, 23820 }, /* ssharp */ { 0x000000e0, 861 }, /* agrave */ { 0x000000e1, 409 }, /* aacute */ { 0x000000e2, 634 }, /* acircumflex */ { 0x000000e3, 3302 }, /* atilde */ { 0x000000e4, 837 }, /* adiaeresis */ { 0x000000e5, 2042 }, /* aring */ { 0x000000e6, 851 }, /* ae */ { 0x000000e7, 8548 }, /* ccedilla */ { 0x000000e8, 11731 }, /* egrave */ { 0x000000e9, 11455 }, /* eacute */ { 0x000000ea, 11508 }, /* ecircumflex */ { 0x000000eb, 11713 }, /* ediaeresis */ { 0x000000ec, 17212 }, /* igrave */ { 0x000000ed, 17090 }, /* iacute */ { 0x000000ee, 17143 }, /* icircumflex */ { 0x000000ef, 17176 }, /* idiaeresis */ { 0x000000f0, 12072 }, /* eth */ { 0x000000f1, 20162 }, /* ntilde */ { 0x000000f2, 20534 }, /* ograve */ { 0x000000f3, 20211 }, /* oacute */ { 0x000000f4, 20280 }, /* ocircumflex */ { 0x000000f5, 21317 }, /* otilde */ { 0x000000f6, 20477 }, /* odiaeresis */ { 0x000000f7, 11242 }, /* division */ { 0x000000f8, 21303 }, /* oslash */ { 0x000000f9, 25978 }, /* ugrave */ { 0x000000fa, 25858 }, /* uacute */ { 0x000000fb, 25911 }, /* ucircumflex */ { 0x000000fc, 25934 }, /* udiaeresis */ { 0x000000fd, 28983 }, /* yacute */ { 0x000000fe, 25511 }, /* thorn */ { 0x000000ff, 29034 }, /* ydiaeresis */ { 0x000001a1, 918 }, /* Aogonek */ { 0x000001a2, 8383 }, /* breve */ { 0x000001a3, 19517 }, /* Lstroke */ { 0x000001a5, 19212 }, /* Lcaron */ { 0x000001a6, 22603 }, /* Sacute */ { 0x000001a9, 22617 }, /* Scaron */ { 0x000001aa, 22631 }, /* Scedilla */ { 0x000001ab, 24322 }, /* Tcaron */ { 0x000001ac, 29124 }, /* Zacute */ { 0x000001ae, 29138 }, /* Zcaron */ { 0x000001af, 29104 }, /* Zabovedot */ { 0x000001b1, 926 }, /* aogonek */ { 0x000001b2, 20520 }, /* ogonek */ { 0x000001b3, 19525 }, /* lstroke */ { 0x000001b5, 19219 }, /* lcaron */ { 0x000001b6, 22610 }, /* sacute */ { 0x000001b7, 8519 }, /* caron */ { 0x000001b9, 22624 }, /* scaron */ { 0x000001ba, 22640 }, /* scedilla */ { 0x000001bb, 24329 }, /* tcaron */ { 0x000001bc, 29131 }, /* zacute */ { 0x000001bd, 11283 }, /* doubleacute */ { 0x000001be, 29145 }, /* zcaron */ { 0x000001bf, 29114 }, /* zabovedot */ { 0x000001c0, 22272 }, /* Racute */ { 0x000001c3, 445 }, /* Abreve */ { 0x000001c5, 19147 }, /* Lacute */ { 0x000001c6, 8475 }, /* Cacute */ { 0x000001c8, 8525 }, /* Ccaron */ { 0x000001ca, 12035 }, /* Eogonek */ { 0x000001cc, 11482 }, /* Ecaron */ { 0x000001cf, 10365 }, /* Dcaron */ { 0x000001d0, 11401 }, /* Dstroke */ { 0x000001d1, 19953 }, /* Nacute */ { 0x000001d2, 19977 }, /* Ncaron */ { 0x000001d5, 20488 }, /* Odoubleacute */ { 0x000001d8, 22294 }, /* Rcaron */ { 0x000001d9, 26452 }, /* Uring */ { 0x000001db, 25945 }, /* Udoubleacute */ { 0x000001de, 24336 }, /* Tcedilla */ { 0x000001e0, 22279 }, /* racute */ { 0x000001e3, 452 }, /* abreve */ { 0x000001e5, 19154 }, /* lacute */ { 0x000001e6, 8482 }, /* cacute */ { 0x000001e8, 8532 }, /* ccaron */ { 0x000001ea, 12043 }, /* eogonek */ { 0x000001ec, 11489 }, /* ecaron */ { 0x000001ef, 10372 }, /* dcaron */ { 0x000001f0, 11409 }, /* dstroke */ { 0x000001f1, 19960 }, /* nacute */ { 0x000001f2, 19984 }, /* ncaron */ { 0x000001f5, 20501 }, /* odoubleacute */ { 0x000001f8, 22301 }, /* rcaron */ { 0x000001f9, 26458 }, /* uring */ { 0x000001fb, 25958 }, /* udoubleacute */ { 0x000001fe, 24345 }, /* tcedilla */ { 0x000001ff, 436 }, /* abovedot */ { 0x000002a1, 17027 }, /* Hstroke */ { 0x000002a6, 16056 }, /* Hcircumflex */ { 0x000002a9, 17073 }, /* Iabovedot */ { 0x000002ab, 12689 }, /* Gbreve */ { 0x000002ac, 18118 }, /* Jcircumflex */ { 0x000002b1, 17035 }, /* hstroke */ { 0x000002b6, 16068 }, /* hcircumflex */ { 0x000002b9, 17187 }, /* idotless */ { 0x000002bb, 12696 }, /* gbreve */ { 0x000002bc, 18130 }, /* jcircumflex */ { 0x000002c5, 8455 }, /* Cabovedot */ { 0x000002c6, 8557 }, /* Ccircumflex */ { 0x000002d5, 12669 }, /* Gabovedot */ { 0x000002d8, 12735 }, /* Gcircumflex */ { 0x000002dd, 25885 }, /* Ubreve */ { 0x000002de, 22661 }, /* Scircumflex */ { 0x000002e5, 8465 }, /* cabovedot */ { 0x000002e6, 8569 }, /* ccircumflex */ { 0x000002f5, 12679 }, /* gabovedot */ { 0x000002f8, 12747 }, /* gcircumflex */ { 0x000002fd, 25892 }, /* ubreve */ { 0x000002fe, 22673 }, /* scircumflex */ { 0x000003a2, 19108 }, /* kra */ { 0x000003a3, 22308 }, /* Rcedilla */ { 0x000003a5, 18100 }, /* Itilde */ { 0x000003a6, 19226 }, /* Lcedilla */ { 0x000003aa, 11839 }, /* Emacron */ { 0x000003ab, 12717 }, /* Gcedilla */ { 0x000003ac, 25788 }, /* Tslash */ { 0x000003b3, 22317 }, /* rcedilla */ { 0x000003b5, 18107 }, /* itilde */ { 0x000003b6, 19235 }, /* lcedilla */ { 0x000003ba, 11847 }, /* emacron */ { 0x000003bb, 12726 }, /* gcedilla */ { 0x000003bc, 25795 }, /* tslash */ { 0x000003bd, 11983 }, /* ENG */ { 0x000003bf, 11987 }, /* eng */ { 0x000003c0, 892 }, /* Amacron */ { 0x000003c7, 17338 }, /* Iogonek */ { 0x000003cc, 11428 }, /* Eabovedot */ { 0x000003cf, 17231 }, /* Imacron */ { 0x000003d1, 19991 }, /* Ncedilla */ { 0x000003d2, 20679 }, /* Omacron */ { 0x000003d3, 18779 }, /* Kcedilla */ { 0x000003d9, 26368 }, /* Uogonek */ { 0x000003dd, 26469 }, /* Utilde */ { 0x000003de, 26321 }, /* Umacron */ { 0x000003e0, 900 }, /* amacron */ { 0x000003e7, 17346 }, /* iogonek */ { 0x000003ec, 11438 }, /* eabovedot */ { 0x000003ef, 17239 }, /* imacron */ { 0x000003f1, 20000 }, /* ncedilla */ { 0x000003f2, 20687 }, /* omacron */ { 0x000003f3, 18788 }, /* kcedilla */ { 0x000003f9, 26376 }, /* uogonek */ { 0x000003fd, 26476 }, /* utilde */ { 0x000003fe, 26329 }, /* umacron */ { 0x0000047e, 21364 }, /* overline */ { 0x000004a1, 18243 }, /* kana_fullstop */ { 0x000004a2, 18477 }, /* kana_openingbracket */ { 0x000004a3, 18173 }, /* kana_closingbracket */ { 0x000004a4, 18193 }, /* kana_comma */ { 0x000004a5, 18204 }, /* kana_conjunctive */ { 0x000004a6, 18689 }, /* kana_WO */ { 0x000004a7, 18150 }, /* kana_a */ { 0x000004a8, 18297 }, /* kana_i */ { 0x000004a9, 18667 }, /* kana_u */ { 0x000004aa, 18221 }, /* kana_e */ { 0x000004ab, 18463 }, /* kana_o */ { 0x000004ac, 18697 }, /* kana_ya */ { 0x000004ad, 18729 }, /* kana_yu */ { 0x000004ae, 18713 }, /* kana_yo */ { 0x000004af, 18633 }, /* kana_tsu */ { 0x000004b0, 22130 }, /* prolongedsound */ { 0x000004b1, 18157 }, /* kana_A */ { 0x000004b2, 18304 }, /* kana_I */ { 0x000004b3, 18674 }, /* kana_U */ { 0x000004b4, 18228 }, /* kana_E */ { 0x000004b5, 18470 }, /* kana_O */ { 0x000004b6, 18311 }, /* kana_KA */ { 0x000004b7, 18327 }, /* kana_KI */ { 0x000004b8, 18343 }, /* kana_KU */ { 0x000004b9, 18319 }, /* kana_KE */ { 0x000004ba, 18335 }, /* kana_KO */ { 0x000004bb, 18537 }, /* kana_SA */ { 0x000004bc, 18553 }, /* kana_SHI */ { 0x000004bd, 18581 }, /* kana_SU */ { 0x000004be, 18545 }, /* kana_SE */ { 0x000004bf, 18573 }, /* kana_SO */ { 0x000004c0, 18601 }, /* kana_TA */ { 0x000004c1, 18164 }, /* kana_CHI */ { 0x000004c2, 18642 }, /* kana_TSU */ { 0x000004c3, 18609 }, /* kana_TE */ { 0x000004c4, 18625 }, /* kana_TO */ { 0x000004c5, 18423 }, /* kana_NA */ { 0x000004c6, 18439 }, /* kana_NI */ { 0x000004c7, 18455 }, /* kana_NU */ { 0x000004c8, 18431 }, /* kana_NE */ { 0x000004c9, 18447 }, /* kana_NO */ { 0x000004ca, 18257 }, /* kana_HA */ { 0x000004cb, 18273 }, /* kana_HI */ { 0x000004cc, 18235 }, /* kana_FU */ { 0x000004cd, 18265 }, /* kana_HE */ { 0x000004ce, 18281 }, /* kana_HO */ { 0x000004cf, 18361 }, /* kana_MA */ { 0x000004d0, 18377 }, /* kana_MI */ { 0x000004d1, 18408 }, /* kana_MU */ { 0x000004d2, 18369 }, /* kana_ME */ { 0x000004d3, 18400 }, /* kana_MO */ { 0x000004d4, 18705 }, /* kana_YA */ { 0x000004d5, 18737 }, /* kana_YU */ { 0x000004d6, 18721 }, /* kana_YO */ { 0x000004d7, 18497 }, /* kana_RA */ { 0x000004d8, 18513 }, /* kana_RI */ { 0x000004d9, 18529 }, /* kana_RU */ { 0x000004da, 18505 }, /* kana_RE */ { 0x000004db, 18521 }, /* kana_RO */ { 0x000004dc, 18681 }, /* kana_WA */ { 0x000004dd, 18416 }, /* kana_N */ { 0x000004de, 26519 }, /* voicedsound */ { 0x000004df, 22744 }, /* semivoicedsound */ { 0x000005ac, 1109 }, /* Arabic_comma */ { 0x000005bb, 1764 }, /* Arabic_semicolon */ { 0x000005bf, 1698 }, /* Arabic_question_mark */ { 0x000005c1, 1303 }, /* Arabic_hamza */ { 0x000005c2, 1599 }, /* Arabic_maddaonalef */ { 0x000005c3, 1354 }, /* Arabic_hamzaonalef */ { 0x000005c4, 1373 }, /* Arabic_hamzaonwaw */ { 0x000005c5, 1409 }, /* Arabic_hamzaunderalef */ { 0x000005c6, 1391 }, /* Arabic_hamzaonyeh */ { 0x000005c7, 1067 }, /* Arabic_alef */ { 0x000005c8, 1098 }, /* Arabic_beh */ { 0x000005c9, 1909 }, /* Arabic_tehmarbuta */ { 0x000005ca, 1898 }, /* Arabic_teh */ { 0x000005cb, 1939 }, /* Arabic_theh */ { 0x000005cc, 1481 }, /* Arabic_jeem */ { 0x000005cd, 1292 }, /* Arabic_hah */ { 0x000005ce, 1557 }, /* Arabic_khah */ { 0x000005cf, 1133 }, /* Arabic_dal */ { 0x000005d0, 1927 }, /* Arabic_thal */ { 0x000005d1, 1719 }, /* Arabic_ra */ { 0x000005d2, 2024 }, /* Arabic_zain */ { 0x000005d3, 1752 }, /* Arabic_seen */ { 0x000005d4, 1795 }, /* Arabic_sheen */ { 0x000005d5, 1741 }, /* Arabic_sad */ { 0x000005d6, 1122 }, /* Arabic_dad */ { 0x000005d7, 1859 }, /* Arabic_tah */ { 0x000005d8, 2013 }, /* Arabic_zah */ { 0x000005d9, 1056 }, /* Arabic_ain */ { 0x000005da, 1269 }, /* Arabic_ghain */ { 0x000005e0, 1870 }, /* Arabic_tatweel */ { 0x000005e1, 1231 }, /* Arabic_feh */ { 0x000005e2, 1687 }, /* Arabic_qaf */ { 0x000005e3, 1504 }, /* Arabic_kaf */ { 0x000005e4, 1569 }, /* Arabic_lam */ { 0x000005e5, 1618 }, /* Arabic_meem */ { 0x000005e6, 1630 }, /* Arabic_noon */ { 0x000005e7, 1282 }, /* Arabic_ha */ { 0x000005e8, 1974 }, /* Arabic_waw */ { 0x000005e9, 1079 }, /* Arabic_alefmaksura */ { 0x000005ea, 1985 }, /* Arabic_yeh */ { 0x000005eb, 1215 }, /* Arabic_fathatan */ { 0x000005ec, 1157 }, /* Arabic_dammatan */ { 0x000005ed, 1528 }, /* Arabic_kasratan */ { 0x000005ee, 1202 }, /* Arabic_fatha */ { 0x000005ef, 1144 }, /* Arabic_damma */ { 0x000005f0, 1515 }, /* Arabic_kasra */ { 0x000005f1, 1781 }, /* Arabic_shadda */ { 0x000005f2, 1808 }, /* Arabic_sukun */ { 0x000006a1, 22760 }, /* Serbian_dje */ { 0x000006a2, 19585 }, /* Macedonia_gje */ { 0x000006a3, 9456 }, /* Cyrillic_io */ { 0x000006a4, 26199 }, /* Ukrainian_ie */ { 0x000006a5, 19557 }, /* Macedonia_dse */ { 0x000006a6, 26175 }, /* Ukrainian_i */ { 0x000006a7, 26225 }, /* Ukrainian_yi */ { 0x000006a8, 9480 }, /* Cyrillic_je */ { 0x000006a9, 9618 }, /* Cyrillic_lje */ { 0x000006aa, 9644 }, /* Cyrillic_nje */ { 0x000006ab, 22878 }, /* Serbian_tshe */ { 0x000006ac, 19613 }, /* Macedonia_kje */ { 0x000006ad, 26123 }, /* Ukrainian_ghe_with_upturn */ { 0x000006ae, 8399 }, /* Byelorussian_shortu */ { 0x000006af, 8972 }, /* Cyrillic_dzhe */ { 0x000006b0, 20189 }, /* numerosign */ { 0x000006b1, 22772 }, /* Serbian_DJE */ { 0x000006b2, 19599 }, /* Macedonia_GJE */ { 0x000006b3, 9468 }, /* Cyrillic_IO */ { 0x000006b4, 26212 }, /* Ukrainian_IE */ { 0x000006b5, 19571 }, /* Macedonia_DSE */ { 0x000006b6, 26187 }, /* Ukrainian_I */ { 0x000006b7, 26238 }, /* Ukrainian_YI */ { 0x000006b8, 9492 }, /* Cyrillic_JE */ { 0x000006b9, 9631 }, /* Cyrillic_LJE */ { 0x000006ba, 9657 }, /* Cyrillic_NJE */ { 0x000006bb, 22891 }, /* Serbian_TSHE */ { 0x000006bc, 19627 }, /* Macedonia_KJE */ { 0x000006bd, 26149 }, /* Ukrainian_GHE_WITH_UPTURN */ { 0x000006be, 8419 }, /* Byelorussian_SHORTU */ { 0x000006bf, 8986 }, /* Cyrillic_DZHE */ { 0x000006c0, 10200 }, /* Cyrillic_yu */ { 0x000006c1, 8782 }, /* Cyrillic_a */ { 0x000006c2, 8804 }, /* Cyrillic_be */ { 0x000006c3, 9952 }, /* Cyrillic_tse */ { 0x000006c4, 8948 }, /* Cyrillic_de */ { 0x000006c5, 9432 }, /* Cyrillic_ie */ { 0x000006c6, 9022 }, /* Cyrillic_ef */ { 0x000006c7, 9210 }, /* Cyrillic_ghe */ { 0x000006c8, 9270 }, /* Cyrillic_ha */ { 0x000006c9, 9374 }, /* Cyrillic_i */ { 0x000006ca, 9860 }, /* Cyrillic_shorti */ { 0x000006cb, 9504 }, /* Cyrillic_ka */ { 0x000006cc, 9046 }, /* Cyrillic_el */ { 0x000006cd, 9070 }, /* Cyrillic_em */ { 0x000006ce, 9094 }, /* Cyrillic_en */ { 0x000006cf, 9670 }, /* Cyrillic_o */ { 0x000006d0, 9722 }, /* Cyrillic_pe */ { 0x000006d1, 10148 }, /* Cyrillic_ya */ { 0x000006d2, 9162 }, /* Cyrillic_er */ { 0x000006d3, 9186 }, /* Cyrillic_es */ { 0x000006d4, 9928 }, /* Cyrillic_te */ { 0x000006d5, 9978 }, /* Cyrillic_u */ { 0x000006d6, 10248 }, /* Cyrillic_zhe */ { 0x000006d7, 10124 }, /* Cyrillic_ve */ { 0x000006d8, 9892 }, /* Cyrillic_softsign */ { 0x000006d9, 10172 }, /* Cyrillic_yeru */ { 0x000006da, 10224 }, /* Cyrillic_ze */ { 0x000006db, 9776 }, /* Cyrillic_sha */ { 0x000006dc, 9000 }, /* Cyrillic_e */ { 0x000006dd, 9802 }, /* Cyrillic_shcha */ { 0x000006de, 8828 }, /* Cyrillic_che */ { 0x000006df, 9338 }, /* Cyrillic_hardsign */ { 0x000006e0, 10212 }, /* Cyrillic_YU */ { 0x000006e1, 8793 }, /* Cyrillic_A */ { 0x000006e2, 8816 }, /* Cyrillic_BE */ { 0x000006e3, 9965 }, /* Cyrillic_TSE */ { 0x000006e4, 8960 }, /* Cyrillic_DE */ { 0x000006e5, 9444 }, /* Cyrillic_IE */ { 0x000006e6, 9034 }, /* Cyrillic_EF */ { 0x000006e7, 9223 }, /* Cyrillic_GHE */ { 0x000006e8, 9282 }, /* Cyrillic_HA */ { 0x000006e9, 9385 }, /* Cyrillic_I */ { 0x000006ea, 9876 }, /* Cyrillic_SHORTI */ { 0x000006eb, 9516 }, /* Cyrillic_KA */ { 0x000006ec, 9058 }, /* Cyrillic_EL */ { 0x000006ed, 9082 }, /* Cyrillic_EM */ { 0x000006ee, 9106 }, /* Cyrillic_EN */ { 0x000006ef, 9681 }, /* Cyrillic_O */ { 0x000006f0, 9734 }, /* Cyrillic_PE */ { 0x000006f1, 10160 }, /* Cyrillic_YA */ { 0x000006f2, 9174 }, /* Cyrillic_ER */ { 0x000006f3, 9198 }, /* Cyrillic_ES */ { 0x000006f4, 9940 }, /* Cyrillic_TE */ { 0x000006f5, 9989 }, /* Cyrillic_U */ { 0x000006f6, 10261 }, /* Cyrillic_ZHE */ { 0x000006f7, 10136 }, /* Cyrillic_VE */ { 0x000006f8, 9910 }, /* Cyrillic_SOFTSIGN */ { 0x000006f9, 10186 }, /* Cyrillic_YERU */ { 0x000006fa, 10236 }, /* Cyrillic_ZE */ { 0x000006fb, 9789 }, /* Cyrillic_SHA */ { 0x000006fc, 9011 }, /* Cyrillic_E */ { 0x000006fd, 9817 }, /* Cyrillic_SHCHA */ { 0x000006fe, 8841 }, /* Cyrillic_CHE */ { 0x000006ff, 9356 }, /* Cyrillic_HARDSIGN */ { 0x000007a1, 13342 }, /* Greek_ALPHAaccent */ { 0x000007a2, 13472 }, /* Greek_EPSILONaccent */ { 0x000007a3, 13532 }, /* Greek_ETAaccent */ { 0x000007a4, 13647 }, /* Greek_IOTAaccent */ { 0x000007a5, 13726 }, /* Greek_IOTAdieresis */ { 0x000007a7, 13962 }, /* Greek_OMICRONaccent */ { 0x000007a8, 14189 }, /* Greek_UPSILONaccent */ { 0x000007a9, 14257 }, /* Greek_UPSILONdieresis */ { 0x000007ab, 13898 }, /* Greek_OMEGAaccent */ { 0x000007ae, 13297 }, /* Greek_accentdieresis */ { 0x000007af, 13610 }, /* Greek_horizbar */ { 0x000007b1, 13360 }, /* Greek_alphaaccent */ { 0x000007b2, 13492 }, /* Greek_epsilonaccent */ { 0x000007b3, 13548 }, /* Greek_etaaccent */ { 0x000007b4, 13664 }, /* Greek_iotaaccent */ { 0x000007b5, 13745 }, /* Greek_iotadieresis */ { 0x000007b6, 13681 }, /* Greek_iotaaccentdieresis */ { 0x000007b7, 13982 }, /* Greek_omicronaccent */ { 0x000007b8, 14209 }, /* Greek_upsilonaccent */ { 0x000007b9, 14279 }, /* Greek_upsilondieresis */ { 0x000007ba, 14229 }, /* Greek_upsilonaccentdieresis */ { 0x000007bb, 13916 }, /* Greek_omegaaccent */ { 0x000007c1, 13318 }, /* Greek_ALPHA */ { 0x000007c2, 13378 }, /* Greek_BETA */ { 0x000007c3, 13586 }, /* Greek_GAMMA */ { 0x000007c4, 13420 }, /* Greek_DELTA */ { 0x000007c5, 13444 }, /* Greek_EPSILON */ { 0x000007c6, 14319 }, /* Greek_ZETA */ { 0x000007c7, 13512 }, /* Greek_ETA */ { 0x000007c8, 14137 }, /* Greek_THETA */ { 0x000007c9, 13625 }, /* Greek_IOTA */ { 0x000007ca, 13764 }, /* Greek_KAPPA */ { 0x000007cb, 13814 }, /* Greek_LAMDA */ { 0x000007cc, 13838 }, /* Greek_MU */ { 0x000007cd, 13856 }, /* Greek_NU */ { 0x000007ce, 14301 }, /* Greek_XI */ { 0x000007cf, 13934 }, /* Greek_OMICRON */ { 0x000007d0, 14022 }, /* Greek_PI */ { 0x000007d1, 14060 }, /* Greek_RHO */ { 0x000007d2, 14080 }, /* Greek_SIGMA */ { 0x000007d4, 14117 }, /* Greek_TAU */ { 0x000007d5, 14161 }, /* Greek_UPSILON */ { 0x000007d6, 14002 }, /* Greek_PHI */ { 0x000007d7, 13400 }, /* Greek_CHI */ { 0x000007d8, 14040 }, /* Greek_PSI */ { 0x000007d9, 13874 }, /* Greek_OMEGA */ { 0x000007e1, 13330 }, /* Greek_alpha */ { 0x000007e2, 13389 }, /* Greek_beta */ { 0x000007e3, 13598 }, /* Greek_gamma */ { 0x000007e4, 13432 }, /* Greek_delta */ { 0x000007e5, 13458 }, /* Greek_epsilon */ { 0x000007e6, 14330 }, /* Greek_zeta */ { 0x000007e7, 13522 }, /* Greek_eta */ { 0x000007e8, 14149 }, /* Greek_theta */ { 0x000007e9, 13636 }, /* Greek_iota */ { 0x000007ea, 13776 }, /* Greek_kappa */ { 0x000007eb, 13826 }, /* Greek_lamda */ { 0x000007ec, 13847 }, /* Greek_mu */ { 0x000007ed, 13865 }, /* Greek_nu */ { 0x000007ee, 14310 }, /* Greek_xi */ { 0x000007ef, 13948 }, /* Greek_omicron */ { 0x000007f0, 14031 }, /* Greek_pi */ { 0x000007f1, 14070 }, /* Greek_rho */ { 0x000007f2, 14092 }, /* Greek_sigma */ { 0x000007f3, 13564 }, /* Greek_finalsmallsigma */ { 0x000007f4, 14127 }, /* Greek_tau */ { 0x000007f5, 14175 }, /* Greek_upsilon */ { 0x000007f6, 14012 }, /* Greek_phi */ { 0x000007f7, 13410 }, /* Greek_chi */ { 0x000007f8, 14050 }, /* Greek_psi */ { 0x000007f9, 13886 }, /* Greek_omega */ { 0x000008a1, 19356 }, /* leftradical */ { 0x000008a2, 25621 }, /* topleftradical */ { 0x000008a3, 16667 }, /* horizconnector */ { 0x000008a4, 25595 }, /* topintegral */ { 0x000008a5, 3422 }, /* botintegral */ { 0x000008a6, 26505 }, /* vertconnector */ { 0x000008a7, 25636 }, /* topleftsqbracket */ { 0x000008a8, 3448 }, /* botleftsqbracket */ { 0x000008a9, 25685 }, /* toprightsqbracket */ { 0x000008aa, 3497 }, /* botrightsqbracket */ { 0x000008ab, 25607 }, /* topleftparens */ { 0x000008ac, 3434 }, /* botleftparens */ { 0x000008ad, 25670 }, /* toprightparens */ { 0x000008ae, 3482 }, /* botrightparens */ { 0x000008af, 19306 }, /* leftmiddlecurlybrace */ { 0x000008b0, 22440 }, /* rightmiddlecurlybrace */ { 0x000008b1, 25653 }, /* topleftsummation */ { 0x000008b2, 3465 }, /* botleftsummation */ { 0x000008b3, 25726 }, /* topvertsummationconnector */ { 0x000008b4, 3538 }, /* botvertsummationconnector */ { 0x000008b5, 25703 }, /* toprightsummation */ { 0x000008b6, 3515 }, /* botrightsummation */ { 0x000008b7, 22462 }, /* rightmiddlesummation */ { 0x000008bc, 19417 }, /* lessthanequal */ { 0x000008bd, 20125 }, /* notequal */ { 0x000008be, 13280 }, /* greaterthanequal */ { 0x000008bf, 17313 }, /* integral */ { 0x000008c0, 25479 }, /* therefore */ { 0x000008c1, 26487 }, /* variation */ { 0x000008c2, 17275 }, /* infinity */ { 0x000008c5, 19947 }, /* nabla */ { 0x000008c8, 954 }, /* approximate */ { 0x000008c9, 22999 }, /* similarequal */ { 0x000008cd, 17196 }, /* ifonlyif */ { 0x000008ce, 17247 }, /* implies */ { 0x000008cf, 17155 }, /* identical */ { 0x000008d6, 22286 }, /* radical */ { 0x000008da, 17255 }, /* includedin */ { 0x000008db, 17266 }, /* includes */ { 0x000008dc, 17322 }, /* intersection */ { 0x000008dd, 26362 }, /* union */ { 0x000008de, 19457 }, /* logicaland */ { 0x000008df, 19468 }, /* logicalor */ { 0x000008ef, 21463 }, /* partialderivative */ { 0x000008f6, 12656 }, /* function */ { 0x000008fb, 19266 }, /* leftarrow */ { 0x000008fc, 26387 }, /* uparrow */ { 0x000008fd, 22397 }, /* rightarrow */ { 0x000008fe, 11332 }, /* downarrow */ { 0x000009df, 3410 }, /* blank */ { 0x000009e0, 23790 }, /* soliddiamond */ { 0x000009e1, 8603 }, /* checkerboard */ { 0x000009e2, 17043 }, /* ht */ { 0x000009e3, 12413 }, /* ff */ { 0x000009e4, 8727 }, /* cr */ { 0x000009e5, 19431 }, /* lf */ { 0x000009e8, 20075 }, /* nl */ { 0x000009e9, 26542 }, /* vt */ { 0x000009ea, 19502 }, /* lowrightcorner */ { 0x000009eb, 26416 }, /* uprightcorner */ { 0x000009ec, 26403 }, /* upleftcorner */ { 0x000009ed, 19488 }, /* lowleftcorner */ { 0x000009ee, 8730 }, /* crossinglines */ { 0x000009ef, 16682 }, /* horizlinescan1 */ { 0x000009f0, 16697 }, /* horizlinescan3 */ { 0x000009f1, 16712 }, /* horizlinescan5 */ { 0x000009f2, 16727 }, /* horizlinescan7 */ { 0x000009f3, 16742 }, /* horizlinescan9 */ { 0x000009f4, 19397 }, /* leftt */ { 0x000009f5, 22545 }, /* rightt */ { 0x000009f6, 3533 }, /* bott */ { 0x000009f7, 25721 }, /* topt */ { 0x000009f8, 26497 }, /* vertbar */ { 0x00000aa1, 11928 }, /* emspace */ { 0x00000aa2, 12027 }, /* enspace */ { 0x00000aa3, 11821 }, /* em3space */ { 0x00000aa4, 11830 }, /* em4space */ { 0x00000aa5, 11221 }, /* digitspace */ { 0x00000aa6, 22145 }, /* punctspace */ { 0x00000aa7, 25489 }, /* thinspace */ { 0x00000aa8, 14382 }, /* hairspace */ { 0x00000aa9, 11855 }, /* emdash */ { 0x00000aaa, 11940 }, /* endash */ { 0x00000aac, 22987 }, /* signifblank */ { 0x00000aae, 11812 }, /* ellipsis */ { 0x00000aaf, 11267 }, /* doubbaselinedot */ { 0x00000ab0, 20767 }, /* onethird */ { 0x00000ab1, 25837 }, /* twothirds */ { 0x00000ab2, 20705 }, /* onefifth */ { 0x00000ab3, 25802 }, /* twofifths */ { 0x00000ab4, 25530 }, /* threefifths */ { 0x00000ab5, 12607 }, /* fourfifths */ { 0x00000ab6, 20733 }, /* onesixth */ { 0x00000ab7, 12569 }, /* fivesixths */ { 0x00000ab8, 8506 }, /* careof */ { 0x00000abb, 12427 }, /* figdash */ { 0x00000abc, 19249 }, /* leftanglebracket */ { 0x00000abd, 11140 }, /* decimalpoint */ { 0x00000abe, 22379 }, /* rightanglebracket */ { 0x00000abf, 19681 }, /* marker */ { 0x00000ac3, 20695 }, /* oneeighth */ { 0x00000ac4, 25517 }, /* threeeighths */ { 0x00000ac5, 12557 }, /* fiveeighths */ { 0x00000ac6, 22904 }, /* seveneighths */ { 0x00000ac9, 25760 }, /* trademark */ { 0x00000aca, 22973 }, /* signaturemark */ { 0x00000acb, 25770 }, /* trademarkincircle */ { 0x00000acc, 19327 }, /* leftopentriangle */ { 0x00000acd, 22483 }, /* rightopentriangle */ { 0x00000ace, 11890 }, /* emopencircle */ { 0x00000acf, 11903 }, /* emopenrectangle */ { 0x00000ad0, 19377 }, /* leftsinglequotemark */ { 0x00000ad1, 22524 }, /* rightsinglequotemark */ { 0x00000ad2, 19286 }, /* leftdoublequotemark */ { 0x00000ad3, 22419 }, /* rightdoublequotemark */ { 0x00000ad4, 22067 }, /* prescription */ { 0x00000ad5, 21517 }, /* permille */ { 0x00000ad6, 19739 }, /* minutes */ { 0x00000ad7, 22711 }, /* seconds */ { 0x00000ad9, 19181 }, /* latincross */ { 0x00000ada, 16626 }, /* hexagram */ { 0x00000adb, 12455 }, /* filledrectbullet */ { 0x00000adc, 12435 }, /* filledlefttribullet */ { 0x00000add, 12472 }, /* filledrighttribullet */ { 0x00000ade, 11862 }, /* emfilledcircle */ { 0x00000adf, 11877 }, /* emfilledrect */ { 0x00000ae0, 11991 }, /* enopencircbullet */ { 0x00000ae1, 12008 }, /* enopensquarebullet */ { 0x00000ae2, 20794 }, /* openrectbullet */ { 0x00000ae3, 20836 }, /* opentribulletup */ { 0x00000ae4, 20818 }, /* opentribulletdown */ { 0x00000ae5, 20809 }, /* openstar */ { 0x00000ae6, 11947 }, /* enfilledcircbullet */ { 0x00000ae7, 11966 }, /* enfilledsqbullet */ { 0x00000ae8, 12513 }, /* filledtribulletup */ { 0x00000ae9, 12493 }, /* filledtribulletdown */ { 0x00000aea, 19344 }, /* leftpointer */ { 0x00000aeb, 22501 }, /* rightpointer */ { 0x00000aec, 8649 }, /* club */ { 0x00000aed, 11213 }, /* diamond */ { 0x00000aee, 16080 }, /* heart */ { 0x00000af0, 19668 }, /* maltesecross */ { 0x00000af1, 10358 }, /* dagger */ { 0x00000af2, 11295 }, /* doubledagger */ { 0x00000af3, 8616 }, /* checkmark */ { 0x00000af4, 3380 }, /* ballotcross */ { 0x00000af5, 19860 }, /* musicalsharp */ { 0x00000af6, 19848 }, /* musicalflat */ { 0x00000af7, 19657 }, /* malesymbol */ { 0x00000af8, 12400 }, /* femalesymbol */ { 0x00000af9, 24354 }, /* telephone */ { 0x00000afa, 24364 }, /* telephonerecorder */ { 0x00000afb, 21537 }, /* phonographcopyright */ { 0x00000afc, 8513 }, /* caret */ { 0x00000afd, 23028 }, /* singlelowquotemark */ { 0x00000afe, 11308 }, /* doublelowquotemark */ { 0x00000aff, 8775 }, /* cursor */ { 0x00000ba3, 19276 }, /* leftcaret */ { 0x00000ba6, 22408 }, /* rightcaret */ { 0x00000ba8, 11342 }, /* downcaret */ { 0x00000ba9, 26395 }, /* upcaret */ { 0x00000bc0, 21324 }, /* overbar */ { 0x00000bc2, 11371 }, /* downtack */ { 0x00000bc3, 26430 }, /* upshoe */ { 0x00000bc4, 11361 }, /* downstile */ { 0x00000bc6, 26337 }, /* underbar */ { 0x00000bca, 18142 }, /* jot */ { 0x00000bcc, 22160 }, /* quad */ { 0x00000bce, 26445 }, /* uptack */ { 0x00000bcf, 8626 }, /* circle */ { 0x00000bd3, 26437 }, /* upstile */ { 0x00000bd6, 11352 }, /* downshoe */ { 0x00000bd8, 22514 }, /* rightshoe */ { 0x00000bda, 19368 }, /* leftshoe */ { 0x00000bdc, 19403 }, /* lefttack */ { 0x00000bfc, 22552 }, /* righttack */ { 0x00000cdf, 16173 }, /* hebrew_doublelowline */ { 0x00000ce0, 16086 }, /* hebrew_aleph */ { 0x00000ce1, 16111 }, /* hebrew_bet */ { 0x00000ce2, 16292 }, /* hebrew_gimel */ { 0x00000ce3, 16146 }, /* hebrew_dalet */ { 0x00000ce4, 16319 }, /* hebrew_he */ { 0x00000ce5, 16531 }, /* hebrew_waw */ { 0x00000ce6, 16577 }, /* hebrew_zain */ { 0x00000ce7, 16134 }, /* hebrew_chet */ { 0x00000ce8, 16508 }, /* hebrew_tet */ { 0x00000ce9, 16542 }, /* hebrew_yod */ { 0x00000cea, 16194 }, /* hebrew_finalkaph */ { 0x00000ceb, 16340 }, /* hebrew_kaph */ { 0x00000cec, 16363 }, /* hebrew_lamed */ { 0x00000ced, 16211 }, /* hebrew_finalmem */ { 0x00000cee, 16376 }, /* hebrew_mem */ { 0x00000cef, 16227 }, /* hebrew_finalnun */ { 0x00000cf0, 16387 }, /* hebrew_nun */ { 0x00000cf1, 16432 }, /* hebrew_samech */ { 0x00000cf2, 16099 }, /* hebrew_ayin */ { 0x00000cf3, 16243 }, /* hebrew_finalpe */ { 0x00000cf4, 16398 }, /* hebrew_pe */ { 0x00000cf5, 16258 }, /* hebrew_finalzade */ { 0x00000cf6, 16553 }, /* hebrew_zade */ { 0x00000cf7, 16408 }, /* hebrew_qoph */ { 0x00000cf8, 16420 }, /* hebrew_resh */ { 0x00000cf9, 16460 }, /* hebrew_shin */ { 0x00000cfa, 16497 }, /* hebrew_taw */ { 0x00000da1, 24617 }, /* Thai_kokai */ { 0x00000da2, 24547 }, /* Thai_khokhai */ { 0x00000da3, 24573 }, /* Thai_khokhuat */ { 0x00000da4, 24587 }, /* Thai_khokhwai */ { 0x00000da5, 24560 }, /* Thai_khokhon */ { 0x00000da6, 24601 }, /* Thai_khorakhang */ { 0x00000da7, 24930 }, /* Thai_ngongu */ { 0x00000da8, 24423 }, /* Thai_chochan */ { 0x00000da9, 24450 }, /* Thai_choching */ { 0x00000daa, 24436 }, /* Thai_chochang */ { 0x00000dab, 25291 }, /* Thai_soso */ { 0x00000dac, 24464 }, /* Thai_chochoe */ { 0x00000dad, 25467 }, /* Thai_yoying */ { 0x00000dae, 24477 }, /* Thai_dochada */ { 0x00000daf, 25420 }, /* Thai_topatak */ { 0x00000db0, 25379 }, /* Thai_thothan */ { 0x00000db1, 25329 }, /* Thai_thonangmontho */ { 0x00000db2, 25348 }, /* Thai_thophuthao */ { 0x00000db3, 24956 }, /* Thai_nonen */ { 0x00000db4, 24490 }, /* Thai_dodek */ { 0x00000db5, 25433 }, /* Thai_totao */ { 0x00000db6, 25406 }, /* Thai_thothung */ { 0x00000db7, 25364 }, /* Thai_thothahan */ { 0x00000db8, 25392 }, /* Thai_thothong */ { 0x00000db9, 24967 }, /* Thai_nonu */ { 0x00000dba, 24409 }, /* Thai_bobaimai */ { 0x00000dbb, 25058 }, /* Thai_popla */ { 0x00000dbc, 25028 }, /* Thai_phophung */ { 0x00000dbd, 24501 }, /* Thai_fofa */ { 0x00000dbe, 25015 }, /* Thai_phophan */ { 0x00000dbf, 24511 }, /* Thai_fofan */ { 0x00000dc0, 25042 }, /* Thai_phosamphao */ { 0x00000dc1, 24920 }, /* Thai_moma */ { 0x00000dc2, 25456 }, /* Thai_yoyak */ { 0x00000dc3, 25069 }, /* Thai_rorua */ { 0x00000dc4, 25080 }, /* Thai_ru */ { 0x00000dc5, 24780 }, /* Thai_loling */ { 0x00000dc6, 24792 }, /* Thai_lu */ { 0x00000dc7, 25444 }, /* Thai_wowaen */ { 0x00000dc8, 25279 }, /* Thai_sosala */ { 0x00000dc9, 25267 }, /* Thai_sorusi */ { 0x00000dca, 25301 }, /* Thai_sosua */ { 0x00000dcb, 24522 }, /* Thai_hohip */ { 0x00000dcc, 24767 }, /* Thai_lochula */ { 0x00000dcd, 24977 }, /* Thai_oang */ { 0x00000dce, 24533 }, /* Thai_honokhuk */ { 0x00000dcf, 24987 }, /* Thai_paiyannoi */ { 0x00000dd0, 25088 }, /* Thai_saraa */ { 0x00000dd1, 24828 }, /* Thai_maihanakat */ { 0x00000dd2, 25099 }, /* Thai_saraaa */ { 0x00000dd3, 25162 }, /* Thai_saraam */ { 0x00000dd4, 25185 }, /* Thai_sarai */ { 0x00000dd5, 25196 }, /* Thai_saraii */ { 0x00000dd6, 25230 }, /* Thai_saraue */ { 0x00000dd7, 25242 }, /* Thai_sarauee */ { 0x00000dd8, 25219 }, /* Thai_sarau */ { 0x00000dd9, 25255 }, /* Thai_sarauu */ { 0x00000dda, 25002 }, /* Thai_phinthu */ { 0x00000dde, 24844 }, /* Thai_maihanakat_maitho */ { 0x00000ddf, 24399 }, /* Thai_baht */ { 0x00000de0, 25174 }, /* Thai_sarae */ { 0x00000de1, 25111 }, /* Thai_saraae */ { 0x00000de2, 25208 }, /* Thai_sarao */ { 0x00000de3, 25143 }, /* Thai_saraaimaimuan */ { 0x00000de4, 25123 }, /* Thai_saraaimaimalai */ { 0x00000de5, 24628 }, /* Thai_lakkhangyao */ { 0x00000de6, 24906 }, /* Thai_maiyamok */ { 0x00000de7, 24867 }, /* Thai_maitaikhu */ { 0x00000de8, 24817 }, /* Thai_maiek */ { 0x00000de9, 24882 }, /* Thai_maitho */ { 0x00000dea, 24894 }, /* Thai_maitri */ { 0x00000deb, 24800 }, /* Thai_maichattawa */ { 0x00000dec, 25312 }, /* Thai_thanthakhat */ { 0x00000ded, 24942 }, /* Thai_nikhahit */ { 0x00000df0, 24755 }, /* Thai_leksun */ { 0x00000df1, 24693 }, /* Thai_leknung */ { 0x00000df2, 24742 }, /* Thai_leksong */ { 0x00000df3, 24719 }, /* Thai_leksam */ { 0x00000df4, 24731 }, /* Thai_leksi */ { 0x00000df5, 24658 }, /* Thai_lekha */ { 0x00000df6, 24669 }, /* Thai_lekhok */ { 0x00000df7, 24645 }, /* Thai_lekchet */ { 0x00000df8, 24706 }, /* Thai_lekpaet */ { 0x00000df9, 24681 }, /* Thai_lekkao */ { 0x00000ea1, 15181 }, /* Hangul_Kiyeog */ { 0x00000ea2, 15726 }, /* Hangul_SsangKiyeog */ { 0x00000ea3, 15195 }, /* Hangul_KiyeogSios */ { 0x00000ea4, 15276 }, /* Hangul_Nieun */ { 0x00000ea5, 15307 }, /* Hangul_NieunJieuj */ { 0x00000ea6, 15289 }, /* Hangul_NieunHieuh */ { 0x00000ea7, 14488 }, /* Hangul_Dikeud */ { 0x00000ea8, 15689 }, /* Hangul_SsangDikeud */ { 0x00000ea9, 15461 }, /* Hangul_Rieul */ { 0x00000eaa, 15492 }, /* Hangul_RieulKiyeog */ { 0x00000eab, 15511 }, /* Hangul_RieulMieum */ { 0x00000eac, 15548 }, /* Hangul_RieulPieub */ { 0x00000ead, 15566 }, /* Hangul_RieulSios */ { 0x00000eae, 15583 }, /* Hangul_RieulTieut */ { 0x00000eaf, 15529 }, /* Hangul_RieulPhieuf */ { 0x00000eb0, 15474 }, /* Hangul_RieulHieuh */ { 0x00000eb1, 15238 }, /* Hangul_Mieum */ { 0x00000eb2, 15373 }, /* Hangul_Pieub */ { 0x00000eb3, 15745 }, /* Hangul_SsangPieub */ { 0x00000eb4, 15386 }, /* Hangul_PieubSios */ { 0x00000eb5, 15662 }, /* Hangul_Sios */ { 0x00000eb6, 15763 }, /* Hangul_SsangSios */ { 0x00000eb7, 14577 }, /* Hangul_Ieung */ { 0x00000eb8, 15154 }, /* Hangul_Jieuj */ { 0x00000eb9, 15708 }, /* Hangul_SsangJieuj */ { 0x00000eba, 14458 }, /* Hangul_Cieuc */ { 0x00000ebb, 15167 }, /* Hangul_Khieuq */ { 0x00000ebc, 15883 }, /* Hangul_Tieut */ { 0x00000ebd, 15359 }, /* Hangul_Phieuf */ { 0x00000ebe, 14555 }, /* Hangul_Hieuh */ { 0x00000ebf, 14399 }, /* Hangul_A */ { 0x00000ec0, 14408 }, /* Hangul_AE */ { 0x00000ec1, 15957 }, /* Hangul_YA */ { 0x00000ec2, 15967 }, /* Hangul_YAE */ { 0x00000ec3, 14522 }, /* Hangul_EO */ { 0x00000ec4, 14502 }, /* Hangul_E */ { 0x00000ec5, 15988 }, /* Hangul_YEO */ { 0x00000ec6, 15978 }, /* Hangul_YE */ { 0x00000ec7, 15325 }, /* Hangul_O */ { 0x00000ec8, 15905 }, /* Hangul_WA */ { 0x00000ec9, 15915 }, /* Hangul_WAE */ { 0x00000eca, 15334 }, /* Hangul_OE */ { 0x00000ecb, 16028 }, /* Hangul_YO */ { 0x00000ecc, 15896 }, /* Hangul_U */ { 0x00000ecd, 15936 }, /* Hangul_WEO */ { 0x00000ece, 15926 }, /* Hangul_WE */ { 0x00000ecf, 15947 }, /* Hangul_WI */ { 0x00000ed0, 16038 }, /* Hangul_YU */ { 0x00000ed1, 14532 }, /* Hangul_EU */ { 0x00000ed2, 16018 }, /* Hangul_YI */ { 0x00000ed3, 14568 }, /* Hangul_I */ { 0x00000ed4, 14682 }, /* Hangul_J_Kiyeog */ { 0x00000ed5, 15052 }, /* Hangul_J_SsangKiyeog */ { 0x00000ed6, 14698 }, /* Hangul_J_KiyeogSios */ { 0x00000ed7, 14760 }, /* Hangul_J_Nieun */ { 0x00000ed8, 14795 }, /* Hangul_J_NieunJieuj */ { 0x00000ed9, 14775 }, /* Hangul_J_NieunHieuh */ { 0x00000eda, 14605 }, /* Hangul_J_Dikeud */ { 0x00000edb, 14882 }, /* Hangul_J_Rieul */ { 0x00000edc, 14917 }, /* Hangul_J_RieulKiyeog */ { 0x00000edd, 14938 }, /* Hangul_J_RieulMieum */ { 0x00000ede, 14979 }, /* Hangul_J_RieulPieub */ { 0x00000edf, 14999 }, /* Hangul_J_RieulSios */ { 0x00000ee0, 15018 }, /* Hangul_J_RieulTieut */ { 0x00000ee1, 14958 }, /* Hangul_J_RieulPhieuf */ { 0x00000ee2, 14897 }, /* Hangul_J_RieulHieuh */ { 0x00000ee3, 14745 }, /* Hangul_J_Mieum */ { 0x00000ee4, 14848 }, /* Hangul_J_Pieub */ { 0x00000ee5, 14863 }, /* Hangul_J_PieubSios */ { 0x00000ee6, 15038 }, /* Hangul_J_Sios */ { 0x00000ee7, 15073 }, /* Hangul_J_SsangSios */ { 0x00000ee8, 14636 }, /* Hangul_J_Ieung */ { 0x00000ee9, 14651 }, /* Hangul_J_Jieuj */ { 0x00000eea, 14590 }, /* Hangul_J_Cieuc */ { 0x00000eeb, 14666 }, /* Hangul_J_Khieuq */ { 0x00000eec, 15092 }, /* Hangul_J_Tieut */ { 0x00000eed, 14832 }, /* Hangul_J_Phieuf */ { 0x00000eee, 14621 }, /* Hangul_J_Hieuh */ { 0x00000eef, 15601 }, /* Hangul_RieulYeorinHieuh */ { 0x00000ef0, 15793 }, /* Hangul_SunkyeongeumMieum */ { 0x00000ef1, 15844 }, /* Hangul_SunkyeongeumPieub */ { 0x00000ef2, 15344 }, /* Hangul_PanSios */ { 0x00000ef3, 15213 }, /* Hangul_KkogjiDalrinIeung */ { 0x00000ef4, 15818 }, /* Hangul_SunkyeongeumPhieuf */ { 0x00000ef5, 15999 }, /* Hangul_YeorinHieuh */ { 0x00000ef6, 14418 }, /* Hangul_AraeA */ { 0x00000ef7, 14431 }, /* Hangul_AraeAE */ { 0x00000ef8, 14815 }, /* Hangul_J_PanSios */ { 0x00000ef9, 14718 }, /* Hangul_J_KkogjiDalrinIeung */ { 0x00000efa, 15107 }, /* Hangul_J_YeorinHieuh */ { 0x00000eff, 18797 }, /* Korean_Won */ { 0x000013bc, 20514 }, /* OE */ { 0x000013bd, 20517 }, /* oe */ { 0x000013be, 29045 }, /* Ydiaeresis */ { 0x000020ac, 12090 }, /* EuroSign */ { 0x0000fd01, 125 }, /* 3270_Duplicate */ { 0x0000fd02, 195 }, /* 3270_FieldMark */ { 0x0000fd03, 343 }, /* 3270_Right2 */ { 0x0000fd04, 245 }, /* 3270_Left2 */ { 0x0000fd05, 33 }, /* 3270_BackTab */ { 0x0000fd06, 151 }, /* 3270_EraseEOF */ { 0x0000fd07, 165 }, /* 3270_EraseInput */ { 0x0000fd08, 332 }, /* 3270_Reset */ { 0x0000fd09, 310 }, /* 3270_Quit */ { 0x0000fd0a, 256 }, /* 3270_PA1 */ { 0x0000fd0b, 265 }, /* 3270_PA2 */ { 0x0000fd0c, 274 }, /* 3270_PA3 */ { 0x0000fd0d, 376 }, /* 3270_Test */ { 0x0000fd0e, 23 }, /* 3270_Attn */ { 0x0000fd0f, 74 }, /* 3270_CursorBlink */ { 0x0000fd10, 8 }, /* 3270_AltCursor */ { 0x0000fd11, 231 }, /* 3270_KeyClick */ { 0x0000fd12, 221 }, /* 3270_Jump */ { 0x0000fd13, 210 }, /* 3270_Ident */ { 0x0000fd14, 355 }, /* 3270_Rule */ { 0x0000fd15, 64 }, /* 3270_Copy */ { 0x0000fd16, 283 }, /* 3270_Play */ { 0x0000fd17, 365 }, /* 3270_Setup */ { 0x0000fd18, 320 }, /* 3270_Record */ { 0x0000fd19, 46 }, /* 3270_ChangeScreen */ { 0x0000fd1a, 109 }, /* 3270_DeleteWord */ { 0x0000fd1b, 181 }, /* 3270_ExSelect */ { 0x0000fd1c, 91 }, /* 3270_CursorSelect */ { 0x0000fd1d, 293 }, /* 3270_PrintScreen */ { 0x0000fd1e, 140 }, /* 3270_Enter */ { 0x0000fe01, 17781 }, /* ISO_Lock */ { 0x0000fe02, 17664 }, /* ISO_Level2_Latch */ { 0x0000fe03, 17714 }, /* ISO_Level3_Shift */ { 0x0000fe04, 17681 }, /* ISO_Level3_Latch */ { 0x0000fe05, 17698 }, /* ISO_Level3_Lock */ { 0x0000fe06, 17569 }, /* ISO_Group_Latch */ { 0x0000fe07, 17585 }, /* ISO_Group_Lock */ { 0x0000fe08, 17826 }, /* ISO_Next_Group */ { 0x0000fe09, 17841 }, /* ISO_Next_Group_Lock */ { 0x0000fe0a, 17950 }, /* ISO_Prev_Group */ { 0x0000fe0b, 17965 }, /* ISO_Prev_Group_Lock */ { 0x0000fe0c, 17532 }, /* ISO_First_Group */ { 0x0000fe0d, 17548 }, /* ISO_First_Group_Lock */ { 0x0000fe0e, 17616 }, /* ISO_Last_Group */ { 0x0000fe0f, 17631 }, /* ISO_Last_Group_Lock */ { 0x0000fe11, 17764 }, /* ISO_Level5_Shift */ { 0x0000fe12, 17731 }, /* ISO_Level5_Latch */ { 0x0000fe13, 17748 }, /* ISO_Level5_Lock */ { 0x0000fe20, 17651 }, /* ISO_Left_Tab */ { 0x0000fe21, 17809 }, /* ISO_Move_Line_Up */ { 0x0000fe22, 17790 }, /* ISO_Move_Line_Down */ { 0x0000fe23, 17883 }, /* ISO_Partial_Line_Up */ { 0x0000fe24, 17861 }, /* ISO_Partial_Line_Down */ { 0x0000fe25, 17903 }, /* ISO_Partial_Space_Left */ { 0x0000fe26, 17926 }, /* ISO_Partial_Space_Right */ { 0x0000fe27, 18059 }, /* ISO_Set_Margin_Left */ { 0x0000fe28, 18079 }, /* ISO_Set_Margin_Right */ { 0x0000fe29, 18010 }, /* ISO_Release_Margin_Left */ { 0x0000fe2a, 18034 }, /* ISO_Release_Margin_Right */ { 0x0000fe2b, 17985 }, /* ISO_Release_Both_Margins */ { 0x0000fe2c, 17470 }, /* ISO_Fast_Cursor_Left */ { 0x0000fe2d, 17491 }, /* ISO_Fast_Cursor_Right */ { 0x0000fe2e, 17513 }, /* ISO_Fast_Cursor_Up */ { 0x0000fe2f, 17449 }, /* ISO_Fast_Cursor_Down */ { 0x0000fe30, 17372 }, /* ISO_Continuous_Underline */ { 0x0000fe31, 17397 }, /* ISO_Discontinuous_Underline */ { 0x0000fe32, 17425 }, /* ISO_Emphasize */ { 0x0000fe33, 17354 }, /* ISO_Center_Object */ { 0x0000fe34, 17439 }, /* ISO_Enter */ { 0x0000fe50, 10858 }, /* dead_grave */ { 0x0000fe51, 10531 }, /* dead_acute */ { 0x0000fe52, 10754 }, /* dead_circumflex */ { 0x0000fe53, 11097 }, /* dead_tilde */ { 0x0000fe54, 10980 }, /* dead_macron */ { 0x0000fe55, 10700 }, /* dead_breve */ { 0x0000fe56, 10455 }, /* dead_abovedot */ { 0x0000fe57, 10795 }, /* dead_diaeresis */ { 0x0000fe58, 10493 }, /* dead_abovering */ { 0x0000fe59, 10810 }, /* dead_doubleacute */ { 0x0000fe5a, 10730 }, /* dead_caron */ { 0x0000fe5b, 10741 }, /* dead_cedilla */ { 0x0000fe5c, 11006 }, /* dead_ogonek */ { 0x0000fe5d, 10933 }, /* dead_iota */ { 0x0000fe5e, 11122 }, /* dead_voiced_sound */ { 0x0000fe5f, 11046 }, /* dead_semivoiced_sound */ { 0x0000fe60, 10615 }, /* dead_belowdot */ { 0x0000fe61, 10880 }, /* dead_hook */ { 0x0000fe62, 10890 }, /* dead_horn */ { 0x0000fe63, 11085 }, /* dead_stroke */ { 0x0000fe64, 10439 }, /* dead_abovecomma */ { 0x0000fe65, 10469 }, /* dead_abovereversedcomma */ { 0x0000fe66, 10827 }, /* dead_doublegrave */ { 0x0000fe67, 10646 }, /* dead_belowring */ { 0x0000fe68, 10629 }, /* dead_belowmacron */ { 0x0000fe69, 10558 }, /* dead_belowcircumflex */ { 0x0000fe6a, 10661 }, /* dead_belowtilde */ { 0x0000fe6b, 10542 }, /* dead_belowbreve */ { 0x0000fe6c, 10595 }, /* dead_belowdiaeresis */ { 0x0000fe6d, 10914 }, /* dead_invertedbreve */ { 0x0000fe6e, 10579 }, /* dead_belowcomma */ { 0x0000fe6f, 10770 }, /* dead_currency */ { 0x0000fe70, 583 }, /* AccessX_Enable */ { 0x0000fe71, 598 }, /* AccessX_Feedback_Enable */ { 0x0000fe72, 22342 }, /* RepeatKeys_Enable */ { 0x0000fe73, 23774 }, /* SlowKeys_Enable */ { 0x0000fe74, 3564 }, /* BounceKeys_Enable */ { 0x0000fe75, 23836 }, /* StickyKeys_Enable */ { 0x0000fe76, 19782 }, /* MouseKeys_Enable */ { 0x0000fe77, 19759 }, /* MouseKeys_Accel_Enable */ { 0x0000fe78, 21332 }, /* Overlay1_Enable */ { 0x0000fe79, 21348 }, /* Overlay2_Enable */ { 0x0000fe7a, 3309 }, /* AudibleBell_Enable */ { 0x0000fe80, 10425 }, /* dead_a */ { 0x0000fe81, 10432 }, /* dead_A */ { 0x0000fe82, 10844 }, /* dead_e */ { 0x0000fe83, 10851 }, /* dead_E */ { 0x0000fe84, 10900 }, /* dead_i */ { 0x0000fe85, 10907 }, /* dead_I */ { 0x0000fe86, 10992 }, /* dead_o */ { 0x0000fe87, 10999 }, /* dead_O */ { 0x0000fe88, 11108 }, /* dead_u */ { 0x0000fe89, 11115 }, /* dead_U */ { 0x0000fe8a, 11068 }, /* dead_small_schwa */ { 0x0000fe8b, 10711 }, /* dead_capital_schwa */ { 0x0000fe8c, 10869 }, /* dead_greek */ { 0x0000fe90, 10967 }, /* dead_lowline */ { 0x0000fe91, 10508 }, /* dead_aboveverticalline */ { 0x0000fe92, 10677 }, /* dead_belowverticalline */ { 0x0000fe93, 10943 }, /* dead_longsolidusoverlay */ { 0x0000fea0, 8594 }, /* ch */ { 0x0000fea1, 8597 }, /* Ch */ { 0x0000fea2, 8600 }, /* CH */ { 0x0000fea3, 8443 }, /* c_h */ { 0x0000fea4, 8447 }, /* C_h */ { 0x0000fea5, 8451 }, /* C_H */ { 0x0000fed0, 12536 }, /* First_Virtual_Screen */ { 0x0000fed1, 22080 }, /* Prev_Virtual_Screen */ { 0x0000fed2, 20028 }, /* Next_Virtual_Screen */ { 0x0000fed4, 19161 }, /* Last_Virtual_Screen */ { 0x0000fed5, 24382 }, /* Terminate_Server */ { 0x0000fee0, 21998 }, /* Pointer_Left */ { 0x0000fee1, 22011 }, /* Pointer_Right */ { 0x0000fee2, 22025 }, /* Pointer_Up */ { 0x0000fee3, 21843 }, /* Pointer_Down */ { 0x0000fee4, 22036 }, /* Pointer_UpLeft */ { 0x0000fee5, 22051 }, /* Pointer_UpRight */ { 0x0000fee6, 21856 }, /* Pointer_DownLeft */ { 0x0000fee7, 21873 }, /* Pointer_DownRight */ { 0x0000fee8, 21671 }, /* Pointer_Button_Dflt */ { 0x0000fee9, 21591 }, /* Pointer_Button1 */ { 0x0000feea, 21607 }, /* Pointer_Button2 */ { 0x0000feeb, 21623 }, /* Pointer_Button3 */ { 0x0000feec, 21639 }, /* Pointer_Button4 */ { 0x0000feed, 21655 }, /* Pointer_Button5 */ { 0x0000feee, 21781 }, /* Pointer_DblClick_Dflt */ { 0x0000feef, 21691 }, /* Pointer_DblClick1 */ { 0x0000fef0, 21709 }, /* Pointer_DblClick2 */ { 0x0000fef1, 21727 }, /* Pointer_DblClick3 */ { 0x0000fef2, 21745 }, /* Pointer_DblClick4 */ { 0x0000fef3, 21763 }, /* Pointer_DblClick5 */ { 0x0000fef4, 21961 }, /* Pointer_Drag_Dflt */ { 0x0000fef5, 21891 }, /* Pointer_Drag1 */ { 0x0000fef6, 21905 }, /* Pointer_Drag2 */ { 0x0000fef7, 21919 }, /* Pointer_Drag3 */ { 0x0000fef8, 21933 }, /* Pointer_Drag4 */ { 0x0000fef9, 21979 }, /* Pointer_EnableKeys */ { 0x0000fefa, 21572 }, /* Pointer_Accelerate */ { 0x0000fefb, 21803 }, /* Pointer_DfltBtnNext */ { 0x0000fefc, 21823 }, /* Pointer_DfltBtnPrev */ { 0x0000fefd, 21947 }, /* Pointer_Drag5 */ { 0x0000ff08, 3362 }, /* BackSpace */ { 0x0000ff09, 24298 }, /* Tab */ { 0x0000ff0a, 19434 }, /* Linefeed */ { 0x0000ff0b, 8633 }, /* Clear */ { 0x0000ff0d, 22366 }, /* Return */ { 0x0000ff13, 21481 }, /* Pause */ { 0x0000ff14, 22699 }, /* Scroll_Lock */ { 0x0000ff15, 24279 }, /* Sys_Req */ { 0x0000ff1b, 12057 }, /* Escape */ { 0x0000ff20, 19811 }, /* Multi_key */ { 0x0000ff21, 18745 }, /* Kanji */ { 0x0000ff22, 19802 }, /* Muhenkan */ { 0x0000ff23, 16614 }, /* Henkan_Mode */ { 0x0000ff24, 22562 }, /* Romaji */ { 0x0000ff25, 16635 }, /* Hiragana */ { 0x0000ff26, 18770 }, /* Katakana */ { 0x0000ff27, 16644 }, /* Hiragana_Katakana */ { 0x0000ff28, 29161 }, /* Zenkaku */ { 0x0000ff29, 16048 }, /* Hankaku */ { 0x0000ff2a, 29169 }, /* Zenkaku_Hankaku */ { 0x0000ff2b, 25752 }, /* Touroku */ { 0x0000ff2c, 19698 }, /* Massyo */ { 0x0000ff2d, 18351 }, /* Kana_Lock */ { 0x0000ff2e, 18562 }, /* Kana_Shift */ { 0x0000ff2f, 11779 }, /* Eisu_Shift */ { 0x0000ff30, 11790 }, /* Eisu_toggle */ { 0x0000ff31, 14392 }, /* Hangul */ { 0x0000ff32, 15780 }, /* Hangul_Start */ { 0x0000ff33, 14511 }, /* Hangul_End */ { 0x0000ff34, 14542 }, /* Hangul_Hanja */ { 0x0000ff35, 15128 }, /* Hangul_Jamo */ { 0x0000ff36, 15625 }, /* Hangul_Romaja */ { 0x0000ff37, 8654 }, /* Codeinput */ { 0x0000ff38, 15140 }, /* Hangul_Jeonja */ { 0x0000ff39, 14445 }, /* Hangul_Banja */ { 0x0000ff3a, 15420 }, /* Hangul_PreHanja */ { 0x0000ff3b, 15403 }, /* Hangul_PostHanja */ { 0x0000ff3c, 23012 }, /* SingleCandidate */ { 0x0000ff3d, 19821 }, /* MultipleCandidate */ { 0x0000ff3e, 22100 }, /* PreviousCandidate */ { 0x0000ff3f, 15674 }, /* Hangul_Special */ { 0x0000ff50, 16662 }, /* Home */ { 0x0000ff51, 19244 }, /* Left */ { 0x0000ff52, 26384 }, /* Up */ { 0x0000ff53, 22373 }, /* Right */ { 0x0000ff54, 11327 }, /* Down */ { 0x0000ff55, 22124 }, /* Prior */ { 0x0000ff56, 20023 }, /* Next */ { 0x0000ff57, 11936 }, /* End */ { 0x0000ff58, 3404 }, /* Begin */ { 0x0000ff60, 22727 }, /* Select */ { 0x0000ff61, 22118 }, /* Print */ { 0x0000ff62, 12117 }, /* Execute */ { 0x0000ff63, 17284 }, /* Insert */ { 0x0000ff65, 26357 }, /* Undo */ { 0x0000ff66, 22326 }, /* Redo */ { 0x0000ff67, 19705 }, /* Menu */ { 0x0000ff68, 12531 }, /* Find */ { 0x0000ff69, 8489 }, /* Cancel */ { 0x0000ff6a, 16602 }, /* Help */ { 0x0000ff6b, 8377 }, /* Break */ { 0x0000ff7e, 19747 }, /* Mode_switch */ { 0x0000ff7f, 20169 }, /* Num_Lock */ { 0x0000ff80, 19074 }, /* KP_Space */ { 0x0000ff89, 19095 }, /* KP_Tab */ { 0x0000ff8d, 18931 }, /* KP_Enter */ { 0x0000ff91, 18949 }, /* KP_F1 */ { 0x0000ff92, 18955 }, /* KP_F2 */ { 0x0000ff93, 18961 }, /* KP_F3 */ { 0x0000ff94, 18967 }, /* KP_F4 */ { 0x0000ff95, 18973 }, /* KP_Home */ { 0x0000ff96, 18991 }, /* KP_Left */ { 0x0000ff97, 19102 }, /* KP_Up */ { 0x0000ff98, 19052 }, /* KP_Right */ { 0x0000ff99, 18916 }, /* KP_Down */ { 0x0000ff9a, 19043 }, /* KP_Prior */ { 0x0000ff9b, 19011 }, /* KP_Next */ { 0x0000ff9c, 18924 }, /* KP_End */ { 0x0000ff9d, 18876 }, /* KP_Begin */ { 0x0000ff9e, 18981 }, /* KP_Insert */ { 0x0000ff9f, 18896 }, /* KP_Delete */ { 0x0000ffaa, 18999 }, /* KP_Multiply */ { 0x0000ffab, 18858 }, /* KP_Add */ { 0x0000ffac, 19061 }, /* KP_Separator */ { 0x0000ffad, 19083 }, /* KP_Subtract */ { 0x0000ffae, 18885 }, /* KP_Decimal */ { 0x0000ffaf, 18906 }, /* KP_Divide */ { 0x0000ffb0, 18808 }, /* KP_0 */ { 0x0000ffb1, 18813 }, /* KP_1 */ { 0x0000ffb2, 18818 }, /* KP_2 */ { 0x0000ffb3, 18823 }, /* KP_3 */ { 0x0000ffb4, 18828 }, /* KP_4 */ { 0x0000ffb5, 18833 }, /* KP_5 */ { 0x0000ffb6, 18838 }, /* KP_6 */ { 0x0000ffb7, 18843 }, /* KP_7 */ { 0x0000ffb8, 18848 }, /* KP_8 */ { 0x0000ffb9, 18853 }, /* KP_9 */ { 0x0000ffbd, 18940 }, /* KP_Equal */ { 0x0000ffbe, 12159 }, /* F1 */ { 0x0000ffbf, 12202 }, /* F2 */ { 0x0000ffc0, 12245 }, /* F3 */ { 0x0000ffc1, 12272 }, /* F4 */ { 0x0000ffc2, 12275 }, /* F5 */ { 0x0000ffc3, 12278 }, /* F6 */ { 0x0000ffc4, 12281 }, /* F7 */ { 0x0000ffc5, 12284 }, /* F8 */ { 0x0000ffc6, 12287 }, /* F9 */ { 0x0000ffc7, 12162 }, /* F10 */ { 0x0000ffc8, 12166 }, /* F11 */ { 0x0000ffc9, 12170 }, /* F12 */ { 0x0000ffca, 12174 }, /* F13 */ { 0x0000ffcb, 12178 }, /* F14 */ { 0x0000ffcc, 12182 }, /* F15 */ { 0x0000ffcd, 12186 }, /* F16 */ { 0x0000ffce, 12190 }, /* F17 */ { 0x0000ffcf, 12194 }, /* F18 */ { 0x0000ffd0, 12198 }, /* F19 */ { 0x0000ffd1, 12205 }, /* F20 */ { 0x0000ffd2, 12209 }, /* F21 */ { 0x0000ffd3, 12213 }, /* F22 */ { 0x0000ffd4, 12217 }, /* F23 */ { 0x0000ffd5, 12221 }, /* F24 */ { 0x0000ffd6, 12225 }, /* F25 */ { 0x0000ffd7, 12229 }, /* F26 */ { 0x0000ffd8, 12233 }, /* F27 */ { 0x0000ffd9, 12237 }, /* F28 */ { 0x0000ffda, 12241 }, /* F29 */ { 0x0000ffdb, 12248 }, /* F30 */ { 0x0000ffdc, 12252 }, /* F31 */ { 0x0000ffdd, 12256 }, /* F32 */ { 0x0000ffde, 12260 }, /* F33 */ { 0x0000ffdf, 12264 }, /* F34 */ { 0x0000ffe0, 12268 }, /* F35 */ { 0x0000ffe1, 22946 }, /* Shift_L */ { 0x0000ffe2, 22965 }, /* Shift_R */ { 0x0000ffe3, 8697 }, /* Control_L */ { 0x0000ffe4, 8707 }, /* Control_R */ { 0x0000ffe5, 8496 }, /* Caps_Lock */ { 0x0000ffe6, 22954 }, /* Shift_Lock */ { 0x0000ffe7, 19710 }, /* Meta_L */ { 0x0000ffe8, 19717 }, /* Meta_R */ { 0x0000ffe9, 880 }, /* Alt_L */ { 0x0000ffea, 886 }, /* Alt_R */ { 0x0000ffeb, 24263 }, /* Super_L */ { 0x0000ffec, 24271 }, /* Super_R */ { 0x0000ffed, 17046 }, /* Hyper_L */ { 0x0000ffee, 17054 }, /* Hyper_R */ { 0x0000fff1, 3642 }, /* braille_dot_1 */ { 0x0000fff2, 3671 }, /* braille_dot_2 */ { 0x0000fff3, 3685 }, /* braille_dot_3 */ { 0x0000fff4, 3699 }, /* braille_dot_4 */ { 0x0000fff5, 3713 }, /* braille_dot_5 */ { 0x0000fff6, 3727 }, /* braille_dot_6 */ { 0x0000fff7, 3741 }, /* braille_dot_7 */ { 0x0000fff8, 3755 }, /* braille_dot_8 */ { 0x0000fff9, 3769 }, /* braille_dot_9 */ { 0x0000fffa, 3656 }, /* braille_dot_10 */ { 0x0000ffff, 11160 }, /* Delete */ { 0x00ffffff, 26531 }, /* VoidSymbol */ { 0x0100012c, 17117 }, /* Ibreve */ { 0x0100012d, 17124 }, /* ibreve */ { 0x01000174, 26563 }, /* Wcircumflex */ { 0x01000175, 26575 }, /* wcircumflex */ { 0x01000176, 29010 }, /* Ycircumflex */ { 0x01000177, 29022 }, /* ycircumflex */ { 0x0100018f, 22649 }, /* SCHWA */ { 0x0100019f, 20218 }, /* Obarred */ { 0x010001a0, 20553 }, /* Ohorn */ { 0x010001a1, 20559 }, /* ohorn */ { 0x010001af, 25997 }, /* Uhorn */ { 0x010001b0, 26003 }, /* uhorn */ { 0x010001b5, 29212 }, /* Zstroke */ { 0x010001b6, 29220 }, /* zstroke */ { 0x010001b7, 12147 }, /* EZH */ { 0x010001d1, 20254 }, /* Ocaron */ { 0x010001d2, 20261 }, /* ocaron */ { 0x010001e6, 12703 }, /* Gcaron */ { 0x010001e7, 12710 }, /* gcaron */ { 0x01000259, 22655 }, /* schwa */ { 0x01000275, 20226 }, /* obarred */ { 0x01000292, 12151 }, /* ezh */ { 0x01000492, 9236 }, /* Cyrillic_GHE_bar */ { 0x01000493, 9253 }, /* Cyrillic_ghe_bar */ { 0x01000496, 10274 }, /* Cyrillic_ZHE_descender */ { 0x01000497, 10297 }, /* Cyrillic_zhe_descender */ { 0x0100049a, 9528 }, /* Cyrillic_KA_descender */ { 0x0100049b, 9550 }, /* Cyrillic_ka_descender */ { 0x0100049c, 9572 }, /* Cyrillic_KA_vertstroke */ { 0x0100049d, 9595 }, /* Cyrillic_ka_vertstroke */ { 0x010004a2, 9118 }, /* Cyrillic_EN_descender */ { 0x010004a3, 9140 }, /* Cyrillic_en_descender */ { 0x010004ae, 10036 }, /* Cyrillic_U_straight */ { 0x010004af, 10056 }, /* Cyrillic_u_straight */ { 0x010004b0, 10076 }, /* Cyrillic_U_straight_bar */ { 0x010004b1, 10100 }, /* Cyrillic_u_straight_bar */ { 0x010004b2, 9294 }, /* Cyrillic_HA_descender */ { 0x010004b3, 9316 }, /* Cyrillic_ha_descender */ { 0x010004b6, 8854 }, /* Cyrillic_CHE_descender */ { 0x010004b7, 8877 }, /* Cyrillic_che_descender */ { 0x010004b8, 8900 }, /* Cyrillic_CHE_vertstroke */ { 0x010004b9, 8924 }, /* Cyrillic_che_vertstroke */ { 0x010004ba, 9832 }, /* Cyrillic_SHHA */ { 0x010004bb, 9846 }, /* Cyrillic_shha */ { 0x010004d8, 9746 }, /* Cyrillic_SCHWA */ { 0x010004d9, 9761 }, /* Cyrillic_schwa */ { 0x010004e2, 9396 }, /* Cyrillic_I_macron */ { 0x010004e3, 9414 }, /* Cyrillic_i_macron */ { 0x010004e8, 9692 }, /* Cyrillic_O_bar */ { 0x010004e9, 9707 }, /* Cyrillic_o_bar */ { 0x010004ee, 10000 }, /* Cyrillic_U_macron */ { 0x010004ef, 10018 }, /* Cyrillic_u_macron */ { 0x01000531, 2124 }, /* Armenian_AYB */ { 0x01000532, 2150 }, /* Armenian_BEN */ { 0x01000533, 2374 }, /* Armenian_GIM */ { 0x01000534, 2215 }, /* Armenian_DA */ { 0x01000535, 3164 }, /* Armenian_YECH */ { 0x01000536, 3210 }, /* Armenian_ZA */ { 0x01000537, 2265 }, /* Armenian_E */ { 0x01000538, 2100 }, /* Armenian_AT */ { 0x01000539, 2964 }, /* Armenian_TO */ { 0x0100053a, 3234 }, /* Armenian_ZHE */ { 0x0100053b, 2464 }, /* Armenian_INI */ { 0x0100053c, 2611 }, /* Armenian_LYUN */ { 0x0100053d, 2564 }, /* Armenian_KHE */ { 0x0100053e, 2988 }, /* Armenian_TSA */ { 0x0100053f, 2538 }, /* Armenian_KEN */ { 0x01000540, 2424 }, /* Armenian_HO */ { 0x01000541, 2239 }, /* Armenian_DZA */ { 0x01000542, 2346 }, /* Armenian_GHAT */ { 0x01000543, 2936 }, /* Armenian_TCHE */ { 0x01000544, 2639 }, /* Armenian_MEN */ { 0x01000545, 2400 }, /* Armenian_HI */ { 0x01000546, 2665 }, /* Armenian_NU */ { 0x01000547, 2894 }, /* Armenian_SHA */ { 0x01000548, 3112 }, /* Armenian_VO */ { 0x01000549, 2189 }, /* Armenian_CHA */ { 0x0100054a, 2727 }, /* Armenian_PE */ { 0x0100054b, 2490 }, /* Armenian_JE */ { 0x0100054c, 2797 }, /* Armenian_RA */ { 0x0100054d, 2845 }, /* Armenian_SE */ { 0x0100054e, 3086 }, /* Armenian_VEV */ { 0x0100054f, 3040 }, /* Armenian_TYUN */ { 0x01000550, 2821 }, /* Armenian_RE */ { 0x01000551, 3014 }, /* Armenian_TSO */ { 0x01000552, 3136 }, /* Armenian_VYUN */ { 0x01000553, 2751 }, /* Armenian_PYUR */ { 0x01000554, 2514 }, /* Armenian_KE */ { 0x01000555, 2689 }, /* Armenian_O */ { 0x01000556, 2303 }, /* Armenian_FE */ { 0x0100055a, 2080 }, /* Armenian_apostrophe */ { 0x0100055b, 2048 }, /* Armenian_accent */ { 0x0100055c, 2287 }, /* Armenian_exclam */ { 0x0100055d, 2869 }, /* Armenian_separation_mark */ { 0x0100055e, 2779 }, /* Armenian_question */ { 0x01000561, 2137 }, /* Armenian_ayb */ { 0x01000562, 2163 }, /* Armenian_ben */ { 0x01000563, 2387 }, /* Armenian_gim */ { 0x01000564, 2227 }, /* Armenian_da */ { 0x01000565, 3178 }, /* Armenian_yech */ { 0x01000566, 3222 }, /* Armenian_za */ { 0x01000567, 2276 }, /* Armenian_e */ { 0x01000568, 2112 }, /* Armenian_at */ { 0x01000569, 2976 }, /* Armenian_to */ { 0x0100056a, 3247 }, /* Armenian_zhe */ { 0x0100056b, 2477 }, /* Armenian_ini */ { 0x0100056c, 2625 }, /* Armenian_lyun */ { 0x0100056d, 2577 }, /* Armenian_khe */ { 0x0100056e, 3001 }, /* Armenian_tsa */ { 0x0100056f, 2551 }, /* Armenian_ken */ { 0x01000570, 2436 }, /* Armenian_ho */ { 0x01000571, 2252 }, /* Armenian_dza */ { 0x01000572, 2360 }, /* Armenian_ghat */ { 0x01000573, 2950 }, /* Armenian_tche */ { 0x01000574, 2652 }, /* Armenian_men */ { 0x01000575, 2412 }, /* Armenian_hi */ { 0x01000576, 2677 }, /* Armenian_nu */ { 0x01000577, 2907 }, /* Armenian_sha */ { 0x01000578, 3124 }, /* Armenian_vo */ { 0x01000579, 2202 }, /* Armenian_cha */ { 0x0100057a, 2739 }, /* Armenian_pe */ { 0x0100057b, 2502 }, /* Armenian_je */ { 0x0100057c, 2809 }, /* Armenian_ra */ { 0x0100057d, 2857 }, /* Armenian_se */ { 0x0100057e, 3099 }, /* Armenian_vev */ { 0x0100057f, 3054 }, /* Armenian_tyun */ { 0x01000580, 2833 }, /* Armenian_re */ { 0x01000581, 3027 }, /* Armenian_tso */ { 0x01000582, 3150 }, /* Armenian_vyun */ { 0x01000583, 2765 }, /* Armenian_pyur */ { 0x01000584, 2526 }, /* Armenian_ke */ { 0x01000585, 2700 }, /* Armenian_o */ { 0x01000586, 2315 }, /* Armenian_fe */ { 0x01000587, 2590 }, /* Armenian_ligature_ew */ { 0x01000589, 2327 }, /* Armenian_full_stop */ { 0x0100058a, 2448 }, /* Armenian_hyphen */ { 0x01000653, 1580 }, /* Arabic_madda_above */ { 0x01000654, 1316 }, /* Arabic_hamza_above */ { 0x01000655, 1335 }, /* Arabic_hamza_below */ { 0x01000660, 966 }, /* Arabic_0 */ { 0x01000661, 975 }, /* Arabic_1 */ { 0x01000662, 984 }, /* Arabic_2 */ { 0x01000663, 993 }, /* Arabic_3 */ { 0x01000664, 1002 }, /* Arabic_4 */ { 0x01000665, 1011 }, /* Arabic_5 */ { 0x01000666, 1020 }, /* Arabic_6 */ { 0x01000667, 1029 }, /* Arabic_7 */ { 0x01000668, 1038 }, /* Arabic_8 */ { 0x01000669, 1047 }, /* Arabic_9 */ { 0x0100066a, 1672 }, /* Arabic_percent */ { 0x01000670, 1821 }, /* Arabic_superscript_alef */ { 0x01000679, 1951 }, /* Arabic_tteh */ { 0x0100067e, 1661 }, /* Arabic_peh */ { 0x01000686, 1885 }, /* Arabic_tcheh */ { 0x01000688, 1173 }, /* Arabic_ddal */ { 0x01000691, 1729 }, /* Arabic_rreh */ { 0x01000698, 1493 }, /* Arabic_jeh */ { 0x010006a4, 1963 }, /* Arabic_veh */ { 0x010006a9, 1544 }, /* Arabic_keheh */ { 0x010006af, 1258 }, /* Arabic_gaf */ { 0x010006ba, 1642 }, /* Arabic_noon_ghunna */ { 0x010006be, 1442 }, /* Arabic_heh_doachashmee */ { 0x010006c1, 1465 }, /* Arabic_heh_goal */ { 0x010006cc, 12390 }, /* Farsi_yeh */ { 0x010006d2, 1996 }, /* Arabic_yeh_baree */ { 0x010006d4, 1242 }, /* Arabic_fullstop */ { 0x010006f0, 12310 }, /* Farsi_0 */ { 0x010006f1, 12318 }, /* Farsi_1 */ { 0x010006f2, 12326 }, /* Farsi_2 */ { 0x010006f3, 12334 }, /* Farsi_3 */ { 0x010006f4, 12342 }, /* Farsi_4 */ { 0x010006f5, 12350 }, /* Farsi_5 */ { 0x010006f6, 12358 }, /* Farsi_6 */ { 0x010006f7, 12366 }, /* Farsi_7 */ { 0x010006f8, 12374 }, /* Farsi_8 */ { 0x010006f9, 12382 }, /* Farsi_9 */ { 0x01000d82, 23484 }, /* Sinh_ng */ { 0x01000d83, 23278 }, /* Sinh_h2 */ { 0x01000d85, 23047 }, /* Sinh_a */ { 0x01000d86, 23054 }, /* Sinh_aa */ { 0x01000d87, 23071 }, /* Sinh_ae */ { 0x01000d88, 23088 }, /* Sinh_aee */ { 0x01000d89, 23294 }, /* Sinh_i */ { 0x01000d8a, 23309 }, /* Sinh_ii */ { 0x01000d8b, 23695 }, /* Sinh_u */ { 0x01000d8c, 23710 }, /* Sinh_uu */ { 0x01000d8d, 23594 }, /* Sinh_ri */ { 0x01000d8e, 23602 }, /* Sinh_rii */ { 0x01000d8f, 23403 }, /* Sinh_lu */ { 0x01000d90, 23420 }, /* Sinh_luu */ { 0x01000d91, 23221 }, /* Sinh_e */ { 0x01000d92, 23236 }, /* Sinh_ee */ { 0x01000d93, 23107 }, /* Sinh_ai */ { 0x01000d94, 23537 }, /* Sinh_o */ { 0x01000d95, 23552 }, /* Sinh_oo */ { 0x01000d96, 23132 }, /* Sinh_au */ { 0x01000d9a, 23353 }, /* Sinh_ka */ { 0x01000d9b, 23361 }, /* Sinh_kha */ { 0x01000d9c, 23261 }, /* Sinh_ga */ { 0x01000d9d, 23269 }, /* Sinh_gha */ { 0x01000d9e, 23492 }, /* Sinh_ng2 */ { 0x01000d9f, 23501 }, /* Sinh_nga */ { 0x01000da0, 23166 }, /* Sinh_ca */ { 0x01000da1, 23174 }, /* Sinh_cha */ { 0x01000da2, 23326 }, /* Sinh_ja */ { 0x01000da3, 23334 }, /* Sinh_jha */ { 0x01000da4, 23528 }, /* Sinh_nya */ { 0x01000da5, 23343 }, /* Sinh_jnya */ { 0x01000da6, 23510 }, /* Sinh_nja */ { 0x01000da7, 23676 }, /* Sinh_tta */ { 0x01000da8, 23685 }, /* Sinh_ttha */ { 0x01000da9, 23183 }, /* Sinh_dda */ { 0x01000daa, 23192 }, /* Sinh_ddha */ { 0x01000dab, 23519 }, /* Sinh_nna */ { 0x01000dac, 23464 }, /* Sinh_ndda */ { 0x01000dad, 23657 }, /* Sinh_tha */ { 0x01000dae, 23666 }, /* Sinh_thha */ { 0x01000daf, 23202 }, /* Sinh_dha */ { 0x01000db0, 23211 }, /* Sinh_dhha */ { 0x01000db1, 23456 }, /* Sinh_na */ { 0x01000db3, 23474 }, /* Sinh_ndha */ { 0x01000db4, 23569 }, /* Sinh_pa */ { 0x01000db5, 23577 }, /* Sinh_pha */ { 0x01000db6, 23149 }, /* Sinh_ba */ { 0x01000db7, 23157 }, /* Sinh_bha */ { 0x01000db8, 23439 }, /* Sinh_ma */ { 0x01000db9, 23447 }, /* Sinh_mba */ { 0x01000dba, 23735 }, /* Sinh_ya */ { 0x01000dbb, 23586 }, /* Sinh_ra */ { 0x01000dbd, 23386 }, /* Sinh_la */ { 0x01000dc0, 23727 }, /* Sinh_va */ { 0x01000dc1, 23638 }, /* Sinh_sha */ { 0x01000dc2, 23647 }, /* Sinh_ssha */ { 0x01000dc3, 23630 }, /* Sinh_sa */ { 0x01000dc4, 23286 }, /* Sinh_ha */ { 0x01000dc5, 23394 }, /* Sinh_lla */ { 0x01000dc6, 23253 }, /* Sinh_fa */ { 0x01000dca, 23124 }, /* Sinh_al */ { 0x01000dcf, 23062 }, /* Sinh_aa2 */ { 0x01000dd0, 23079 }, /* Sinh_ae2 */ { 0x01000dd1, 23097 }, /* Sinh_aee2 */ { 0x01000dd2, 23301 }, /* Sinh_i2 */ { 0x01000dd3, 23317 }, /* Sinh_ii2 */ { 0x01000dd4, 23702 }, /* Sinh_u2 */ { 0x01000dd6, 23718 }, /* Sinh_uu2 */ { 0x01000dd8, 23611 }, /* Sinh_ru2 */ { 0x01000dd9, 23228 }, /* Sinh_e2 */ { 0x01000dda, 23244 }, /* Sinh_ee2 */ { 0x01000ddb, 23115 }, /* Sinh_ai2 */ { 0x01000ddc, 23544 }, /* Sinh_o2 */ { 0x01000ddd, 23560 }, /* Sinh_oo2 */ { 0x01000dde, 23140 }, /* Sinh_au2 */ { 0x01000ddf, 23411 }, /* Sinh_lu2 */ { 0x01000df2, 23620 }, /* Sinh_ruu2 */ { 0x01000df3, 23429 }, /* Sinh_luu2 */ { 0x01000df4, 23370 }, /* Sinh_kunddaliya */ { 0x010010d0, 12759 }, /* Georgian_an */ { 0x010010d1, 12771 }, /* Georgian_ban */ { 0x010010d2, 12875 }, /* Georgian_gan */ { 0x010010d3, 12838 }, /* Georgian_don */ { 0x010010d4, 12851 }, /* Georgian_en */ { 0x010010d5, 13201 }, /* Georgian_vin */ { 0x010010d6, 13239 }, /* Georgian_zen */ { 0x010010d7, 13163 }, /* Georgian_tan */ { 0x010010d8, 12966 }, /* Georgian_in */ { 0x010010d9, 13005 }, /* Georgian_kan */ { 0x010010da, 13032 }, /* Georgian_las */ { 0x010010db, 13045 }, /* Georgian_man */ { 0x010010dc, 13058 }, /* Georgian_nar */ { 0x010010dd, 13071 }, /* Georgian_on */ { 0x010010de, 13083 }, /* Georgian_par */ { 0x010010df, 13252 }, /* Georgian_zhar */ { 0x010010e0, 13123 }, /* Georgian_rae */ { 0x010010e1, 13136 }, /* Georgian_san */ { 0x010010e2, 13176 }, /* Georgian_tar */ { 0x010010e3, 13189 }, /* Georgian_un */ { 0x010010e4, 13096 }, /* Georgian_phar */ { 0x010010e5, 13018 }, /* Georgian_khar */ { 0x010010e6, 12888 }, /* Georgian_ghan */ { 0x010010e7, 13110 }, /* Georgian_qar */ { 0x010010e8, 13149 }, /* Georgian_shin */ { 0x010010e9, 12811 }, /* Georgian_chin */ { 0x010010ea, 12784 }, /* Georgian_can */ { 0x010010eb, 12992 }, /* Georgian_jil */ { 0x010010ec, 12825 }, /* Georgian_cil */ { 0x010010ed, 12797 }, /* Georgian_char */ { 0x010010ee, 13226 }, /* Georgian_xan */ { 0x010010ef, 12978 }, /* Georgian_jhan */ { 0x010010f0, 12902 }, /* Georgian_hae */ { 0x010010f1, 12928 }, /* Georgian_he */ { 0x010010f2, 12940 }, /* Georgian_hie */ { 0x010010f3, 13214 }, /* Georgian_we */ { 0x010010f4, 12915 }, /* Georgian_har */ { 0x010010f5, 12953 }, /* Georgian_hoe */ { 0x010010f6, 12863 }, /* Georgian_fi */ { 0x01001e02, 3332 }, /* Babovedot */ { 0x01001e03, 3342 }, /* babovedot */ { 0x01001e0a, 10324 }, /* Dabovedot */ { 0x01001e0b, 10334 }, /* dabovedot */ { 0x01001e1e, 12290 }, /* Fabovedot */ { 0x01001e1f, 12300 }, /* fabovedot */ { 0x01001e36, 19192 }, /* Lbelowdot */ { 0x01001e37, 19202 }, /* lbelowdot */ { 0x01001e40, 19537 }, /* Mabovedot */ { 0x01001e41, 19547 }, /* mabovedot */ { 0x01001e56, 21377 }, /* Pabovedot */ { 0x01001e57, 21387 }, /* pabovedot */ { 0x01001e60, 22583 }, /* Sabovedot */ { 0x01001e61, 22593 }, /* sabovedot */ { 0x01001e6a, 24302 }, /* Tabovedot */ { 0x01001e6b, 24312 }, /* tabovedot */ { 0x01001e80, 26609 }, /* Wgrave */ { 0x01001e81, 26616 }, /* wgrave */ { 0x01001e82, 26549 }, /* Wacute */ { 0x01001e83, 26556 }, /* wacute */ { 0x01001e84, 26587 }, /* Wdiaeresis */ { 0x01001e85, 26598 }, /* wdiaeresis */ { 0x01001e8a, 26635 }, /* Xabovedot */ { 0x01001e8b, 26645 }, /* xabovedot */ { 0x01001ea0, 416 }, /* Abelowdot */ { 0x01001ea1, 426 }, /* abelowdot */ { 0x01001ea2, 868 }, /* Ahook */ { 0x01001ea3, 874 }, /* ahook */ { 0x01001ea4, 646 }, /* Acircumflexacute */ { 0x01001ea5, 663 }, /* acircumflexacute */ { 0x01001ea6, 720 }, /* Acircumflexgrave */ { 0x01001ea7, 737 }, /* acircumflexgrave */ { 0x01001ea8, 754 }, /* Acircumflexhook */ { 0x01001ea9, 770 }, /* acircumflexhook */ { 0x01001eaa, 786 }, /* Acircumflextilde */ { 0x01001eab, 803 }, /* acircumflextilde */ { 0x01001eac, 680 }, /* Acircumflexbelowdot */ { 0x01001ead, 700 }, /* acircumflexbelowdot */ { 0x01001eae, 459 }, /* Abreveacute */ { 0x01001eaf, 471 }, /* abreveacute */ { 0x01001eb0, 513 }, /* Abrevegrave */ { 0x01001eb1, 525 }, /* abrevegrave */ { 0x01001eb2, 537 }, /* Abrevehook */ { 0x01001eb3, 548 }, /* abrevehook */ { 0x01001eb4, 559 }, /* Abrevetilde */ { 0x01001eb5, 571 }, /* abrevetilde */ { 0x01001eb6, 483 }, /* Abrevebelowdot */ { 0x01001eb7, 498 }, /* abrevebelowdot */ { 0x01001eb8, 11462 }, /* Ebelowdot */ { 0x01001eb9, 11472 }, /* ebelowdot */ { 0x01001eba, 11738 }, /* Ehook */ { 0x01001ebb, 11744 }, /* ehook */ { 0x01001ebc, 12076 }, /* Etilde */ { 0x01001ebd, 12083 }, /* etilde */ { 0x01001ebe, 11520 }, /* Ecircumflexacute */ { 0x01001ebf, 11537 }, /* ecircumflexacute */ { 0x01001ec0, 11594 }, /* Ecircumflexgrave */ { 0x01001ec1, 11611 }, /* ecircumflexgrave */ { 0x01001ec2, 11628 }, /* Ecircumflexhook */ { 0x01001ec3, 11644 }, /* ecircumflexhook */ { 0x01001ec4, 11660 }, /* Ecircumflextilde */ { 0x01001ec5, 11677 }, /* ecircumflextilde */ { 0x01001ec6, 11554 }, /* Ecircumflexbelowdot */ { 0x01001ec7, 11574 }, /* ecircumflexbelowdot */ { 0x01001ec8, 17219 }, /* Ihook */ { 0x01001ec9, 17225 }, /* ihook */ { 0x01001eca, 17097 }, /* Ibelowdot */ { 0x01001ecb, 17107 }, /* ibelowdot */ { 0x01001ecc, 20234 }, /* Obelowdot */ { 0x01001ecd, 20244 }, /* obelowdot */ { 0x01001ece, 20541 }, /* Ohook */ { 0x01001ecf, 20547 }, /* ohook */ { 0x01001ed0, 20292 }, /* Ocircumflexacute */ { 0x01001ed1, 20309 }, /* ocircumflexacute */ { 0x01001ed2, 20366 }, /* Ocircumflexgrave */ { 0x01001ed3, 20383 }, /* ocircumflexgrave */ { 0x01001ed4, 20400 }, /* Ocircumflexhook */ { 0x01001ed5, 20416 }, /* ocircumflexhook */ { 0x01001ed6, 20432 }, /* Ocircumflextilde */ { 0x01001ed7, 20449 }, /* ocircumflextilde */ { 0x01001ed8, 20326 }, /* Ocircumflexbelowdot */ { 0x01001ed9, 20346 }, /* ocircumflexbelowdot */ { 0x01001eda, 20565 }, /* Ohornacute */ { 0x01001edb, 20576 }, /* ohornacute */ { 0x01001edc, 20615 }, /* Ohorngrave */ { 0x01001edd, 20626 }, /* ohorngrave */ { 0x01001ede, 20637 }, /* Ohornhook */ { 0x01001edf, 20647 }, /* ohornhook */ { 0x01001ee0, 20657 }, /* Ohorntilde */ { 0x01001ee1, 20668 }, /* ohorntilde */ { 0x01001ee2, 20587 }, /* Ohornbelowdot */ { 0x01001ee3, 20601 }, /* ohornbelowdot */ { 0x01001ee4, 25865 }, /* Ubelowdot */ { 0x01001ee5, 25875 }, /* ubelowdot */ { 0x01001ee6, 25985 }, /* Uhook */ { 0x01001ee7, 25991 }, /* uhook */ { 0x01001ee8, 26009 }, /* Uhornacute */ { 0x01001ee9, 26020 }, /* uhornacute */ { 0x01001eea, 26059 }, /* Uhorngrave */ { 0x01001eeb, 26070 }, /* uhorngrave */ { 0x01001eec, 26081 }, /* Uhornhook */ { 0x01001eed, 26091 }, /* uhornhook */ { 0x01001eee, 26101 }, /* Uhorntilde */ { 0x01001eef, 26112 }, /* uhorntilde */ { 0x01001ef0, 26031 }, /* Uhornbelowdot */ { 0x01001ef1, 26045 }, /* uhornbelowdot */ { 0x01001ef2, 29060 }, /* Ygrave */ { 0x01001ef3, 29067 }, /* ygrave */ { 0x01001ef4, 28990 }, /* Ybelowdot */ { 0x01001ef5, 29000 }, /* ybelowdot */ { 0x01001ef6, 29074 }, /* Yhook */ { 0x01001ef7, 29080 }, /* yhook */ { 0x01001ef8, 29086 }, /* Ytilde */ { 0x01001ef9, 29093 }, /* ytilde */ { 0x01002070, 29199 }, /* zerosuperior */ { 0x01002074, 12632 }, /* foursuperior */ { 0x01002075, 12594 }, /* fivesuperior */ { 0x01002076, 23756 }, /* sixsuperior */ { 0x01002077, 22932 }, /* sevensuperior */ { 0x01002078, 11765 }, /* eightsuperior */ { 0x01002079, 20062 }, /* ninesuperior */ { 0x01002080, 29185 }, /* zerosubscript */ { 0x01002081, 20742 }, /* onesubscript */ { 0x01002082, 25812 }, /* twosubscript */ { 0x01002083, 25556 }, /* threesubscript */ { 0x01002084, 12618 }, /* foursubscript */ { 0x01002085, 12580 }, /* fivesubscript */ { 0x01002086, 23743 }, /* sixsubscript */ { 0x01002087, 22917 }, /* sevensubscript */ { 0x01002088, 11750 }, /* eightsubscript */ { 0x01002089, 20048 }, /* ninesubscript */ { 0x010020a0, 11694 }, /* EcuSign */ { 0x010020a1, 8670 }, /* ColonSign */ { 0x010020a2, 8744 }, /* CruzeiroSign */ { 0x010020a3, 12416 }, /* FFrancSign */ { 0x010020a4, 19448 }, /* LiraSign */ { 0x010020a5, 19724 }, /* MillSign */ { 0x010020a6, 19967 }, /* NairaSign */ { 0x010020a7, 21526 }, /* PesetaSign */ { 0x010020a8, 22569 }, /* RupeeSign */ { 0x010020a9, 26623 }, /* WonSign */ { 0x010020aa, 20009 }, /* NewSheqelSign */ { 0x010020ab, 11258 }, /* DongSign */ { 0x01002202, 21446 }, /* partdifferential */ { 0x01002205, 11919 }, /* emptyset */ { 0x01002208, 11802 }, /* elementof */ { 0x01002209, 20112 }, /* notelementof */ { 0x0100220b, 8686 }, /* containsas */ { 0x0100221a, 23809 }, /* squareroot */ { 0x0100221b, 8757 }, /* cuberoot */ { 0x0100221c, 12645 }, /* fourthroot */ { 0x0100222c, 11232 }, /* dintegral */ { 0x0100222d, 25585 }, /* tintegral */ { 0x01002235, 3396 }, /* because */ { 0x01002247, 20100 }, /* notapproxeq */ { 0x01002248, 945 }, /* approxeq */ { 0x01002262, 20134 }, /* notidentical */ { 0x01002263, 23854 }, /* stricteq */ { 0x01002800, 3628 }, /* braille_blank */ { 0x01002801, 3783 }, /* braille_dots_1 */ { 0x01002802, 6151 }, /* braille_dots_2 */ { 0x01002803, 3798 }, /* braille_dots_12 */ { 0x01002804, 7303 }, /* braille_dots_3 */ { 0x01002805, 5014 }, /* braille_dots_13 */ { 0x01002806, 6166 }, /* braille_dots_23 */ { 0x01002807, 3814 }, /* braille_dots_123 */ { 0x01002808, 7863 }, /* braille_dots_4 */ { 0x01002809, 5606 }, /* braille_dots_14 */ { 0x0100280a, 6758 }, /* braille_dots_24 */ { 0x0100280b, 4438 }, /* braille_dots_124 */ { 0x0100280c, 7318 }, /* braille_dots_34 */ { 0x0100280d, 5030 }, /* braille_dots_134 */ { 0x0100280e, 6182 }, /* braille_dots_234 */ { 0x0100280f, 3831 }, /* braille_dots_1234 */ { 0x01002810, 8135 }, /* braille_dots_5 */ { 0x01002811, 5894 }, /* braille_dots_15 */ { 0x01002812, 7046 }, /* braille_dots_25 */ { 0x01002813, 4742 }, /* braille_dots_125 */ { 0x01002814, 7606 }, /* braille_dots_35 */ { 0x01002815, 5334 }, /* braille_dots_135 */ { 0x01002816, 6486 }, /* braille_dots_235 */ { 0x01002817, 4151 }, /* braille_dots_1235 */ { 0x01002818, 7878 }, /* braille_dots_45 */ { 0x01002819, 5622 }, /* braille_dots_145 */ { 0x0100281a, 6774 }, /* braille_dots_245 */ { 0x0100281b, 4455 }, /* braille_dots_1245 */ { 0x0100281c, 7334 }, /* braille_dots_345 */ { 0x0100281d, 5047 }, /* braille_dots_1345 */ { 0x0100281e, 6199 }, /* braille_dots_2345 */ { 0x0100281f, 3849 }, /* braille_dots_12345 */ { 0x01002820, 8267 }, /* braille_dots_6 */ { 0x01002821, 6034 }, /* braille_dots_16 */ { 0x01002822, 7186 }, /* braille_dots_26 */ { 0x01002823, 4890 }, /* braille_dots_126 */ { 0x01002824, 7746 }, /* braille_dots_36 */ { 0x01002825, 5482 }, /* braille_dots_136 */ { 0x01002826, 6634 }, /* braille_dots_236 */ { 0x01002827, 4307 }, /* braille_dots_1236 */ { 0x01002828, 8018 }, /* braille_dots_46 */ { 0x01002829, 5770 }, /* braille_dots_146 */ { 0x0100282a, 6922 }, /* braille_dots_246 */ { 0x0100282b, 4611 }, /* braille_dots_1246 */ { 0x0100282c, 7482 }, /* braille_dots_346 */ { 0x0100282d, 5203 }, /* braille_dots_1346 */ { 0x0100282e, 6355 }, /* braille_dots_2346 */ { 0x0100282f, 4013 }, /* braille_dots_12346 */ { 0x01002830, 8150 }, /* braille_dots_56 */ { 0x01002831, 5910 }, /* braille_dots_156 */ { 0x01002832, 7062 }, /* braille_dots_256 */ { 0x01002833, 4759 }, /* braille_dots_1256 */ { 0x01002834, 7622 }, /* braille_dots_356 */ { 0x01002835, 5351 }, /* braille_dots_1356 */ { 0x01002836, 6503 }, /* braille_dots_2356 */ { 0x01002837, 4169 }, /* braille_dots_12356 */ { 0x01002838, 7894 }, /* braille_dots_456 */ { 0x01002839, 5639 }, /* braille_dots_1456 */ { 0x0100283a, 6791 }, /* braille_dots_2456 */ { 0x0100283b, 4473 }, /* braille_dots_12456 */ { 0x0100283c, 7351 }, /* braille_dots_3456 */ { 0x0100283d, 5065 }, /* braille_dots_13456 */ { 0x0100283e, 6217 }, /* braille_dots_23456 */ { 0x0100283f, 3868 }, /* braille_dots_123456 */ { 0x01002840, 8331 }, /* braille_dots_7 */ { 0x01002841, 6102 }, /* braille_dots_17 */ { 0x01002842, 7254 }, /* braille_dots_27 */ { 0x01002843, 4962 }, /* braille_dots_127 */ { 0x01002844, 7814 }, /* braille_dots_37 */ { 0x01002845, 5554 }, /* braille_dots_137 */ { 0x01002846, 6706 }, /* braille_dots_237 */ { 0x01002847, 4383 }, /* braille_dots_1237 */ { 0x01002848, 8086 }, /* braille_dots_47 */ { 0x01002849, 5842 }, /* braille_dots_147 */ { 0x0100284a, 6994 }, /* braille_dots_247 */ { 0x0100284b, 4687 }, /* braille_dots_1247 */ { 0x0100284c, 7554 }, /* braille_dots_347 */ { 0x0100284d, 5279 }, /* braille_dots_1347 */ { 0x0100284e, 6431 }, /* braille_dots_2347 */ { 0x0100284f, 4093 }, /* braille_dots_12347 */ { 0x01002850, 8218 }, /* braille_dots_57 */ { 0x01002851, 5982 }, /* braille_dots_157 */ { 0x01002852, 7134 }, /* braille_dots_257 */ { 0x01002853, 4835 }, /* braille_dots_1257 */ { 0x01002854, 7694 }, /* braille_dots_357 */ { 0x01002855, 5427 }, /* braille_dots_1357 */ { 0x01002856, 6579 }, /* braille_dots_2357 */ { 0x01002857, 4249 }, /* braille_dots_12357 */ { 0x01002858, 7966 }, /* braille_dots_457 */ { 0x01002859, 5715 }, /* braille_dots_1457 */ { 0x0100285a, 6867 }, /* braille_dots_2457 */ { 0x0100285b, 4553 }, /* braille_dots_12457 */ { 0x0100285c, 7427 }, /* braille_dots_3457 */ { 0x0100285d, 5145 }, /* braille_dots_13457 */ { 0x0100285e, 6297 }, /* braille_dots_23457 */ { 0x0100285f, 3952 }, /* braille_dots_123457 */ { 0x01002860, 8282 }, /* braille_dots_67 */ { 0x01002861, 6050 }, /* braille_dots_167 */ { 0x01002862, 7202 }, /* braille_dots_267 */ { 0x01002863, 4907 }, /* braille_dots_1267 */ { 0x01002864, 7762 }, /* braille_dots_367 */ { 0x01002865, 5499 }, /* braille_dots_1367 */ { 0x01002866, 6651 }, /* braille_dots_2367 */ { 0x01002867, 4325 }, /* braille_dots_12367 */ { 0x01002868, 8034 }, /* braille_dots_467 */ { 0x01002869, 5787 }, /* braille_dots_1467 */ { 0x0100286a, 6939 }, /* braille_dots_2467 */ { 0x0100286b, 4629 }, /* braille_dots_12467 */ { 0x0100286c, 7499 }, /* braille_dots_3467 */ { 0x0100286d, 5221 }, /* braille_dots_13467 */ { 0x0100286e, 6373 }, /* braille_dots_23467 */ { 0x0100286f, 4032 }, /* braille_dots_123467 */ { 0x01002870, 8166 }, /* braille_dots_567 */ { 0x01002871, 5927 }, /* braille_dots_1567 */ { 0x01002872, 7079 }, /* braille_dots_2567 */ { 0x01002873, 4777 }, /* braille_dots_12567 */ { 0x01002874, 7639 }, /* braille_dots_3567 */ { 0x01002875, 5369 }, /* braille_dots_13567 */ { 0x01002876, 6521 }, /* braille_dots_23567 */ { 0x01002877, 4188 }, /* braille_dots_123567 */ { 0x01002878, 7911 }, /* braille_dots_4567 */ { 0x01002879, 5657 }, /* braille_dots_14567 */ { 0x0100287a, 6809 }, /* braille_dots_24567 */ { 0x0100287b, 4492 }, /* braille_dots_124567 */ { 0x0100287c, 7369 }, /* braille_dots_34567 */ { 0x0100287d, 5084 }, /* braille_dots_134567 */ { 0x0100287e, 6236 }, /* braille_dots_234567 */ { 0x0100287f, 3888 }, /* braille_dots_1234567 */ { 0x01002880, 8362 }, /* braille_dots_8 */ { 0x01002881, 6135 }, /* braille_dots_18 */ { 0x01002882, 7287 }, /* braille_dots_28 */ { 0x01002883, 4997 }, /* braille_dots_128 */ { 0x01002884, 7847 }, /* braille_dots_38 */ { 0x01002885, 5589 }, /* braille_dots_138 */ { 0x01002886, 6741 }, /* braille_dots_238 */ { 0x01002887, 4420 }, /* braille_dots_1238 */ { 0x01002888, 8119 }, /* braille_dots_48 */ { 0x01002889, 5877 }, /* braille_dots_148 */ { 0x0100288a, 7029 }, /* braille_dots_248 */ { 0x0100288b, 4724 }, /* braille_dots_1248 */ { 0x0100288c, 7589 }, /* braille_dots_348 */ { 0x0100288d, 5316 }, /* braille_dots_1348 */ { 0x0100288e, 6468 }, /* braille_dots_2348 */ { 0x0100288f, 4132 }, /* braille_dots_12348 */ { 0x01002890, 8251 }, /* braille_dots_58 */ { 0x01002891, 6017 }, /* braille_dots_158 */ { 0x01002892, 7169 }, /* braille_dots_258 */ { 0x01002893, 4872 }, /* braille_dots_1258 */ { 0x01002894, 7729 }, /* braille_dots_358 */ { 0x01002895, 5464 }, /* braille_dots_1358 */ { 0x01002896, 6616 }, /* braille_dots_2358 */ { 0x01002897, 4288 }, /* braille_dots_12358 */ { 0x01002898, 8001 }, /* braille_dots_458 */ { 0x01002899, 5752 }, /* braille_dots_1458 */ { 0x0100289a, 6904 }, /* braille_dots_2458 */ { 0x0100289b, 4592 }, /* braille_dots_12458 */ { 0x0100289c, 7464 }, /* braille_dots_3458 */ { 0x0100289d, 5184 }, /* braille_dots_13458 */ { 0x0100289e, 6336 }, /* braille_dots_23458 */ { 0x0100289f, 3993 }, /* braille_dots_123458 */ { 0x010028a0, 8315 }, /* braille_dots_68 */ { 0x010028a1, 6085 }, /* braille_dots_168 */ { 0x010028a2, 7237 }, /* braille_dots_268 */ { 0x010028a3, 4944 }, /* braille_dots_1268 */ { 0x010028a4, 7797 }, /* braille_dots_368 */ { 0x010028a5, 5536 }, /* braille_dots_1368 */ { 0x010028a6, 6688 }, /* braille_dots_2368 */ { 0x010028a7, 4364 }, /* braille_dots_12368 */ { 0x010028a8, 8069 }, /* braille_dots_468 */ { 0x010028a9, 5824 }, /* braille_dots_1468 */ { 0x010028aa, 6976 }, /* braille_dots_2468 */ { 0x010028ab, 4668 }, /* braille_dots_12468 */ { 0x010028ac, 7536 }, /* braille_dots_3468 */ { 0x010028ad, 5260 }, /* braille_dots_13468 */ { 0x010028ae, 6412 }, /* braille_dots_23468 */ { 0x010028af, 4073 }, /* braille_dots_123468 */ { 0x010028b0, 8201 }, /* braille_dots_568 */ { 0x010028b1, 5964 }, /* braille_dots_1568 */ { 0x010028b2, 7116 }, /* braille_dots_2568 */ { 0x010028b3, 4816 }, /* braille_dots_12568 */ { 0x010028b4, 7676 }, /* braille_dots_3568 */ { 0x010028b5, 5408 }, /* braille_dots_13568 */ { 0x010028b6, 6560 }, /* braille_dots_23568 */ { 0x010028b7, 4229 }, /* braille_dots_123568 */ { 0x010028b8, 7948 }, /* braille_dots_4568 */ { 0x010028b9, 5696 }, /* braille_dots_14568 */ { 0x010028ba, 6848 }, /* braille_dots_24568 */ { 0x010028bb, 4533 }, /* braille_dots_124568 */ { 0x010028bc, 7408 }, /* braille_dots_34568 */ { 0x010028bd, 5125 }, /* braille_dots_134568 */ { 0x010028be, 6277 }, /* braille_dots_234568 */ { 0x010028bf, 3931 }, /* braille_dots_1234568 */ { 0x010028c0, 8346 }, /* braille_dots_78 */ { 0x010028c1, 6118 }, /* braille_dots_178 */ { 0x010028c2, 7270 }, /* braille_dots_278 */ { 0x010028c3, 4979 }, /* braille_dots_1278 */ { 0x010028c4, 7830 }, /* braille_dots_378 */ { 0x010028c5, 5571 }, /* braille_dots_1378 */ { 0x010028c6, 6723 }, /* braille_dots_2378 */ { 0x010028c7, 4401 }, /* braille_dots_12378 */ { 0x010028c8, 8102 }, /* braille_dots_478 */ { 0x010028c9, 5859 }, /* braille_dots_1478 */ { 0x010028ca, 7011 }, /* braille_dots_2478 */ { 0x010028cb, 4705 }, /* braille_dots_12478 */ { 0x010028cc, 7571 }, /* braille_dots_3478 */ { 0x010028cd, 5297 }, /* braille_dots_13478 */ { 0x010028ce, 6449 }, /* braille_dots_23478 */ { 0x010028cf, 4112 }, /* braille_dots_123478 */ { 0x010028d0, 8234 }, /* braille_dots_578 */ { 0x010028d1, 5999 }, /* braille_dots_1578 */ { 0x010028d2, 7151 }, /* braille_dots_2578 */ { 0x010028d3, 4853 }, /* braille_dots_12578 */ { 0x010028d4, 7711 }, /* braille_dots_3578 */ { 0x010028d5, 5445 }, /* braille_dots_13578 */ { 0x010028d6, 6597 }, /* braille_dots_23578 */ { 0x010028d7, 4268 }, /* braille_dots_123578 */ { 0x010028d8, 7983 }, /* braille_dots_4578 */ { 0x010028d9, 5733 }, /* braille_dots_14578 */ { 0x010028da, 6885 }, /* braille_dots_24578 */ { 0x010028db, 4572 }, /* braille_dots_124578 */ { 0x010028dc, 7445 }, /* braille_dots_34578 */ { 0x010028dd, 5164 }, /* braille_dots_134578 */ { 0x010028de, 6316 }, /* braille_dots_234578 */ { 0x010028df, 3972 }, /* braille_dots_1234578 */ { 0x010028e0, 8298 }, /* braille_dots_678 */ { 0x010028e1, 6067 }, /* braille_dots_1678 */ { 0x010028e2, 7219 }, /* braille_dots_2678 */ { 0x010028e3, 4925 }, /* braille_dots_12678 */ { 0x010028e4, 7779 }, /* braille_dots_3678 */ { 0x010028e5, 5517 }, /* braille_dots_13678 */ { 0x010028e6, 6669 }, /* braille_dots_23678 */ { 0x010028e7, 4344 }, /* braille_dots_123678 */ { 0x010028e8, 8051 }, /* braille_dots_4678 */ { 0x010028e9, 5805 }, /* braille_dots_14678 */ { 0x010028ea, 6957 }, /* braille_dots_24678 */ { 0x010028eb, 4648 }, /* braille_dots_124678 */ { 0x010028ec, 7517 }, /* braille_dots_34678 */ { 0x010028ed, 5240 }, /* braille_dots_134678 */ { 0x010028ee, 6392 }, /* braille_dots_234678 */ { 0x010028ef, 4052 }, /* braille_dots_1234678 */ { 0x010028f0, 8183 }, /* braille_dots_5678 */ { 0x010028f1, 5945 }, /* braille_dots_15678 */ { 0x010028f2, 7097 }, /* braille_dots_25678 */ { 0x010028f3, 4796 }, /* braille_dots_125678 */ { 0x010028f4, 7657 }, /* braille_dots_35678 */ { 0x010028f5, 5388 }, /* braille_dots_135678 */ { 0x010028f6, 6540 }, /* braille_dots_235678 */ { 0x010028f7, 4208 }, /* braille_dots_1235678 */ { 0x010028f8, 7929 }, /* braille_dots_45678 */ { 0x010028f9, 5676 }, /* braille_dots_145678 */ { 0x010028fa, 6828 }, /* braille_dots_245678 */ { 0x010028fb, 4512 }, /* braille_dots_1245678 */ { 0x010028fc, 7388 }, /* braille_dots_345678 */ { 0x010028fd, 5104 }, /* braille_dots_1345678 */ { 0x010028fe, 6256 }, /* braille_dots_2345678 */ { 0x010028ff, 3909 }, /* braille_dots_12345678 */ { 0x100000a8, 16910 }, /* hpmute_acute */ { 0x100000a9, 16977 }, /* hpmute_grave */ { 0x100000aa, 16923 }, /* hpmute_asciicircum */ { 0x100000ab, 16960 }, /* hpmute_diaeresis */ { 0x100000ac, 16942 }, /* hpmute_asciitilde */ { 0x100000af, 16867 }, /* hplira */ { 0x100000be, 16813 }, /* hpguilder */ { 0x100000ee, 17014 }, /* hpYdiaeresis */ { 0x100000f6, 16874 }, /* hplongminus */ { 0x100000fc, 16767 }, /* hpblock */ { 0x1000fe22, 10414 }, /* Ddiaeresis */ { 0x1000fe27, 10344 }, /* Dacute_accent */ { 0x1000fe2c, 10379 }, /* Dcedilla_accent */ { 0x1000fe5e, 10395 }, /* Dcircumflex_accent */ { 0x1000fe60, 11189 }, /* Dgrave_accent */ { 0x1000fe7e, 11417 }, /* Dtilde */ { 0x1000feb0, 11388 }, /* Dring_accent */ { 0x1000ff00, 11380 }, /* DRemove */ { 0x1000ff48, 16886 }, /* hpModelock1 */ { 0x1000ff49, 16898 }, /* hpModelock2 */ { 0x1000ff6c, 16990 }, /* hpReset */ { 0x1000ff6d, 16998 }, /* hpSystem */ { 0x1000ff6e, 17007 }, /* hpUser */ { 0x1000ff6f, 16775 }, /* hpClearLine */ { 0x1000ff70, 16836 }, /* hpInsertLine */ { 0x1000ff71, 16800 }, /* hpDeleteLine */ { 0x1000ff72, 16823 }, /* hpInsertChar */ { 0x1000ff73, 16787 }, /* hpDeleteChar */ { 0x1000ff74, 16757 }, /* hpBackTab */ { 0x1000ff75, 16854 }, /* hpKP_BackTab */ { 0x1000ff76, 12125 }, /* Ext16bit_L */ { 0x1000ff77, 12136 }, /* Ext16bit_R */ { 0x1004ff02, 20956 }, /* osfCopy */ { 0x1004ff03, 20964 }, /* osfCut */ { 0x1004ff04, 21163 }, /* osfPaste */ { 0x1004ff07, 20900 }, /* osfBackTab */ { 0x1004ff08, 20887 }, /* osfBackSpace */ { 0x1004ff0b, 20947 }, /* osfClear */ { 0x1004ff1b, 21026 }, /* osfEscape */ { 0x1004ff31, 20876 }, /* osfAddMode */ { 0x1004ff32, 21197 }, /* osfPrimaryPaste */ { 0x1004ff33, 21213 }, /* osfQuickPaste */ { 0x1004ff40, 21128 }, /* osfPageLeft */ { 0x1004ff41, 21153 }, /* osfPageUp */ { 0x1004ff42, 21116 }, /* osfPageDown */ { 0x1004ff43, 21140 }, /* osfPageRight */ { 0x1004ff44, 20864 }, /* osfActivate */ { 0x1004ff45, 21080 }, /* osfMenuBar */ { 0x1004ff51, 21064 }, /* osfLeft */ { 0x1004ff52, 21290 }, /* osfUp */ { 0x1004ff53, 21250 }, /* osfRight */ { 0x1004ff54, 20996 }, /* osfDown */ { 0x1004ff57, 21015 }, /* osfEndLine */ { 0x1004ff58, 20924 }, /* osfBeginLine */ { 0x1004ff59, 21004 }, /* osfEndData */ { 0x1004ff5a, 20911 }, /* osfBeginData */ { 0x1004ff5b, 21185 }, /* osfPrevMenu */ { 0x1004ff5c, 21104 }, /* osfNextMenu */ { 0x1004ff5d, 21172 }, /* osfPrevField */ { 0x1004ff5e, 21091 }, /* osfNextField */ { 0x1004ff60, 21259 }, /* osfSelect */ { 0x1004ff63, 21054 }, /* osfInsert */ { 0x1004ff65, 21282 }, /* osfUndo */ { 0x1004ff67, 21072 }, /* osfMenu */ { 0x1004ff69, 20937 }, /* osfCancel */ { 0x1004ff6a, 21046 }, /* osfHelp */ { 0x1004ff71, 21269 }, /* osfSelectAll */ { 0x1004ff72, 20981 }, /* osfDeselectAll */ { 0x1004ff73, 21227 }, /* osfReselect */ { 0x1004ff74, 21036 }, /* osfExtend */ { 0x1004ff78, 21239 }, /* osfRestore */ { 0x1004ffff, 20971 }, /* osfDelete */ { 0x1005ff00, 24032 }, /* SunFA_Grave */ { 0x1005ff01, 24003 }, /* SunFA_Circum */ { 0x1005ff02, 24044 }, /* SunFA_Tilde */ { 0x1005ff03, 23977 }, /* SunFA_Acute */ { 0x1005ff04, 24016 }, /* SunFA_Diaeresis */ { 0x1005ff05, 23989 }, /* SunFA_Cedilla */ { 0x1005ff10, 23963 }, /* SunF36 */ { 0x1005ff11, 23970 }, /* SunF37 */ { 0x1005ff60, 24180 }, /* SunSys_Req */ { 0x1005ff70, 24163 }, /* SunProps */ { 0x1005ff71, 24064 }, /* SunFront */ { 0x1005ff72, 23948 }, /* SunCopy */ { 0x1005ff73, 24073 }, /* SunOpen */ { 0x1005ff74, 24103 }, /* SunPaste */ { 0x1005ff75, 23956 }, /* SunCut */ { 0x1005ff76, 24112 }, /* SunPowerSwitch */ { 0x1005ff77, 23884 }, /* SunAudioLowerVolume */ { 0x1005ff78, 23904 }, /* SunAudioMute */ { 0x1005ff79, 23917 }, /* SunAudioRaiseVolume */ { 0x1005ff7a, 24199 }, /* SunVideoDegauss */ { 0x1005ff7b, 24215 }, /* SunVideoLowerBrightness */ { 0x1005ff7c, 24239 }, /* SunVideoRaiseBrightness */ { 0x1005ff7d, 24127 }, /* SunPowerSwitchShift */ { 0x1008fe01, 28451 }, /* XF86Switch_VT_1 */ { 0x1008fe02, 28518 }, /* XF86Switch_VT_2 */ { 0x1008fe03, 28534 }, /* XF86Switch_VT_3 */ { 0x1008fe04, 28550 }, /* XF86Switch_VT_4 */ { 0x1008fe05, 28566 }, /* XF86Switch_VT_5 */ { 0x1008fe06, 28582 }, /* XF86Switch_VT_6 */ { 0x1008fe07, 28598 }, /* XF86Switch_VT_7 */ { 0x1008fe08, 28614 }, /* XF86Switch_VT_8 */ { 0x1008fe09, 28630 }, /* XF86Switch_VT_9 */ { 0x1008fe0a, 28467 }, /* XF86Switch_VT_10 */ { 0x1008fe0b, 28484 }, /* XF86Switch_VT_11 */ { 0x1008fe0c, 28501 }, /* XF86Switch_VT_12 */ { 0x1008fe20, 28777 }, /* XF86Ungrab */ { 0x1008fe21, 27135 }, /* XF86ClearGrab */ { 0x1008fe22, 27962 }, /* XF86Next_VMode */ { 0x1008fe23, 28084 }, /* XF86Prev_VMode */ { 0x1008fe24, 27742 }, /* XF86LogWindowTree */ { 0x1008fe25, 27715 }, /* XF86LogGrabInfo */ { 0x1008ff01, 27853 }, /* XF86ModeLock */ { 0x1008ff02, 27888 }, /* XF86MonBrightnessUp */ { 0x1008ff03, 27866 }, /* XF86MonBrightnessDown */ { 0x1008ff04, 27491 }, /* XF86KbdLightOnOff */ { 0x1008ff05, 27471 }, /* XF86KbdBrightnessUp */ { 0x1008ff06, 27449 }, /* XF86KbdBrightnessDown */ { 0x1008ff10, 28383 }, /* XF86Standby */ { 0x1008ff11, 26749 }, /* XF86AudioLowerVolume */ { 0x1008ff12, 26802 }, /* XF86AudioMute */ { 0x1008ff13, 26873 }, /* XF86AudioRaiseVolume */ { 0x1008ff14, 26845 }, /* XF86AudioPlay */ { 0x1008ff15, 26962 }, /* XF86AudioStop */ { 0x1008ff16, 26859 }, /* XF86AudioPrev */ { 0x1008ff17, 26816 }, /* XF86AudioNext */ { 0x1008ff18, 27412 }, /* XF86HomePage */ { 0x1008ff19, 27760 }, /* XF86Mail */ { 0x1008ff1a, 28395 }, /* XF86Start */ { 0x1008ff1b, 28307 }, /* XF86Search */ { 0x1008ff1c, 26914 }, /* XF86AudioRecord */ { 0x1008ff1d, 27090 }, /* XF86Calculator */ { 0x1008ff1e, 27808 }, /* XF86Memo */ { 0x1008ff1f, 28681 }, /* XF86ToDoList */ { 0x1008ff20, 27105 }, /* XF86Calendar */ { 0x1008ff21, 28057 }, /* XF86PowerDown */ { 0x1008ff22, 27173 }, /* XF86ContrastAdjust */ { 0x1008ff23, 28177 }, /* XF86RockerUp */ { 0x1008ff24, 28146 }, /* XF86RockerDown */ { 0x1008ff25, 28161 }, /* XF86RockerEnter */ { 0x1008ff26, 26985 }, /* XF86Back */ { 0x1008ff27, 27317 }, /* XF86Forward */ { 0x1008ff28, 28405 }, /* XF86Stop */ { 0x1008ff29, 28113 }, /* XF86Refresh */ { 0x1008ff2a, 28071 }, /* XF86PowerOff */ { 0x1008ff2b, 28865 }, /* XF86WakeUp */ { 0x1008ff2c, 27258 }, /* XF86Eject */ { 0x1008ff2d, 28247 }, /* XF86ScreenSaver */ { 0x1008ff2e, 28921 }, /* XF86WWW */ { 0x1008ff2f, 28347 }, /* XF86Sleep */ { 0x1008ff30, 27291 }, /* XF86Favorites */ { 0x1008ff31, 26830 }, /* XF86AudioPause */ { 0x1008ff32, 26770 }, /* XF86AudioMedia */ { 0x1008ff33, 27918 }, /* XF86MyComputer */ { 0x1008ff34, 28831 }, /* XF86VendorHome */ { 0x1008ff35, 27701 }, /* XF86LightBulb */ { 0x1008ff36, 28338 }, /* XF86Shop */ { 0x1008ff37, 27400 }, /* XF86History */ { 0x1008ff38, 28001 }, /* XF86OpenURL */ { 0x1008ff39, 26655 }, /* XF86AddFavorite */ { 0x1008ff3a, 27425 }, /* XF86HotLinks */ { 0x1008ff3b, 27054 }, /* XF86BrightnessAdjust */ { 0x1008ff3c, 27305 }, /* XF86Finance */ { 0x1008ff3d, 27159 }, /* XF86Community */ { 0x1008ff3e, 26946 }, /* XF86AudioRewind */ { 0x1008ff3f, 26994 }, /* XF86BackForward */ { 0x1008ff40, 27509 }, /* XF86Launch0 */ { 0x1008ff41, 27521 }, /* XF86Launch1 */ { 0x1008ff42, 27533 }, /* XF86Launch2 */ { 0x1008ff43, 27545 }, /* XF86Launch3 */ { 0x1008ff44, 27557 }, /* XF86Launch4 */ { 0x1008ff45, 27569 }, /* XF86Launch5 */ { 0x1008ff46, 27581 }, /* XF86Launch6 */ { 0x1008ff47, 27593 }, /* XF86Launch7 */ { 0x1008ff48, 27605 }, /* XF86Launch8 */ { 0x1008ff49, 27617 }, /* XF86Launch9 */ { 0x1008ff4a, 27629 }, /* XF86LaunchA */ { 0x1008ff4b, 27641 }, /* XF86LaunchB */ { 0x1008ff4c, 27653 }, /* XF86LaunchC */ { 0x1008ff4d, 27665 }, /* XF86LaunchD */ { 0x1008ff4e, 27677 }, /* XF86LaunchE */ { 0x1008ff4f, 27689 }, /* XF86LaunchF */ { 0x1008ff50, 26671 }, /* XF86ApplicationLeft */ { 0x1008ff51, 26691 }, /* XF86ApplicationRight */ { 0x1008ff52, 27045 }, /* XF86Book */ { 0x1008ff53, 27118 }, /* XF86CD */ { 0x1008ff54, 27075 }, /* XF86Calculater */ { 0x1008ff55, 27125 }, /* XF86Clear */ { 0x1008ff56, 27149 }, /* XF86Close */ { 0x1008ff57, 27192 }, /* XF86Copy */ { 0x1008ff58, 27201 }, /* XF86Cut */ { 0x1008ff59, 27224 }, /* XF86Display */ { 0x1008ff5a, 27250 }, /* XF86DOS */ { 0x1008ff5b, 27236 }, /* XF86Documents */ { 0x1008ff5c, 27268 }, /* XF86Excel */ { 0x1008ff5d, 27278 }, /* XF86Explorer */ { 0x1008ff5e, 27360 }, /* XF86Game */ { 0x1008ff5f, 27369 }, /* XF86Go */ { 0x1008ff60, 27438 }, /* XF86iTouch */ { 0x1008ff61, 27731 }, /* XF86LogOff */ { 0x1008ff62, 27785 }, /* XF86Market */ { 0x1008ff63, 27796 }, /* XF86Meeting */ { 0x1008ff65, 27817 }, /* XF86MenuKB */ { 0x1008ff66, 27828 }, /* XF86MenuPB */ { 0x1008ff67, 27933 }, /* XF86MySites */ { 0x1008ff68, 27945 }, /* XF86New */ { 0x1008ff69, 27953 }, /* XF86News */ { 0x1008ff6a, 27977 }, /* XF86OfficeHome */ { 0x1008ff6b, 27992 }, /* XF86Open */ { 0x1008ff6c, 28013 }, /* XF86Option */ { 0x1008ff6d, 28024 }, /* XF86Paste */ { 0x1008ff6e, 28034 }, /* XF86Phone */ { 0x1008ff70, 28099 }, /* XF86Q */ { 0x1008ff72, 28136 }, /* XF86Reply */ { 0x1008ff73, 28125 }, /* XF86Reload */ { 0x1008ff74, 28190 }, /* XF86RotateWindows */ { 0x1008ff75, 28223 }, /* XF86RotationPB */ { 0x1008ff76, 28208 }, /* XF86RotationKB */ { 0x1008ff77, 28238 }, /* XF86Save */ { 0x1008ff78, 28294 }, /* XF86ScrollUp */ { 0x1008ff79, 28279 }, /* XF86ScrollDown */ { 0x1008ff7a, 28263 }, /* XF86ScrollClick */ { 0x1008ff7b, 28329 }, /* XF86Send */ { 0x1008ff7c, 28357 }, /* XF86Spell */ { 0x1008ff7d, 28367 }, /* XF86SplitScreen */ { 0x1008ff7e, 28427 }, /* XF86Support */ { 0x1008ff7f, 28646 }, /* XF86TaskPane */ { 0x1008ff80, 28659 }, /* XF86Terminal */ { 0x1008ff81, 28694 }, /* XF86Tools */ { 0x1008ff82, 28766 }, /* XF86Travel */ { 0x1008ff84, 28812 }, /* XF86UserPB */ { 0x1008ff85, 28788 }, /* XF86User1KB */ { 0x1008ff86, 28800 }, /* XF86User2KB */ { 0x1008ff87, 28846 }, /* XF86Video */ { 0x1008ff88, 28887 }, /* XF86WheelButton */ { 0x1008ff89, 28912 }, /* XF86Word */ { 0x1008ff8a, 28929 }, /* XF86Xfer */ { 0x1008ff8b, 28949 }, /* XF86ZoomIn */ { 0x1008ff8c, 28960 }, /* XF86ZoomOut */ { 0x1008ff8d, 26976 }, /* XF86Away */ { 0x1008ff8e, 27839 }, /* XF86Messenger */ { 0x1008ff8f, 28876 }, /* XF86WebCam */ { 0x1008ff90, 27769 }, /* XF86MailForward */ { 0x1008ff91, 28044 }, /* XF86Pictures */ { 0x1008ff92, 27908 }, /* XF86Music */ { 0x1008ff93, 27010 }, /* XF86Battery */ { 0x1008ff94, 27031 }, /* XF86Bluetooth */ { 0x1008ff95, 28903 }, /* XF86WLAN */ { 0x1008ff96, 28823 }, /* XF86UWB */ { 0x1008ff97, 26732 }, /* XF86AudioForward */ { 0x1008ff98, 26930 }, /* XF86AudioRepeat */ { 0x1008ff99, 26894 }, /* XF86AudioRandomPlay */ { 0x1008ff9a, 28414 }, /* XF86Subtitle */ { 0x1008ff9b, 26712 }, /* XF86AudioCycleTrack */ { 0x1008ff9c, 27209 }, /* XF86CycleAngle */ { 0x1008ff9d, 27329 }, /* XF86FrameBack */ { 0x1008ff9e, 27343 }, /* XF86FrameForward */ { 0x1008ff9f, 28672 }, /* XF86Time */ { 0x1008ffa0, 28318 }, /* XF86Select */ { 0x1008ffa1, 28856 }, /* XF86View */ { 0x1008ffa2, 28704 }, /* XF86TopMenu */ { 0x1008ffa3, 28105 }, /* XF86Red */ { 0x1008ffa4, 27376 }, /* XF86Green */ { 0x1008ffa5, 28938 }, /* XF86Yellow */ { 0x1008ffa6, 27022 }, /* XF86Blue */ { 0x1008ffa7, 28439 }, /* XF86Suspend */ { 0x1008ffa8, 27386 }, /* XF86Hibernate */ { 0x1008ffa9, 28747 }, /* XF86TouchpadToggle */ { 0x1008ffb0, 28732 }, /* XF86TouchpadOn */ { 0x1008ffb1, 28716 }, /* XF86TouchpadOff */ { 0x1008ffb2, 26785 }, /* XF86AudioMicMute */ }; libkkc-0.3.5/libkkc/language-model-utils.vala000066400000000000000000000034471244473050600211160ustar00rootroot00000000000000/* * Copyright (C) 2012-2014 Daiki Ueno * Copyright (C) 2012-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ namespace Kkc { namespace LanguageModelUtils { internal static double decode_cost (uint16 cost, double min_cost) { return cost * min_cost / 65535; } internal static long bsearch_ngram (void *memory, long start_offset, long end_offset, long record_size, uint8[] needle) { var offset = start_offset + (end_offset - start_offset) / 2; while (start_offset <= end_offset) { uint8 *p = (uint8 *) memory + offset * record_size; var r = Memory.cmp (p, needle, needle.length); if (r == 0) return offset; if (r > 0) end_offset = offset - 1; else start_offset = offset + 1; offset = start_offset + (end_offset - start_offset) / 2; } return -1; } } } libkkc-0.3.5/libkkc/language-model.vala000066400000000000000000000151071244473050600177540ustar00rootroot00000000000000/* * Copyright (C) 2012-2014 Daiki Ueno * Copyright (C) 2012-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { public errordomain LanguageModelError { NOT_FOUND } public struct LanguageModelEntry { string input; string output; uint id; } public class LanguageModelMetadata : MetadataFile { public Type model_type { get; construct set; } // Make the value type boxed to avoid unwanted ulong -> uint cast: // https://bugzilla.gnome.org/show_bug.cgi?id=660621 static Map model_types; static construct { model_types = new HashMap (); model_types.set ("text2", typeof (TextBigramLanguageModel)); model_types.set ("text3", typeof (TextTrigramLanguageModel)); model_types.set ("sorted2", typeof (SortedBigramLanguageModel)); model_types.set ("sorted3", typeof (SortedTrigramLanguageModel)); } public LanguageModelMetadata (string name, string filename) throws Error { base (name, filename); } public override bool parse (Json.Object object) throws Error { if (!object.has_member ("type")) throw new MetadataFormatError.MISSING_FIELD ( "type is not defined in metadata"); var member = object.get_member ("type"); var type = member.get_string (); if (!model_types.has_key (type)) throw new MetadataFormatError.INVALID_FIELD ( "unknown language model type %s", type); this.model_type = model_types.get (type); return true; } public static LanguageModelMetadata? find (string name) { var dirs = Utils.build_data_path ("models"); foreach (var dir in dirs) { var metadata_filename = Path.build_filename ( dir, name, "metadata.json"); if (FileUtils.test (metadata_filename, FileTest.EXISTS)) { try { return new LanguageModelMetadata ( name, metadata_filename); } catch (Error e) { continue; } } } return null; } public LanguageModel? create_language_model () throws Error { return (LanguageModel) Initable.new ( model_type, null, "metadata", this, null); } } public abstract class LanguageModel : Object, Initable { public LanguageModelMetadata metadata { get; construct set; } public abstract LanguageModelEntry bos { get; } public abstract LanguageModelEntry eos { get; } public abstract Collection unigram_entries (string input); public abstract Collection entries (string input); public abstract new LanguageModelEntry? @get (string input, string output); public LanguageModel (LanguageModelMetadata metadata) throws Error { Object (metadata: metadata); init (null); } public abstract bool parse () throws Error; public bool init (GLib.Cancellable? cancellable = null) throws Error { parse (); return true; } public static LanguageModel? load (string name) throws Error { var metadata = LanguageModelMetadata.find (name); if (metadata == null) throw new LanguageModelError.NOT_FOUND ( "can't find language model %s", name); return metadata.create_language_model (); } } public interface UnigramLanguageModel : LanguageModel { public abstract double unigram_cost (LanguageModelEntry entry); public abstract double unigram_backoff (LanguageModelEntry entry); } public interface BigramLanguageModel : UnigramLanguageModel { public abstract bool has_bigram (LanguageModelEntry pentry, LanguageModelEntry entry); public abstract double bigram_cost (LanguageModelEntry pentry, LanguageModelEntry entry); public abstract double bigram_backoff (LanguageModelEntry pentry, LanguageModelEntry entry); public double bigram_backoff_cost (LanguageModelEntry pentry, LanguageModelEntry entry) { if (has_bigram (pentry, entry)) return bigram_cost (pentry, entry); var backoff = unigram_backoff (pentry); var cost = unigram_cost (entry); return backoff + cost; } } public interface TrigramLanguageModel : BigramLanguageModel { public abstract bool has_trigram (LanguageModelEntry ppentry, LanguageModelEntry pentry, LanguageModelEntry entry); public abstract double trigram_cost (LanguageModelEntry ppentry, LanguageModelEntry pentry, LanguageModelEntry entry); public double trigram_backoff_cost (LanguageModelEntry ppentry, LanguageModelEntry pentry, LanguageModelEntry entry) { if (has_trigram (ppentry, pentry, entry)) return trigram_cost (ppentry, pentry, entry); var backoff = bigram_backoff (ppentry, pentry); var cost = bigram_backoff_cost (pentry, entry); return backoff + cost; } } } libkkc-0.3.5/libkkc/map-file.vala000066400000000000000000000140041244473050600165600ustar00rootroot00000000000000/* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { abstract class MapFile : Object { Map> maps = new HashMap> (); Map> parent_maps = new HashMap> (); void load_map (Map map, Json.Object object) { var keys = object.get_members (); foreach (var key in keys) { var value = object.get_member (key); var _key = uniquify (key); map.set (_key, value); } } protected virtual string uniquify (string key) { return key; } void load (RuleMetadata metadata, string type, string name, Set parents, Map> maps, Map> parent_maps) throws RuleParseError { var filename = metadata.locate_map_file (type, name); if (filename == null) { throw new RuleParseError.FAILED ( "can't locate map file for %s/%s", type, name); } Json.Parser parser = new Json.Parser (); try { if (!parser.load_from_file (filename)) throw new RuleParseError.FAILED (""); } catch (GLib.Error e) { throw new RuleParseError.FAILED ( "can't load %s: %s".printf (filename, e.message)); } var root = parser.get_root (); if (root.get_node_type () != Json.NodeType.OBJECT) { throw new RuleParseError.FAILED ( "root element must be an object"); } var object = root.get_object (); Json.Node member; if (object.has_member ("include")) { member = object.get_member ("include"); if (member.get_node_type () != Json.NodeType.ARRAY) { throw new RuleParseError.FAILED ( "\"include\" element must be an array"); } var include = member.get_array (); var elements = include.get_elements (); foreach (var element in elements) { var parent = element.get_string (); if (parent in parents) { throw new RuleParseError.FAILED ( "found circular include of %s", parent); } string parent_rule, parent_name; var index = parent.index_of ("/"); if (index < 0) { parent_rule = metadata.name; parent_name = parent; } else { parent_rule = parent[0:index]; parent_name = parent[index + 1:parent.length]; } var parent_metadata = RuleMetadata.find (parent_rule); if (parent_metadata == null) { throw new RuleParseError.FAILED ("can't find rule %s", parent_rule); } parents.add (parent); load (parent_metadata, type, parent_name, parents, parent_maps, parent_maps); } } if (object.has_member ("define")) { member = object.get_member ("define"); if (member.get_node_type () != Json.NodeType.OBJECT) { throw new RuleParseError.FAILED ( "\"define\" element must be an object"); } var define = member.get_object (); var keys = define.get_members (); foreach (var key in keys) { if (!maps.has_key (key)) { var map = new HashMap (); maps.set (key, map); } member = define.get_member (key); if (member.get_node_type () != Json.NodeType.OBJECT) { throw new RuleParseError.FAILED ( "map element must be an object"); } load_map (maps.get (key), member.get_object ()); } } } internal MapFile (RuleMetadata metadata, string type, string name) throws RuleParseError { Set parents = new Gee.HashSet (); load (metadata, type, name, parents, maps, parent_maps); } internal new Map @get (string name) { if (maps.has_key (name)) return maps.get (name); return new HashMap (); } internal new Map @get_parent (string name) { if (parent_maps.has_key (name)) return parent_maps.get (name); return new HashMap (); } } } libkkc-0.3.5/libkkc/metadata-file.vala000066400000000000000000000057431244473050600175750ustar00rootroot00000000000000/* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ namespace Kkc { public errordomain MetadataFormatError { MISSING_FIELD, INVALID_FIELD } public abstract class MetadataFile : Object, Initable { /** * Name of the metadata. */ public string name { get; construct set; } /** * Label string of the metadata. */ public string label { get; construct set; } /** * Description of the metadata. */ public string description { get; construct set; } /** * Location of the metadata file. */ public string filename { get; construct set; } public MetadataFile (string name, string filename) throws Error { Object (name: name, filename: filename); init (null); } public abstract bool parse (Json.Object object) throws Error; public bool init (GLib.Cancellable? cancellable = null) throws Error { Json.Parser parser = new Json.Parser (); parser.load_from_file (filename); var root = parser.get_root (); if (root.get_node_type () != Json.NodeType.OBJECT) throw new MetadataFormatError.MISSING_FIELD ( "metadata must be a JSON object"); var object = root.get_object (); Json.Node member; if (!object.has_member ("name")) throw new MetadataFormatError.MISSING_FIELD ( "name is not defined in metadata"); member = object.get_member ("name"); var name = member.get_string (); if (!object.has_member ("description")) throw new MetadataFormatError.MISSING_FIELD ( "description is not defined in metadata"); member = object.get_member ("description"); var description = member.get_string (); parse (object); var label = name; if (label != "") label = dgettext (Config.GETTEXT_PACKAGE, label); if (description != "") description = dgettext (Config.GETTEXT_PACKAGE, description); this.label = label; this.description = description; return true; } } } libkkc-0.3.5/libkkc/nicola.vala000066400000000000000000000216011244473050600163340ustar00rootroot00000000000000/* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { /** * Get the current time in microseconds. */ public delegate int64 GetTime (); /** * Key event filter implementing NICOLA (thumb shift) input * * This class is rarely used in programs but specified as "filter" * property in rule metadata. * * @see Rule */ public class NicolaKeyEventFilter : KeyEventFilter { static int64 get_time () { var tv = TimeVal (); return (((int64) tv.tv_sec) * 1000000) + tv.tv_usec; } public GetTime get_time_func = get_time; /** * Duration where a single key press event is committed * without a corresponding key release event. */ public int64 timeout = 100000; /** * Duration between two overlapping key press events, so they * are considered as a doule key press/release event. */ public int64 overlap = 50000; /** * Maximum duration to wait for the next key event. */ public int64 maxwait = 10000000; class TimedEntry { public T data; public int64 time; public TimedEntry (T data, int64 time) { this.data = data; this.time = time; } } LinkedList> pending = new LinkedList> (); static bool is_char (KeyEvent key) { return key.unicode != 0; } static bool is_lshift (KeyEvent key) { return key.name == "Muhenkan"; } static bool is_rshift (KeyEvent key) { return key.name == "Henkan"; } static bool is_shift (KeyEvent key) { return is_lshift (key) || is_rshift (key); } KeyEvent? queue (KeyEvent key, int64 time, out int64 wait) { // Output a single key event for a matching press/release. if ((key.modifiers & ModifierType.RELEASE_MASK) != 0 && pending.size > 0 && pending.get (0).data.keyval == key.keyval) { var entry = pending.get (0); wait = get_next_wait (key, time); pending.clear (); return entry.data; } // Ignore repeated key press. if (pending.size > 0 && pending.get (0).data.keyval == key.keyval) { pending.get (0).time = time; wait = get_next_wait (key, time); return key; } // Queue at most three key events. if (pending.size > 2) { var iter = pending.bidir_list_iterator (); iter.last (); do { iter.remove (); } while (pending.size > 2 && iter.previous ()); } pending.insert (0, new TimedEntry (key, time)); wait = timeout; return null; } int64 get_next_wait (KeyEvent key, int64 time) { if (pending.size > 0) { var iter = pending.bidir_list_iterator (); iter.last (); do { var entry = iter.get (); if (time - entry.time > timeout) { iter.remove (); } } while (iter.previous ()); } if (pending.size > 0) { return timeout - (time - pending.last ().time); } else { return maxwait; } } KeyEvent? dispatch_single (int64 time) { var entry = pending.peek (); if (time - entry.time > timeout) { pending.clear (); return entry.data; } return null; } void apply_shift (KeyEvent s, KeyEvent c) { if (is_lshift (s)) { c.modifiers |= ModifierType.LSHIFT_MASK; } else if (is_rshift (s)) { c.modifiers |= ModifierType.RSHIFT_MASK; } } KeyEvent? dispatch (int64 time) { if (pending.size == 3) { var b = pending.get (0); var s = pending.get (1); var a = pending.get (2); var t1 = s.time - a.time; var t2 = b.time - s.time; if (t1 <= t2) { pending.clear (); pending.offer_head (b); var r = dispatch_single (time); apply_shift (s.data, a.data); var output = decompose_shifted (a.data); forwarded (output); return r; } else { pending.clear (); apply_shift (s.data, b.data); var output = decompose_shifted (a.data); forwarded (output); return b.data; } } else if (pending.size == 2) { var b = pending.get (0); var a = pending.get (1); if (b.time - a.time > overlap) { pending.clear (); pending.offer_head (b); var r = dispatch_single (time); var output = decompose_shifted (a.data); forwarded (output); return r; } else if ((is_char (a.data) && is_char (b.data)) || (is_shift (a.data) && is_shift (b.data))) { pending.clear (); pending.offer_head (b); var r = dispatch_single (time); var output = decompose_shifted (a.data); forwarded (output); return r; } else if (time - a.time > timeout) { pending.clear (); if (is_shift (b.data)) { apply_shift (b.data, a.data); return a.data; } else { apply_shift (a.data, b.data); return b.data; } } } else if (pending.size == 1) { return dispatch_single (time); } return null; } uint timeout_id = 0; bool timeout_func () { int64 time = get_time_func (); var r = dispatch (time); if (r != null) { var output = decompose_shifted (r); forwarded (output); } timeout_id = 0; return false; } // Translate left/right shift modifiers to a normal key // press events, so that they can be mapped in rom-kana // rule. For example, (lshift a) key event will be two // key events "L" and "a". KeyEvent? decompose_shifted (KeyEvent key) { if ((key.modifiers & ModifierType.LSHIFT_MASK) != 0) { forwarded (new KeyEvent.from_x_event (0x4c, 0, 0)); key.modifiers &= ~ModifierType.LSHIFT_MASK; return key; } if ((key.modifiers & ModifierType.RSHIFT_MASK) != 0) { forwarded (new KeyEvent.from_x_event (0x52, 0, 0)); key.modifiers &= ~ModifierType.RSHIFT_MASK; return key; } return key; } /** * {@inheritDoc} */ public override KeyEvent? filter_key_event (KeyEvent key) { int64 time = get_time_func (); int64 wait; var output = queue (key, time, out wait); if (wait > 0) { if (timeout_id > 0) Source.remove (timeout_id); timeout_id = Timeout.add ((uint) (wait / 1000), timeout_func); } if (output == null) output = dispatch (time); if (output == null) return null; return decompose_shifted (output); } /** * {@inheritDoc} */ public override void reset () { pending.clear (); } } } libkkc-0.3.5/libkkc/numeric-template.vala000066400000000000000000000116361244473050600203510ustar00rootroot00000000000000/* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { class NumericTemplate : Object, Template { ArrayList numerics = new ArrayList (); public string source { get; construct set; } public bool okuri { get; construct set; } Regex regex; Regex ref_regex; public NumericTemplate (string source) { try { regex = new Regex ("[0-9]+"); } catch (GLib.RegexError e) { assert_not_reached (); } try { ref_regex = new Regex ("#([0-9])"); } catch (GLib.RegexError e) { assert_not_reached (); } okuri = false; extract_numerics (source); } void extract_numerics (string source) { MatchInfo info = null; int start_pos = 0; var builder = new StringBuilder (); while (true) { try { if (!regex.match_full (source, -1, start_pos, 0, out info)) break; } catch (GLib.RegexError e) { return_if_reached (); } string numeric = info.fetch (0); int match_start_pos, match_end_pos; info.fetch_pos (0, out match_start_pos, out match_end_pos); numerics.add (int.parse (numeric)); builder.append (source[start_pos:match_start_pos]); builder.append ("#"); start_pos = match_end_pos; } builder.append (source[start_pos:source.length]); this.source = builder.str; } public string expand (string text) { // HACK: Exclude literal "#" from the result if (source == "#" && text == "#" && numerics.size > 0) { return RomKanaUtils.get_numeric ( numerics[0], NumericConversionType.LATIN); } var builder = new StringBuilder (); MatchInfo info = null; int start_pos = 0; for (int index = 0; index < numerics.size; index++) { try { if (!ref_regex.match_full (text, -1, start_pos, 0, out info)) break; } catch (GLib.RegexError e) { return_val_if_reached (text); } int match_start_pos, match_end_pos; info.fetch_pos (0, out match_start_pos, out match_end_pos); builder.append (text[start_pos:match_start_pos]); string type = info.fetch (1); switch (type[0]) { case '0': case '1': case '2': case '3': case '5': case '8': builder.append ( RomKanaUtils.get_numeric ( numerics[index], (NumericConversionType) (type[0] - '0'))); break; case '4': case '9': // Not supported yet builder.append ( RomKanaUtils.get_numeric ( numerics[index], NumericConversionType.LATIN)); break; default: warning ("unknown numeric conversion type: %s", type); builder.append ( RomKanaUtils.get_numeric ( numerics[index], NumericConversionType.LATIN)); break; } start_pos = match_end_pos; } builder.append (text[start_pos:text.length]); return builder.str; } } } libkkc-0.3.5/libkkc/rom-kana-utils.vala000066400000000000000000000434161244473050600177420ustar00rootroot00000000000000/* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { enum NumericConversionType { LATIN, WIDE_LATIN, KANJI_NUMERAL, KANJI, RECONVERT, DAIJI, RESERVED6, RESERVED7, GROUPING, SHOGI } abstract class RomKanaUtils : Object { struct KanaTableEntry { unichar katakana; string? hiragana; string? hankaku_katakana; } static const KanaTableEntry[] KanaTable = { {'ア', "あ", "ア"}, {'イ', "い", "イ"}, {'ウ', "う", "ウ"}, {'エ', "え", "エ"}, {'オ', "お", "オ"}, {'カ', "か", "カ"}, {'キ', "き", "キ"}, {'ク', "く", "ク"}, {'ケ', "け", "ケ"}, {'コ', "こ", "コ"}, {'サ', "さ", "サ"}, {'シ', "し", "シ"}, {'ス', "す", "ス"}, {'セ', "せ", "セ"}, {'ソ', "そ", "ソ"}, {'タ', "た", "タ"}, {'チ', "ち", "チ"}, {'ツ', "つ", "ツ"}, {'テ', "て", "テ"}, {'ト', "と", "ト"}, {'ナ', "な", "ナ"}, {'ニ', "に", "ニ"}, {'ヌ', "ぬ", "ヌ"}, {'ネ', "ね", "ネ"}, {'ノ', "の", "ノ"}, {'ハ', "は", "ハ"}, {'ヒ', "ひ", "ヒ"}, {'フ', "ふ", "フ"}, {'ヘ', "へ", "ヘ"}, {'ホ', "ほ", "ホ"}, {'マ', "ま", "マ"}, {'ミ', "み", "ミ"}, {'ム', "む", "ム"}, {'メ', "め", "メ"}, {'モ', "も", "モ"}, {'ヤ', "や", "ヤ"}, {'ユ', "ゆ", "ユ"}, {'ヨ', "よ", "ヨ"}, {'ラ', "ら", "ラ"}, {'リ', "り", "リ"}, {'ル', "る", "ル"}, {'レ', "れ", "レ"}, {'ロ', "ろ", "ロ"}, {'ワ', "わ", "ワ"}, {'ヰ', "ゐ", "イ"}, {'ヱ', "ゑ", "エ"}, {'ヲ', "を", "ヲ"}, {'ン', "ん", "ン"}, {'ガ', "が", "ガ"}, {'ギ', "ぎ", "ギ"}, {'グ', "ぐ", "グ"}, {'ゲ', "げ", "ゲ"}, {'ゴ', "ご", "ゴ"}, {'ザ', "ざ", "ザ"}, {'ジ', "じ", "ジ"}, {'ズ', "ず", "ズ"}, {'ゼ', "ぜ", "ゼ"}, {'ゾ', "ぞ", "ゾ"}, {'ダ', "だ", "ダ"}, {'ヂ', "ぢ", "ヂ"}, {'ヅ', "づ", "ヅ"}, {'デ', "で", "デ"}, {'ド', "ど", "ド"}, {'バ', "ば", "バ"}, {'ビ', "び", "ビ"}, {'ブ', "ぶ", "ブ"}, {'ベ', "べ", "ベ"}, {'ボ', "ぼ", "ボ"}, {'パ', "ぱ", "パ"}, {'ピ', "ぴ", "ピ"}, {'プ', "ぷ", "プ"}, {'ペ', "ぺ", "ペ"}, {'ポ', "ぽ", "ポ"}, {'ァ', "ぁ", "ァ"}, {'ィ', "ぃ", "ィ"}, {'ゥ', "ぅ", "ゥ"}, {'ェ', "ぇ", "ェ"}, {'ォ', "ぉ", "ォ"}, {'ッ', "っ", "ッ"}, {'ャ', "ゃ", "ャ"}, {'ュ', "ゅ", "ュ"}, {'ョ', "ょ", "ョ"}, {'ヮ', "ゎ", null}, {'ヴ', "う゛", "ヴ"}, {'ヵ', null, null}, {'ヶ', null, null}, {'。', "。", "。"}, {'「', "「", "「"}, {'」', "」", "」"}, {'、', "、", "、"}, {'・', "・", "・"}, {'ー', "ー", "ー"} }; static const KanaTableEntry[] HankakuKatakanaSubstitute = { {'ヮ', null, "ワ"}, {'ヵ', null, "カ"}, {'ヶ', null, "ケ"} }; static const string[] WideLatinTable = { " ", "!", "”", "#", "$", "%", "&", "’", "(", ")", "*", "+", ",", "−", ".", "/", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", ":", ";", "<", "=", ">", "?", "@", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "[", "\", "]", "^", "_", "‘", "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "{", "|", "}", "〜" }; static const string[] KanaRomTable = { "x", "a", "x", "i", "x", "u", "x", "e", "x", "o", "k", "g", "k", "g", "k", "g", "k", "g", "k", "g", "s", "z", "s", "z", "s", "z", "s", "z", "s", "z", "t", "d", "t", "d", "t", "t", "d", "t", "d", "t", "d", "n", "n", "n", "n", "n", "h", "b", "p", "h", "b", "p", "h", "b", "p", "h", "b", "p", "h", "b", "p", "m", "m", "m", "m", "m", "x", "y", "x", "y", "x", "y", "r", "r", "r", "r", "r", "x", "w", "x", "x", "w", "n" }; static string? get_okurigana_prefix_for_char (unichar uc) { if (uc == 'ん') { return "n"; } else if (uc < 'ぁ' || uc > 'ん') { return null; } else { return KanaRomTable[uc - 'ぁ']; } } internal static string? get_okurigana_prefix (string okurigana) { var head = okurigana.get_char (); if (head == 'っ' && okurigana != "っ") { var index = okurigana.index_of_nth_char (1); head = okurigana.get_char (index); } return get_okurigana_prefix_for_char (head); } static const string[] KanjiNumericTable = { "〇", "一", "二", "三", "四", "五", "六", "七", "八", "九" }; static const string[] DaijiNumericTable = { "零", "壱", "弐", "参", "四", "伍", "六", "七", "八", "九" }; static const string?[] KanjiNumericalPositionTable = { null, "十", "百", "千", "万", null, null, null, "億", null, null, null, "兆", null, null, null, null, "京" }; static const string?[] DaijiNumericalPositionTable = { null, "拾", "百", "阡", "萬", null, null, null, "億", null, null, null, "兆", null, null, null, null, "京" }; // katakana to hiragana static Map _HiraganaTable = new HashMap (); // hiragana or hankaku katakana (not composed) to katakana static Map _KatakanaTable = new HashMap (); // katakana to hankaku katakana static Map _HankakuKatakanaTable = new HashMap (); static Map> _CompositionTable = new HashMap> (); static Map _WideLatinToLatinTable = new HashMap (); internal static unichar get_wide_latin_char (unichar uc) { if (0x20 <= uc && uc <= 0x7E) { return WideLatinTable[uc - 32].get_char (); } return uc; } internal static string get_wide_latin (string latin) { StringBuilder builder = new StringBuilder (); int index = 0; unichar uc; while (latin.get_next_char (ref index, out uc)) { builder.append_unichar (get_wide_latin_char (uc)); } return builder.str; } internal static string get_latin (string wide_latin) { StringBuilder builder = new StringBuilder (); int index = 0; unichar uc; while (wide_latin.get_next_char (ref index, out uc)) { string str = uc.to_string (); if (_WideLatinToLatinTable.has_key (str)) { builder.append_c (_WideLatinToLatinTable.get (str)); } else { builder.append (str); } } return builder.str; } internal static string normalize (string input) { return get_latin (get_hiragana (input)); } static unichar get_katakana_char (unichar uc) { if (_KatakanaTable.has_key (uc)) { return _KatakanaTable.get (uc); } return uc; } static void foreach_katakana (string kana, Func func) { int index = 0; unichar uc0; while (kana.get_next_char (ref index, out uc0)) { if (_CompositionTable.has_key (uc0)) { var composition = _CompositionTable.get (uc0); unichar uc1; if (kana.get_next_char (ref index, out uc1)) { if (composition.has_key (uc1)) func (composition.get (uc1)); else { func (get_katakana_char (uc0)); func (get_katakana_char (uc1)); } } else { func (get_katakana_char (uc0)); break; } } else { func (get_katakana_char (uc0)); } } } internal static string get_katakana (string kana) { StringBuilder builder = new StringBuilder (); foreach_katakana (kana, (uc) => { builder.append_unichar (uc); }); return builder.str; } internal static string get_hiragana (string kana) { StringBuilder builder = new StringBuilder (); foreach_katakana (kana, (uc) => { if (_HiraganaTable.has_key (uc)) { builder.append (_HiraganaTable.get (uc)); } else { builder.append_unichar (uc); } }); return builder.str; } internal static string get_hankaku_katakana (string kana) { StringBuilder builder = new StringBuilder (); foreach_katakana (kana, (uc) => { if (_HankakuKatakanaTable.has_key (uc)) { builder.append (_HankakuKatakanaTable.get (uc)); } else { builder.append_unichar (uc); } }); return builder.str; } internal static string convert_by_kana_mode (string str, KanaMode mode) { switch (mode) { case KanaMode.HIRAGANA: return get_hiragana (str); case KanaMode.KATAKANA: return get_katakana (str); case KanaMode.HANKAKU_KATAKANA: return get_hankaku_katakana (str); case KanaMode.LATIN: return get_latin (str); case KanaMode.WIDE_LATIN: return get_wide_latin (str); default: return str; } } static string get_kanji_numeric (int numeric, string[] num_table, string[]? num_pos_table = null) { var builder = new StringBuilder (); var str = numeric.to_string (); unichar uc; if (num_pos_table == null) { for (var index = 0; str.get_next_char (ref index, out uc); ) { builder.append (num_table[uc - '0']); } return builder.str; } else { for (var index = 0; str.get_next_char (ref index, out uc); ) { if (uc > '0') { int pos_index = str.length - index; if (uc != '1' || pos_index % 4 == 0) builder.append (KanjiNumericTable[uc - '0']); var pos = num_pos_table[pos_index]; if (pos == null && pos_index % 4 > 0) { pos = num_pos_table[pos_index % 4]; } if (pos != null) builder.append (pos); } } return builder.str; } } internal static string get_numeric (int numeric, NumericConversionType type) { switch (type) { case NumericConversionType.LATIN: return numeric.to_string (); case NumericConversionType.WIDE_LATIN: return get_wide_latin (numeric.to_string ()); case NumericConversionType.KANJI_NUMERAL: return get_kanji_numeric (numeric, KanjiNumericTable); case NumericConversionType.KANJI: return get_kanji_numeric (numeric, KanjiNumericTable, KanjiNumericalPositionTable); case NumericConversionType.DAIJI: return get_kanji_numeric (numeric, DaijiNumericTable, DaijiNumericalPositionTable); case NumericConversionType.GROUPING: var str = numeric.to_string (); string[] strv = {}; var length = str.char_count (); var start = length % 3; var offset = 0; if (start > 0) { offset = str.index_of_nth_char (start); strv += str.substring (0, offset); } while (start < length) { var next_offset = str.index_of_nth_char (start + 3); strv += str.substring (offset, next_offset - offset); offset = next_offset; start += 3; } return string.joinv (",", strv); default: break; } return ""; } internal static bool is_katakana (string str) { int index = 0; unichar uc; while (str.get_next_char (ref index, out uc)) { if (uc < 0x30a0 || uc > 0x30ff) return false; } return true; } internal static bool is_hiragana (string str) { int index = 0; unichar uc; while (str.get_next_char (ref index, out uc)) { if (uc < 0x3041 || uc > 0x309f) return false; } return true; } static construct { foreach (var entry in KanaTable) { _HiraganaTable.set (entry.katakana, entry.hiragana); _HankakuKatakanaTable.set (entry.katakana, entry.hankaku_katakana); foreach (var substitute in HankakuKatakanaSubstitute) { _HankakuKatakanaTable.set (substitute.katakana, substitute.hankaku_katakana); } if (entry.hiragana != null) { if (entry.hiragana.char_count () > 1) { int index = 0; unichar uc0, uc1; entry.hiragana.get_next_char (ref index, out uc0); entry.hiragana.get_next_char (ref index, out uc1); if (!_CompositionTable.has_key (uc0)) { _CompositionTable.set ( uc0, new HashMap ()); } var composition = _CompositionTable.get (uc0); composition.set (uc1, entry.katakana); } else { _KatakanaTable.set (entry.hiragana.get_char (), entry.katakana); } } if (entry.hankaku_katakana != null) { if (entry.hankaku_katakana.char_count () > 1) { int index = 0; unichar uc0, uc1; entry.hankaku_katakana.get_next_char ( ref index, out uc0); entry.hankaku_katakana.get_next_char ( ref index, out uc1); if (!_CompositionTable.has_key (uc0)) { _CompositionTable.set ( uc0, new HashMap ()); } var composition = _CompositionTable.get (uc0); composition.set (uc1, entry.katakana); } else { var uc = entry.hankaku_katakana.get_char (); if (!_KatakanaTable.has_key (uc)) _KatakanaTable.set (uc, entry.katakana); } } } for (var i = 0; i < WideLatinTable.length; i++) { _WideLatinToLatinTable.set (WideLatinTable[i], i + 32); } } } } libkkc-0.3.5/libkkc/rom-kana.vala000066400000000000000000000507731244473050600166100ustar00rootroot00000000000000// -*- coding: utf-8 -*- /* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { struct RomKanaEntry { string rom; string carryover; string hiragana; string katakana; string hiragana_partial; string katakana_partial; public string get_kana (KanaMode mode, bool partial) { switch (mode) { case KanaMode.HIRAGANA: return partial ? hiragana_partial : hiragana; case KanaMode.KATAKANA: return partial ? katakana_partial : katakana; default: return RomKanaUtils.convert_by_kana_mode ( partial ? hiragana_partial : hiragana, mode); } } } static const string[] PUNCTUATION_RULE = {"。、", ".,", "。,", ".、"}; class RomKanaNode : Object { internal RomKanaEntry? entry; internal weak RomKanaNode parent; internal RomKanaNode children[256]; internal char c; internal uint n_children = 0; internal uint8 valid[32]; internal RomKanaNode (RomKanaEntry? entry) { this.entry = entry; for (int i = 0; i < children.length; i++) { children[i] = null; } Memory.set (valid, 0, valid.length); } internal void insert (string key, RomKanaEntry entry) { var node = this; int index = 0; unichar uc; while (key.get_next_char (ref index, out uc)) { if (node.children[uc] == null) { var child = node.children[uc] = new RomKanaNode (null); child.parent = node; } node.n_children++; node = node.children[uc]; valid[uc / 8] |= (uint8) (1 << (uc % 8)); } node.entry = entry; } #if 0 RomKanaNode? lookup_node (string key) { var node = this; for (var i = 0; i < key.length; i++) { node = node.children[key[i]]; if (node == null) return null; } return node; } internal RomKanaEntry? lookup (string key) { var node = lookup_node (key); if (node == null) return null; return node.entry; } void remove_child (RomKanaNode node) { children[node.c] = null; if (--n_children == 0 && parent != null) { parent.remove_child (this); } } internal void @remove (string key) { var node = lookup_node (key); if (node != null) { return_if_fail (node.parent != null); node.parent.remove_child (node); } } #endif } /** * Type representing kana scripts. */ public enum KanaMode { /** * Hiragana like "あいう...". */ HIRAGANA, /** * Katakana like "アイウ...". */ KATAKANA, /** * Half-width katakana like "アイウ...". */ HANKAKU_KATAKANA, /** * Half-width latin like "abc...". */ LATIN, /** * Full-width latin like "abc...". */ WIDE_LATIN } /** * Type to specify how "." and "," are converted. */ public enum PunctuationStyle { /** * Use "。" and "、" for "." and ",". */ JA_JA, /** * Use "." and "," for "." and ",". */ EN_EN, /** * Use "。" and "," for "." and ",". */ JA_EN, /** * Use "." and "、" for "." and ",". */ EN_JA } /** * Object representing a minimal unit of a transliterated character. */ public struct RomKanaCharacter { string output; string input; } /** * A list of RomKanaCharacter */ public class RomKanaCharacterList : Object { Gee.List _characters = new ArrayList (); /** * The number of characters in the character list. */ public int size { get { return _characters.size; } } /** * Append a character to the character list. * * @param character a RomKanaCharacter */ public void add (RomKanaCharacter character) { _characters.add (character); } /** * Append all characters in other character list to the character list. * * @param other RomKanaCharacterList */ public void add_all (RomKanaCharacterList other) { _characters.add_all (other._characters); } /** * Add a character to the character list at the specified * position. * * @param index index * @param character RomKanaCharacter */ public void insert (int index, RomKanaCharacter character) { _characters.insert (index, character); } /** * Add all characters in other character list to the character * list at the specified position. * * @param index index * @param other RomKanaCharacterList */ public void insert_all (int index, RomKanaCharacterList other) { _characters.insert_all (index, other._characters); } /** * Get a character at the given index. * * @param index index * * @return a RomKanaCharacter */ public new RomKanaCharacter @get (int index) { return _characters.get (index); } /** * Remove all characters from the character list. */ public void clear () { _characters.clear (); } /** * Return a slice of this character list. * * @param start_char_pos zero-based index of the begin of the slice * @param stop_char_pos zero-based index after the end of the slice * * @return a RomKanaCharacterList */ public RomKanaCharacterList slice (int start_char_pos, int stop_char_pos) { int start, stop, char_pos = 0; for (start = 0; start < _characters.size; start++) { if (char_pos >= start_char_pos) break; char_pos += _characters[start].output.char_count (); } for (stop = start; stop < _characters.size; stop++) { char_pos += _characters[stop].output.char_count (); if (char_pos >= stop_char_pos) break; } var result = new RomKanaCharacterList (); for (; start <= stop; start++) { result.add (_characters[start]); } return result; } /** * Remove a character at the given index. * * @param index index */ public void remove_at (int index) { _characters.remove_at (index); } /** * Return the concatenation of all character output as a string. * * @return a string */ public string get_output () { var builder = new StringBuilder (); foreach (var character in _characters) { builder.append (character.output); } return builder.str; } /** * Return the concatenation of all character input as a string. * * @return a string */ public string get_input () { var builder = new StringBuilder (); foreach (var character in _characters) { builder.append (character.input); } return builder.str; } } /** * Romaji-to-kana converter. */ public class RomKanaConverter : Object { RomKanaMapFile _rule; internal RomKanaMapFile rule { get { return _rule; } set { _rule = value; current_node = _rule.root_node; } } RomKanaNode current_node; /** * The current kana mode. */ public KanaMode kana_mode { get; set; default = KanaMode.HIRAGANA; } /** * The current punctuation style. */ public PunctuationStyle punctuation_style { get; set; default = PunctuationStyle.JA_JA; } /** * The current auto correct flag. */ public bool auto_correct { get; set; default = true; } StringBuilder _pending_output = new StringBuilder (); /** * The output being processed. */ public string pending_output { get { return _pending_output.str; } } StringBuilder _pending_input = new StringBuilder (); /** * The input being processed. */ public string pending_input { get { return _pending_input.str; } } RomKanaCharacterList _produced = new RomKanaCharacterList (); /** * A list of already processed characters. */ public RomKanaCharacterList produced { get { return _produced; } } /** * Return the concatenation of the produced output characters. * * @return a string */ public string get_produced_output () { var builder = new StringBuilder (); foreach (var c in _produced) { builder.append (c.output); } return builder.str; } /** * Create a new RomKanaConverter. * * @return a new RomKanaConverter */ public RomKanaConverter () { try { _rule = new RomKanaMapFile (RuleMetadata.find ("default")); current_node = _rule.root_node; } catch (RuleParseError e) { warning ("can't find default rom-kana rule: %s", e.message); assert_not_reached (); } } /** * Check if a character is a valid conversion input. * * @param uc unichar * @return `true` if uc is in a valid range, `false` otherwise */ public bool is_valid (unichar uc) { if (uc > 256) return false; uint8 mask = (uint8) (1 << (uc % 8)); return (current_node.valid[uc / 8] & mask) != 0 || (_rule.root_node.valid[uc / 8] & mask) != 0; } /** * Finish pending input, if any. * * Note that this does not reset pending input/output and the * current node if there is no partial output. * * @return `true` if there is partial output, `false` otherwise */ public bool flush_partial () { if (current_node.entry != null) { string output = current_node.entry.get_kana (kana_mode, true); if (output.length > 0) { _produced.add (RomKanaCharacter () { output = output, input = _pending_input.str }); _pending_input.erase (); _pending_output.erase (); current_node = rule.root_node; return true; } } if (!auto_correct && (_pending_output.len > 0 || _pending_input.len > 0)) { if (_pending_output.len > 0) _produced.add (RomKanaCharacter () { output = _pending_output.str, input = _pending_input.str }); else if (_pending_input.len > 0) for (var i = 0; i < _pending_input.len; i++) _produced.add (RomKanaCharacter () { output = _pending_input.str[i].to_string (), input = _pending_input.str[i].to_string () }); _pending_input.erase (); _pending_output.erase (); current_node = rule.root_node; return true; } return false; } /** * Append text to the internal buffer. * * @param text a string */ public void append_text (string text) { int index = 0; unichar c; while (text.get_next_char (ref index, out c)) { append (c); } } bool append_punctuation (unichar uc) { var index = -1; if (is_valid (uc)) { var node = current_node.children[uc]; if (node != null && node.entry != null) { if (node.entry.hiragana == "。") index = 0; else if (node.entry.hiragana == "、") index = 1; } } if (index >= 0) { if (current_node.entry != null) { _produced.add (RomKanaCharacter () { output = _pending_output.str, input = _pending_input.str }); } index = PUNCTUATION_RULE[punctuation_style].index_of_nth_char (index); unichar punctuation = PUNCTUATION_RULE[punctuation_style].get_char (index); _produced.add (RomKanaCharacter () { output = punctuation.to_string (), input = uc.to_string () }); _pending_input.erase (); _pending_output.erase (); current_node = rule.root_node; return true; } return false; } /** * Append a character to the internal buffer. * * @param uc an ASCII character * * @return `true` if the character is handled, `false` otherwise */ public bool append (unichar uc) { // Directly produce characters under Latin Kana mode. if (kana_mode == KanaMode.LATIN || kana_mode == KanaMode.WIDE_LATIN) { var input = uc.to_string (); var output = RomKanaUtils.convert_by_kana_mode (input, kana_mode); _produced.add (RomKanaCharacter () { output = output, input = input }); return true; } var child_node = current_node.children[uc]; if (child_node == null) { // No such transition path in trie. var retval = flush_partial (); if (append_punctuation (uc)) { return true; } else if (rule.root_node.children[uc] == null) { _pending_input.erase (); _pending_output.erase (); current_node = rule.root_node; return retval; } else if (current_node.entry != null) { _produced.add (RomKanaCharacter () { output = _pending_output.str, input = _pending_input.str }); _pending_input.erase (); _pending_output.erase (); current_node = rule.root_node; return append (uc); } else if (auto_correct) { // Abandon the pending input and restart lookup // from the root with uc. _pending_input.erase (); _pending_output.erase (); current_node = rule.root_node; return append (uc); } else { _produced.add (RomKanaCharacter () { output = _pending_output.str, input = _pending_input.str }); _pending_input.erase (); _pending_output.erase (); current_node = rule.root_node; return append (uc); } } else if (child_node.n_children > 0) { // Node is non-terminal. if (child_node.entry != null) { _pending_input.append_unichar (uc); _pending_output.append ( child_node.entry.get_kana (kana_mode, false)); } else { _pending_input.append_unichar (uc); _pending_output.append_unichar (uc); } current_node = child_node; return true; } else { // Node is terminal. if (append_punctuation (uc)) return true; _pending_input.append_unichar (uc); _produced.add (RomKanaCharacter () { output = child_node.entry.get_kana (kana_mode, false), input = _pending_input.str }); _pending_input.erase (); _pending_output.erase (); current_node = rule.root_node; for (int i = 0; i < child_node.entry.carryover.length; i++) { append (child_node.entry.carryover[i]); } return true; } } /** * Check if a character will be consumed by the current conversion. * * @param uc an ASCII character * @param no_carryover return false if there will be carryover * * @return `true` if the character can be consumed */ public bool can_consume (unichar uc, bool no_carryover = true) { var child_node = current_node.children[uc]; if (child_node == null) return false; if (no_carryover && child_node.entry != null && child_node.entry.carryover != "") return false; return true; } /** * Reset the internal state of the converter. */ public void reset () { _produced.clear (); _pending_input.erase (); _pending_output.erase (); current_node = rule.root_node; } /** * Delete the trailing character from the internal buffer. * * @return `true` if any character is removed, `false` otherwise */ public bool delete () { if (_pending_output.len > 0) { current_node = current_node.parent; if (current_node == null) current_node = rule.root_node; _pending_output.truncate ( _pending_output.str.index_of_nth_char ( _pending_output.str.char_count () - 1)); _pending_input.truncate ( _pending_input.str.index_of_nth_char ( _pending_input.str.char_count () - 1)); return true; } if (_produced.size > 0) { _produced.remove_at (_produced.size - 1); return true; } return false; } } } libkkc-0.3.5/libkkc/rule.vala000066400000000000000000000300071244473050600160360ustar00rootroot00000000000000/* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { class KeymapMapFile : MapFile { internal Keymap keymap; internal Keymap parent_keymap; protected override string uniquify (string key) { try { var event = new KeyEvent.from_string (key); return event.to_string (); } catch (KeyEventFormatError e) { warning ( "can't get key event from string %s: %s", key, e.message); return key; } } void load_keymap (Keymap keymap, Map map) { var iter = map.map_iterator (); while (iter.next ()) { var key = iter.get_key (); var value = iter.get_value (); try { keymap.set (new KeyEvent.from_string (key), value.get_string ()); } catch (KeyEventFormatError e) { warning ( "can't get key event from string %s: %s", key, e.message); } } } internal KeymapMapFile (RuleMetadata metadata, string mode) throws RuleParseError { base (metadata, "keymap", mode); keymap = new Keymap (); load_keymap (keymap, get ("keymap")); keymap.parent = new Keymap (); load_keymap (keymap.parent, get_parent ("keymap")); } } class RomKanaMapFile : MapFile { internal RomKanaNode root_node; void load_rom_kana (RomKanaNode node, Map map) throws RuleParseError { foreach (var key in map.keys) { var value = map.get (key); if (value.get_node_type () == Json.NodeType.ARRAY) { var components = value.get_array (); var length = components.get_length (); if (2 <= length && length <= 5) { var carryover = components.get_string_element (0); var hiragana = components.get_string_element (1); var katakana = length >= 3 ? components.get_string_element (2) : RomKanaUtils.get_katakana (hiragana); var hiragana_partial = length >= 4 ? components.get_string_element (3) : ""; var katakana_partial = length >= 5 ? components.get_string_element (4) : ""; RomKanaEntry entry = { key, carryover, hiragana, katakana, hiragana_partial, katakana_partial }; node.insert (key, entry); } else { throw new RuleParseError.FAILED ( "\"rom-kana\" must have two to four elements"); } } else { throw new RuleParseError.FAILED ( "\"rom-kana\" member must be either an array or null"); } } } public RomKanaMapFile (RuleMetadata metadata) throws RuleParseError { base (metadata, "rom-kana", "default"); root_node = new RomKanaNode (null); var parent_map = get_parent ("rom-kana"); var map = get ("rom-kana"); var iter = map.map_iterator (); while (iter.next ()) { var key = iter.get_key (); var value = iter.get_value (); if (value.get_node_type () == Json.NodeType.NULL) parent_map.unset (key); else parent_map.set (key, value); } load_rom_kana (root_node, parent_map); } } public errordomain RuleParseError { FAILED } /** * Object describing a rule. */ public class RuleMetadata : MetadataFile { /** * Name of key event filter. */ public string filter { get; construct set; } /** * Priority of the rule. */ public int priority { get; construct set; default = 0; } // Make the value type boxed to avoid unwanted ulong -> uint cast: // https://bugzilla.gnome.org/show_bug.cgi?id=660621 static Map filter_types; static Map instance_cache; static construct { filter_types = new HashMap (); instance_cache = new HashMap (); filter_types.set ("simple", typeof (SimpleKeyEventFilter)); filter_types.set ("nicola", typeof (NicolaKeyEventFilter)); filter_types.set ("kana", typeof (KanaKeyEventFilter)); } public RuleMetadata (string name, string filename) throws Error { base (name, filename); } public override bool parse (Json.Object object) throws Error { string filter = "simple"; if (object.has_member ("filter")) { filter = object.get_string_member ("filter"); if (!filter_types.has_key (filter)) throw new MetadataFormatError.INVALID_FIELD ( "unknown filter type %s", filter); } this.filter = filter; if (object.has_member ("priority")) this.priority = (int) object.get_int_member ("priority"); return true; } public KeyEventFilter create_key_event_filter () { var type = filter_types.get (filter); return (KeyEventFilter) Object.new (type); } /** * Return the path of the map file. * * @param type type of the map file * @param name name of the map file * * @return the absolute path of the map file */ public string? locate_map_file (string type, string name) { var map_filename = Path.build_filename ( Path.get_dirname (filename), type, name + ".json"); if (FileUtils.test (map_filename, FileTest.EXISTS)) return map_filename; return null; } /** * Locate a rule metadata by name. * * @param name name of the rule * * @return a RuleMetadata or `null` */ public static RuleMetadata? find (string name) { if (instance_cache.has_key (name)) return instance_cache.get (name); var dirs = Utils.build_data_path ("rules"); foreach (var dir in dirs) { var base_dir_filename = Path.build_filename (dir, name); var metadata_filename = Path.build_filename (base_dir_filename, "metadata.json"); if (FileUtils.test (metadata_filename, FileTest.EXISTS)) { try { var metadata = new RuleMetadata (name, metadata_filename); instance_cache.set (name, metadata); return metadata; } catch (Error e) { continue; } } } return null; } } /** * Object representing a typing rule. */ public class Rule : Object, Initable { /** * Metadata associated with the rule. */ public RuleMetadata metadata { get; construct set; } public KeyEventFilter filter { get; construct set; } KeymapMapFile[] keymaps; internal RomKanaMapFile rom_kana; public Keymap get_keymap (InputMode mode) { return keymaps[mode].keymap; } /** * Create a rule. * * @param metadata metadata of the rule * * @return a new Rule */ public Rule (RuleMetadata metadata) throws Error { Object (metadata: metadata); init (null); } ~Rule () { if (filter != null) { filter.reset (); filter = null; } } public bool init (GLib.Cancellable? cancellable = null) throws Error { var default_metadata = RuleMetadata.find ("default"); var enum_class = (EnumClass) typeof (InputMode).class_ref (); this.keymaps = new KeymapMapFile[enum_class.maximum + 1]; for (var i = enum_class.minimum; i <= enum_class.maximum; i++) { var enum_value = enum_class.get_value (i); if (enum_value != null) { var _metadata = metadata; if (_metadata.locate_map_file ("keymap", enum_value.value_nick) == null) _metadata = default_metadata; this.keymaps[enum_value.value] = new KeymapMapFile (_metadata, enum_value.value_nick); } } var _metadata = metadata; if (_metadata.locate_map_file ("rom-kana", "default") == null) _metadata = default_metadata; rom_kana = new RomKanaMapFile (_metadata); filter = _metadata.create_key_event_filter (); return true; } /** * List rules. * * @return an array of RuleMetadata */ public static RuleMetadata[] list () { Set names = new Gee.HashSet (); RuleMetadata[] rules = {}; var dirs = Utils.build_data_path ("rules"); foreach (var dir in dirs) { Dir handle; try { handle = Dir.open (dir); } catch (GLib.Error e) { continue; } string? name; while ((name = handle.read_name ()) != null) { if (name in names) { continue; } var metadata_filename = Path.build_filename (dir, name, "metadata.json"); if (FileUtils.test (metadata_filename, FileTest.EXISTS)) { try { var metadata = new RuleMetadata (name, metadata_filename); names.add (name); metadata.name = name; rules += metadata; } catch (Error e) { warning ("can't load metadata %s: %s", metadata_filename, e.message); } } } } return rules; } } } libkkc-0.3.5/libkkc/segment-dictionary.vala000066400000000000000000000062141244473050600206770ustar00rootroot00000000000000/* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { /** * Base interface of segment dictionaries. */ public interface SegmentDictionary : Object, Dictionary { /** * Lookup candidates in the dictionary. * * @param midasi a midasi (title) string to lookup * @param okuri whether to search okuri-ari entries or * okuri-nasi entries * @param candidates output location of candidates * * @return `true` if found, `false` otherwise */ public abstract bool lookup_candidates (string midasi, bool okuri, out Candidate[] candidates); /** * Return an array of strings which matches midasi. * * @param midasi a midasi (title) string to lookup * * @return an array of strings */ public abstract string[] complete (string midasi); /** * Select a candidate in the dictionary. * * @param candidate an Candidate * * @return `true` if the dictionary is modified, `false` otherwise. */ public virtual bool select_candidate (Candidate candidate) { // FIXME: throw an error when the dictionary is read only return false; } /** * Purge a candidate in the dictionary. * * @param candidate an Candidate * * @return `true` if the dictionary is modified, `false` otherwise. */ public virtual bool purge_candidate (Candidate candidate) { // FIXME: throw an error when the dictionary is read only return false; } } /** * Null implementation of Dictionary. */ public class EmptySegmentDictionary : Object, Dictionary, SegmentDictionary { /** * {@inheritDoc} */ public void reload () throws GLib.Error { } /** * {@inheritDoc} */ public bool lookup_candidates (string midasi, bool okuri, out Candidate[] candidates) { candidates = new Candidate[0]; return false; } /** * {@inheritDoc} */ public string[] complete (string midasi) { return new string[0]; } } } libkkc-0.3.5/libkkc/segment-list.vala000066400000000000000000000072561244473050600175140ustar00rootroot00000000000000/* * Copyright (C) 2012-2014 Daiki Ueno * Copyright (C) 2012-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { public class SegmentList : Object { Gee.List segments = new ArrayList (); Gee.List offsets = new ArrayList (); int _cursor_pos = -1; public int cursor_pos { get { return _cursor_pos; } set { _cursor_pos = value; } } public int size { get { return segments.size; } } public void clear () { segments.clear (); offsets.clear (); cursor_pos = -1; } public void add (Segment segment) { return_if_fail (offsets.size == segments.size); if (offsets.size > 0) { var last_offset = offsets[offsets.size - 1]; var last_segment = segments[segments.size - 1]; offsets.add (last_offset + last_segment.input.char_count ()); } else { offsets.add (0); } segments.add (segment); } public new Segment @get (int index) { return segments.get (index); } public int get_offset (int index) { return offsets[index]; } public void set_segments (Segment segment) { int offset = 0; segments.clear (); offsets.clear (); while (segment != null) { segments.add (new Segment (segment.input, segment.output)); offsets.add (offset); offset += segment.input.char_count (); segment = segment.next; } } public bool first_segment () { if (segments.size > 0) { cursor_pos = 0; return true; } return false; } public bool last_segment () { if (segments.size > 0) { cursor_pos = segments.size - 1; return true; } return false; } public void next_segment () { if (cursor_pos == -1) return; cursor_pos = (cursor_pos + 1).clamp (0, size - 1); } public void previous_segment () { if (cursor_pos == -1) return; cursor_pos = (cursor_pos - 1).clamp (0, size - 1); } public string get_output () { var builder = new StringBuilder (); foreach (var segment in segments) { builder.append (segment.output); } return builder.str; } public string get_input () { var builder = new StringBuilder (); foreach (var segment in segments) { builder.append (segment.input); } return builder.str; } public Segment[] to_array () { return segments.to_array (); } } } libkkc-0.3.5/libkkc/segment.vala000066400000000000000000000020671244473050600165360ustar00rootroot00000000000000/* * Copyright (C) 2012-2014 Daiki Ueno * Copyright (C) 2012-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { public class Segment : Object { public string input { get; construct set; } public string output { get; set; } public Segment? next; public Segment (string input, string output) { this.input = input; this.output = output; } } }libkkc-0.3.5/libkkc/sentence-dictionary.vala000066400000000000000000000034161244473050600210420ustar00rootroot00000000000000/* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { /** * Base interface of sentence dictionaries. */ public interface SentenceDictionary : Object, Dictionary { /** * Lookup constraint. * * @param input input string to lookup * @param constraint output location of constraint * * @return `true` if found, `false` otherwise */ public abstract bool lookup_constraint (string input, out int[] constraint); /** * Lookup phrase. * * @param input input sequence to lookup * @param phrase output location of phrase * * @return `true` if found, `false` otherwise */ public abstract bool lookup_phrase (string[] input, out string[] phrase); public virtual bool select_segments (Segment[] input) { // FIXME: throw an error when the dictionary is read only return false; } } }libkkc-0.3.5/libkkc/sorted-bigram-language-model.vala000066400000000000000000000170241244473050600225110ustar00rootroot00000000000000/* * Copyright (C) 2012-2014 Daiki Ueno * Copyright (C) 2012-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { public class SortedBigramLanguageModel : LanguageModel, UnigramLanguageModel, BigramLanguageModel { LanguageModelEntry _bos; public override LanguageModelEntry bos { get { return _bos; } } LanguageModelEntry _eos; public override LanguageModelEntry eos { get { return _eos; } } Marisa.Trie input_trie = new Marisa.Trie (); Marisa.Trie unigram_trie = new Marisa.Trie (); IndexFile unigram_index; IndexFile bigram_index; BloomFilter bigram_filter = null; public override Collection unigram_entries (string prefix) { var entries = new ArrayList (); var agent = new Marisa.Agent (); var query = prefix + "/"; agent.set_query (query.data); while (unigram_trie.predictive_search (agent)) { var key = agent.get_key (); var input_output = key.get_string ().split ("/"); var id = (uint) key.get_id (); LanguageModelEntry entry = { input_output[0], input_output[1], id }; entries.add (entry); } return entries; } public override Collection entries (string input) { var entries = new ArrayList (); var agent = new Marisa.Agent (); agent.set_query (input.data); while (input_trie.common_prefix_search (agent)) { var prefix = agent.get_key ().get_string (); entries.add_all (unigram_entries (prefix)); } return entries; } public override LanguageModelEntry? @get (string input, string output) { var agent = new Marisa.Agent (); string query; if (input != " ") query = "%s/%s".printf (input, output); else query = output; agent.set_query (query.data); if (unigram_trie.lookup (agent)) { var id = agent.get_key ().get_id (); LanguageModelEntry entry = { input, output, (uint) id }; return entry; } return null; } // Remember the last offset since bsearch_ngram takes time and // the same 2-gram pair is likely to be used in the next call. uint32 last_value = 0; uint32 last_pvalue = 0; long last_offset = 0; protected long bigram_offset (LanguageModelEntry pentry, LanguageModelEntry entry) { if (pentry.id == last_pvalue && entry.id == last_value) return last_offset; if (bigram_filter != null && !bigram_filter.contains (entry.id, pentry.id)) return -1; uint8[] buffer = new uint8[8]; uint8 *p = buffer; var value = (uint32) entry.id; Memory.copy (p, &value, sizeof(uint32)); p += 4; var pvalue = (uint32) pentry.id; Memory.copy (p, &pvalue, sizeof(uint32)); var record_size = 12; var offset = LanguageModelUtils.bsearch_ngram ( bigram_index.get_contents (), 0, (long) bigram_index.get_length () / record_size, record_size, buffer); last_value = entry.id; last_pvalue = pentry.id; last_offset = offset; return offset; } public double unigram_cost (LanguageModelEntry entry) { if (entry.id >= unigram_index.get_length ()) return 0; uint8 *p = (uint8 *) unigram_index.get_contents () + entry.id * 6; var cost = *((uint16 *) p); return LanguageModelUtils.decode_cost (cost, min_cost); } public double unigram_backoff (LanguageModelEntry entry) { if (entry.id >= unigram_index.get_length ()) return 0; uint8 *p = (uint8 *) unigram_index.get_contents () + entry.id * 6 + 2; var backoff = *((uint16 *) p); return LanguageModelUtils.decode_cost (backoff, min_cost); } public bool has_bigram (LanguageModelEntry pentry, LanguageModelEntry entry) { return bigram_offset (pentry, entry) >= 0; } public double bigram_cost (LanguageModelEntry pentry, LanguageModelEntry entry) { var offset = bigram_offset (pentry, entry); if (offset < 0) return 0; uint8 *p = (uint8 *) bigram_index.get_contents () + offset * 12 + 8; var cost = *((uint16 *) p); return LanguageModelUtils.decode_cost (cost, min_cost); } public double bigram_backoff (LanguageModelEntry pentry, LanguageModelEntry entry) { var offset = bigram_offset (pentry, entry); if (offset < 0) return 0; uint8 *p = (uint8 *) bigram_index.get_contents () + offset * 12 + 10; var backoff = *((uint16 *) p); return LanguageModelUtils.decode_cost (backoff, min_cost); } public double min_cost { get { return -8.0; } } public override bool parse () throws Error { var prefix = Path.build_filename ( Path.get_dirname (metadata.filename), "data"); var input_trie_filename = prefix + ".input"; input_trie.mmap (input_trie_filename); var unigram_trie_filename = prefix + ".1gram.index"; unigram_trie.mmap (unigram_trie_filename); if (use_mapped_index_file) { unigram_index = new MappedIndexFile (prefix + ".1gram"); bigram_index = new MappedIndexFile (prefix + ".2gram"); } else { unigram_index = new LoadedIndexFile (prefix + ".1gram"); bigram_index = new LoadedIndexFile (prefix + ".2gram"); } var bigram_filter_filename = prefix + ".2gram.filter"; try { bigram_filter = new BloomFilter (bigram_filter_filename); } catch (Error e) { warning ("can't load %s: %s", bigram_filter_filename, e.message); } _bos = get (" ", ""); _eos = get (" ", ""); return true; } public SortedBigramLanguageModel (LanguageModelMetadata metadata) throws Error { base (metadata); } } } libkkc-0.3.5/libkkc/sorted-trigram-language-model.vala000066400000000000000000000077471244473050600227300ustar00rootroot00000000000000/* * Copyright (C) 2012-2014 Daiki Ueno * Copyright (C) 2012-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { public class SortedTrigramLanguageModel : SortedBigramLanguageModel, TrigramLanguageModel { IndexFile trigram_index; BloomFilter trigram_filter = null; // Remember the last offset since bsearch_ngram takes time and // the same 2-gram pair is likely to be used in the next call. uint32 last_value = 0; uint32 last_pvalue = 0; long last_offset = 0; long trigram_offset (LanguageModelEntry ppentry, LanguageModelEntry pentry, LanguageModelEntry entry) { var c = bigram_offset (ppentry, pentry); if (c == last_pvalue && entry.id == last_value) return last_offset; if (trigram_filter != null && !trigram_filter.contains (entry.id, (uint32) c)) return -1; uint8[] buffer = new uint8[8]; uint8 *p = buffer; var value = (uint32) entry.id; Memory.copy (p, &value, sizeof(uint32)); p += 4; var pvalue = (uint32) c; Memory.copy (p, &pvalue, sizeof(uint32)); var record_size = 10; var offset = LanguageModelUtils.bsearch_ngram ( trigram_index.get_contents (), 0, (long) trigram_index.get_length () / record_size, record_size, buffer); last_value = entry.id; last_pvalue = (uint32) c; last_offset = offset; return offset; } public bool has_trigram (LanguageModelEntry ppentry, LanguageModelEntry pentry, LanguageModelEntry entry) { return trigram_offset (ppentry, pentry, entry) >= 0; } public double trigram_cost (LanguageModelEntry ppentry, LanguageModelEntry pentry, LanguageModelEntry entry) { var offset = trigram_offset (ppentry, pentry, entry); if (offset < 0) return 0; uint8 *p = (uint8 *) trigram_index.get_contents () + offset * 10 + 8; var cost = *((uint16 *) p); return LanguageModelUtils.decode_cost (cost, min_cost); } public override bool parse () throws Error { base.parse (); var prefix = Path.build_filename ( Path.get_dirname (metadata.filename), "data"); if (use_mapped_index_file) trigram_index = new MappedIndexFile (prefix + ".3gram"); else trigram_index = new LoadedIndexFile (prefix + ".3gram"); var trigram_filter_filename = prefix + ".3gram.filter"; try { trigram_filter = new BloomFilter (trigram_filter_filename); } catch (Error e) { warning ("can't load %s: %s", trigram_filter_filename, e.message); } return true; } public SortedTrigramLanguageModel (LanguageModelMetadata metadata) throws Error { base (metadata); } } } libkkc-0.3.5/libkkc/state.vala000066400000000000000000001000361244473050600162070ustar00rootroot00000000000000/* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { const double MIN_UNIGRAM_COST = -5.0; const double DECODER_MAX_DISTANCE = 2.0; const double DECODER_MIN_PATH_COST = -3.0; const int DECODER_NBEST = 20; class State : Object { internal Type handler_type; InputMode _input_mode; [CCode(notify = false)] internal InputMode input_mode { get { return _input_mode; } set { var _last_input_mode = _input_mode; _input_mode = value; if (_input_mode >= KanaMode.HIRAGANA && _input_mode <= KanaMode.WIDE_LATIN) rom_kana_converter.kana_mode = (KanaMode) _input_mode; if (_last_input_mode != _input_mode) { notify_property ("input-mode"); } } } internal void finish_input_editing () { rom_kana_converter.flush_partial (); if (input_characters_cursor_pos >= 0) input_characters.insert_all (input_characters_cursor_pos, rom_kana_converter.produced); else input_characters.add_all (rom_kana_converter.produced); rom_kana_converter.reset (); } internal void convert_segment_by_kana_mode (KanaMode mode) { int start_char_pos = segments.get_offset (segments.cursor_pos); int stop_char_pos = start_char_pos + segments[segments.cursor_pos].input.char_count (); var characters = input_characters.slice (start_char_pos, stop_char_pos); segments[segments.cursor_pos].output = convert_rom_kana_characters_by_kana_mode (characters, mode); } internal string convert_rom_kana_characters_by_kana_mode (RomKanaCharacterList characters, KanaMode mode) { update_latin_conversion_case (mode); switch (mode) { case KanaMode.HIRAGANA: case KanaMode.KATAKANA: case KanaMode.HANKAKU_KATAKANA: return RomKanaUtils.convert_by_kana_mode ( characters.get_output (), mode); case KanaMode.LATIN: case KanaMode.WIDE_LATIN: return RomKanaUtils.convert_by_kana_mode ( latin_conversion_upper ? characters.get_input ().up () : characters.get_input (), mode); } return_val_if_reached (null); } void update_latin_conversion_case (KanaMode mode) { if (mode == KanaMode.LATIN || mode == KanaMode.WIDE_LATIN) { if (last_command_key != null && this_command_key != null) { var last_command = lookup_key (last_command_key); var this_command = lookup_key (this_command_key); if (last_command == this_command) latin_conversion_upper = !latin_conversion_upper; else latin_conversion_upper = false; } else latin_conversion_upper = false; } } internal LanguageModel model; internal Decoder decoder; internal SegmentList segments; bool segments_changed = false; internal CandidateList candidates; internal DictionaryList dictionaries; internal RomKanaConverter rom_kana_converter; internal RomKanaCharacterList input_characters = new RomKanaCharacterList (); internal int input_characters_cursor_pos = -1; internal int input_cursor_pos { get { if (input_characters_cursor_pos >= 0) { var index = 0; var offset = 0; for (; index < input_characters_cursor_pos; index++) { offset += input_characters[index].output.char_count (); } // Hack for Kana typing rule: add the length of // unfinished Kana input. Suppose the following // input when moving cursor in the initial state: // // F|F|FFFFF (F = finished characters, | = cursor) // // If user types a finished character (e.g. A, I): // // FX|F|FFFFF // // On the other hand, if user types an unfinished // character (e.g. KA, CHI, which may be followed // by sonant marks): // // F|X|FFFFFF // // For consistency, move the cursor by the width // of the unfisnished character. offset += rom_kana_converter.pending_output.char_count (); return offset; } return input_characters_cursor_pos; } } internal uint input_cursor_width { get { if (input_characters_cursor_pos >= 0) return input_characters[input_characters_cursor_pos].output.char_count (); return input_characters_cursor_pos; } } internal string get_input () { if (overriding_input != null) return overriding_input; var builder = new StringBuilder (); var stop = input_characters_cursor_pos >= 0 ? input_characters_cursor_pos : input_characters.size; for (var i = 0; i < stop; i++) builder.append (input_characters[i].output); builder.append (rom_kana_converter.pending_output); for (; stop < input_characters.size; stop++) builder.append (input_characters[stop].output); return builder.str; } internal StringBuilder selection = new StringBuilder (); internal StringBuilder output = new StringBuilder (); internal bool quoted = false; internal KeyEvent? this_command_key = null; internal KeyEvent? last_command_key = null; bool latin_conversion_upper = false; internal string? overriding_input = null; ArrayList completion = new ArrayList (); internal Iterator completion_iterator; internal PunctuationStyle punctuation_style { get { return rom_kana_converter.punctuation_style; } set { rom_kana_converter.punctuation_style = value; } } internal bool auto_correct { get { return rom_kana_converter.auto_correct; } set { rom_kana_converter.auto_correct = value; } } Rule _typing_rule; internal Rule typing_rule { get { return _typing_rule; } set { _typing_rule = value; rom_kana_converter.rule = _typing_rule.rom_kana; } } internal string? lookup_key (KeyEvent key) { var keymap = _typing_rule.get_keymap (input_mode); return_val_if_fail (keymap != null, null); return keymap.lookup_key (key); } internal State (LanguageModel model, DictionaryList dictionaries) { this.model = model; this.decoder = Decoder.create (model); this.dictionaries = dictionaries; this.segments = new SegmentList (); this.candidates = new CandidateList (); this.candidates.round = true; this.candidates.notify["cursor-pos"].connect ( candidates_cursor_pos_changed); this.candidates.selected.connect ( candidates_selected); rom_kana_converter = new RomKanaConverter (); try { var metadata = RuleMetadata.find ("default"); assert (metadata != null); _typing_rule = new Rule (metadata); } catch (Error e) { warning ("cannot load default rule: %s", e.message); assert_not_reached (); } reset (); } ~State () { reset (); } void candidates_cursor_pos_changed (Object s, ParamSpec? p) { if (segments.cursor_pos >= 0 && candidates.cursor_pos >= 0) { var candidate = candidates.get (candidates.cursor_pos); if (segments[segments.cursor_pos].output != candidate.output) { segments[segments.cursor_pos].output = candidate.output; segments_changed = true; } } } void candidates_selected (Candidate candidate) { dictionaries.call ( typeof (SegmentDictionary), (dictionary) => { var segment_dict = dictionary as SegmentDictionary; segment_dict.select_candidate (candidate); return DictionaryCallbackReturn.CONTINUE; }); } void select_sentence_for_dictionary (Dictionary dictionary, Gee.List prefixes) { var sentence_dict = dictionary as SentenceDictionary; foreach (var prefix in prefixes) { var _segments = segments.to_array (); var stop = prefix.offset + prefix.sequence.length; _segments = _segments[prefix.offset:stop]; sentence_dict.select_segments (_segments); } } internal void select_sentence () { if (!segments_changed) return; string[] sequence = new string[segments.size]; for (var i = 0; i < sequence.length; i++) { sequence[i] = segments[i].input; } var prefixes = SequenceUtils.enumerate_prefixes ( sequence, int.min (2, segments.size), int.min (5, segments.size)); dictionaries.call (typeof (SentenceDictionary), (dictionary) => { select_sentence_for_dictionary (dictionary, prefixes); return DictionaryCallbackReturn.CONTINUE; }); } internal void reset () { // output and input_mode won't change handler_type = typeof (InitialStateHandler); rom_kana_converter.reset (); _typing_rule.filter.reset (); segments.clear (); segments_changed = false; candidates.clear (); input_characters.clear (); input_characters_cursor_pos = -1; overriding_input = null; completion_iterator = null; completion.clear (); quoted = false; latin_conversion_upper = false; } string? lookup_single_for_dictionary (Dictionary dictionary, string input) { var segment_dict = dictionary as SegmentDictionary; Candidate[] _candidates; Template template; template = new SimpleTemplate (input); if (segment_dict.lookup_candidates (template.source, template.okuri, out _candidates)) { return template.expand (_candidates[0].text); } template = new OkuriganaTemplate (input); if (segment_dict.lookup_candidates (template.source, template.okuri, out _candidates)) { return template.expand (_candidates[0].text); } return null; } internal string? lookup_single (string input) { var normalized_input = RomKanaUtils.normalize (input); string? result = null; dictionaries.call (typeof (SegmentDictionary), (dictionary) => { if (!(dictionary is UserDictionary)) return DictionaryCallbackReturn.CONTINUE; result = lookup_single_for_dictionary ( dictionary, normalized_input); if (result != null) return DictionaryCallbackReturn.REMOVE; return DictionaryCallbackReturn.CONTINUE; }); if (result != null) return result; if (normalized_input.char_count () > 1) { var entries = model.unigram_entries (normalized_input); foreach (var entry in entries) { if (entry.output != normalized_input && ((UnigramLanguageModel) model).unigram_cost (entry) > MIN_UNIGRAM_COST) return entry.output; } } dictionaries.call (typeof (SegmentDictionary), (dictionary) => { result = lookup_single_for_dictionary ( dictionary, normalized_input); if (result != null) return DictionaryCallbackReturn.REMOVE; return DictionaryCallbackReturn.CONTINUE; }); return result; } internal void lookup (Segment segment) { candidates.clear (); var normalized_input = RomKanaUtils.normalize (segment.input); var original = new Candidate ( normalized_input, false, segment.output); candidates.add (original); // 1. Look up candidates from user segment dictionaries. lookup_template (new NumericTemplate (normalized_input), true); lookup_template (new SimpleTemplate (normalized_input), true); lookup_template (new OkuriganaTemplate (normalized_input), true); // 2. Look up the most frequently used unigram from language model. if (normalized_input.char_count () > 1) { var entries = model.unigram_entries (normalized_input); foreach (var entry in entries) { if (((UnigramLanguageModel) model).unigram_cost (entry) > MIN_UNIGRAM_COST) { var unigram = new Candidate ( normalized_input, false, entry.output); candidates.add (unigram); break; } } } // 3. Look up candidates from system segment dictionaries. lookup_template (new NumericTemplate (normalized_input), false); lookup_template (new SimpleTemplate (normalized_input), false); lookup_template (new OkuriganaTemplate (normalized_input), false); // 4. Do sentence conversion with N-best search. // 4.1. Create Kana candidates to be excluded. var kana_candidates = new CandidateList (); var enum_class = (EnumClass) typeof (KanaMode).class_ref (); for (int i = enum_class.minimum; i <= enum_class.maximum; i++) { var enum_value = enum_class.get_value (i); if (enum_value != null) { var output = RomKanaUtils.convert_by_kana_mode ( normalized_input, (KanaMode) enum_value.value); if (output != original.output) { var candidate = new Candidate (normalized_input, false, output); kana_candidates.add (candidate); } } } // 4.2. Do sentence lookup, excluding Kana candidates. var _segments = decoder.decode_with_costs (normalized_input, DECODER_NBEST, new int[0], DECODER_MAX_DISTANCE, DECODER_MIN_PATH_COST); foreach (var _segment in _segments) { var builder = new StringBuilder (); while (_segment != null) { builder.append (_segment.output); _segment = _segment.next; } var sentence = new Candidate ( normalized_input, false, builder.str); if (!kana_candidates.contains (sentence)) candidates.add (sentence); } // 4.3. Add Kana candidates at the end. candidates.add_all (kana_candidates); candidates.populated (); } void lookup_template_for_dictionary (Dictionary dictionary, Template template) { var segment_dict = dictionary as SegmentDictionary; Candidate[] _candidates; if (segment_dict.lookup_candidates (template.source, template.okuri, out _candidates)) { foreach (var candidate in _candidates) { var text = Expression.eval (candidate.text); candidate.output = template.expand (text); // Annotation may also be an expression. if (candidate.annotation != null) { candidate.annotation = Expression.eval ( candidate.annotation); } candidates.add (candidate); } } } void lookup_template (Template template, bool user) { dictionaries.call (typeof (SegmentDictionary), (dictionary) => { if (user && !(dictionary is UserDictionary)) return DictionaryCallbackReturn.CONTINUE; lookup_template_for_dictionary (dictionary, template); return DictionaryCallbackReturn.CONTINUE; }); } void merge_possible_okurigana_segments (int start) { var _segments = new ArrayList (); foreach (var segment in segments) { _segments.add (segment); } segments.clear (); var index = 0; var offset = 0; for (; index < _segments.size && offset < start; index++) { offset += _segments[index].output.char_count (); segments.add (_segments[index]); } Segment? previous = null; for (; index < _segments.size; index++) { if (previous != null) { if (RomKanaUtils.is_hiragana (_segments[index].output)) { previous.input += _segments[index].input; previous.output += _segments[index].output; } else { segments.add (previous); previous = _segments[index]; } } else { previous = _segments[index]; } } if (previous != null) segments.add (previous); } internal void convert_sentence (string input, int[]? constraint = null) { var normalized_input = RomKanaUtils.normalize (input); var _segments = decoder.decode (normalized_input, 1, constraint ?? new int[0]); segments.set_segments (_segments[0]); if (constraint == null) { apply_constraint (input); } apply_phrase (); merge_possible_okurigana_segments ( constraint == null ? 0 : constraint[constraint.length - 1]); } void apply_constraint_for_dictionary (Dictionary dictionary, string input) { var sentence_dict = dictionary as SentenceDictionary; var sequence = Utils.split_utf8 (input); var prefixes = SequenceUtils.enumerate_prefixes ( sequence, int.min (4, sequence.length), sequence.length); var next_offset = 0; var next_constraint_index = 0; var constraint = new ArrayList (); foreach (var prefix in prefixes) { if (prefix.offset < next_offset) continue; int[] _constraint; var _input = string.joinv ("", prefix.sequence); if (sentence_dict.lookup_constraint (_input, out _constraint)) { assert (_constraint.length > 0); var constraint_index = 0; if (constraint.size > 0) { var last_offset = constraint.get (constraint.size - 1); if (last_offset < _constraint[0] + prefix.offset) { // Fill the gap between the last offset and // the beginning of the constraint. var _offset = 0; for (var i = 0; i < segments.size; i++) { _offset += segments[i].input.char_count (); if (last_offset < _offset && _offset < _constraint[0] + prefix.offset) { constraint.add (_offset); } } next_constraint_index = constraint.size; } else { // Make sure that the found constraint matches // the current constraint. bool found_overlap = false; for (var i = next_constraint_index; i < constraint.size; i++) { if (constraint[i] != _constraint[i - next_constraint_index] + prefix.offset) { found_overlap = true; break; } constraint_index++; } if (found_overlap) continue; next_constraint_index++; } } else if (prefix.offset > 0) { // Fill the gap between the first segment and // the beginning of the constraint. var _offset = 0; for (var i = 0; i < segments.size; i++) { _offset += segments[i].input.char_count (); if (_offset < _constraint[0] + prefix.offset) { constraint.add (_offset); } } next_constraint_index = constraint.size; } for (var i = constraint_index; i < _constraint.length; i++) constraint.add (_constraint[i] + prefix.offset); next_offset = _constraint[0] + prefix.offset; } } var _segments = decoder.decode (input, 1, constraint.to_array ()); #if DEBUG print ("constraint: "); for (var i = 0; i < constraint.size; i++) { print ("%d ", constraint[i]); } print ("\n"); #endif segments.set_segments (_segments[0]); } void apply_constraint (string input) { dictionaries.call (typeof (SentenceDictionary), (dictionary) => { apply_constraint_for_dictionary (dictionary, input); return DictionaryCallbackReturn.CONTINUE; }); } void apply_phrase_for_dictionary (Dictionary dictionary) { var sentence_dict = dictionary as SentenceDictionary; string[] sequence = new string[segments.size]; for (var i = 0; i < segments.size; i++) { sequence[i] = segments[i].input; } var prefixes = SequenceUtils.enumerate_prefixes ( sequence, int.min (2, sequence.length), int.min (5, sequence.length)); var offset = 0; foreach (var prefix in prefixes) { if (prefix.offset < offset) continue; string[] _value; if (sentence_dict.lookup_phrase (prefix.sequence, out _value)) { for (var i = 0; i < _value.length; i++) { segments[prefix.offset + i].output = _value[i]; } offset += _value.length; } } } void apply_phrase () { dictionaries.call (typeof (SentenceDictionary), (dictionary) => { apply_phrase_for_dictionary (dictionary); return DictionaryCallbackReturn.CONTINUE; }); } internal void resize_segment (int amount) { if (segments.cursor_pos >= 0 && segments.cursor_pos < segments.size) { // Can't expand the last segment. if (amount > 0 && segments.cursor_pos > segments.size - 1) return; // Can't shrink the segment to zero-length. int segment_size = segments[segments.cursor_pos].input.char_count () + amount; if (segment_size <= 0) return; int[] constraint = {}; int offset = 0; for (var i = 0; i < segments.cursor_pos; i++) { offset += segments[i].input.char_count (); constraint += offset; } offset += segment_size; constraint += offset; string[] output = new string[segments.cursor_pos]; for (var i = 0; i < output.length; i++) output[i] = segments[i].output; int cursor_pos = segments.cursor_pos; convert_sentence (segments.get_input (), constraint); apply_phrase (); segments.cursor_pos = cursor_pos; for (var i = 0; i < output.length; i++) segments[i].output = output[i]; segments_changed = true; } } internal void purge_candidate (Candidate candidate) { dictionaries.call (typeof (SegmentDictionary), (dictionary) => { var segment_dict = dictionary as SegmentDictionary; segment_dict.purge_candidate (candidate); return DictionaryCallbackReturn.CONTINUE; }); } internal void completion_start (string input) { completion.clear (); dictionaries.call (typeof (SegmentDictionary), (dictionary) => { var segment_dict = dictionary as SegmentDictionary; string[] _completion = segment_dict.complete (input); foreach (var word in _completion) { completion.add (word); } return DictionaryCallbackReturn.CONTINUE; }); completion.sort (); completion_iterator = completion.iterator (); if (!completion_iterator.next ()) { completion_iterator = null; } } public signal void request_selection_text (); } interface CommandHandler : Object { public abstract bool call (string? command, State state, KeyEvent key); } delegate bool CommandCallback (string? command, State state, KeyEvent key); class CallbackCommandHandler : CommandHandler, Object { unowned CommandCallback cb; public CallbackCommandHandler (CommandCallback cb) { this.cb = cb; } public bool call (string? command, State state, KeyEvent key) { return this.cb (command, state, key); } } abstract class StateHandler : Object { Map command_handlers = new HashMap (); CommandHandler? default_command_handler = null; public void register_command_handler (string? command, CommandHandler handler) { if (command != null) command_handlers.set (command, handler); else default_command_handler = handler; } public void register_command_callback (string? command, CommandCallback cb) { register_command_handler (command, new CallbackCommandHandler (cb)); } public bool dispatch_command (State state, KeyEvent key) { var command = state.lookup_key (key); if (command != null && command_handlers.has_key (command)) return command_handlers.get (command).call (command, state, key); return default_command_handler.call (command, state, key); } public abstract bool process_key_event (State state, KeyEvent key); } } libkkc-0.3.5/libkkc/system-segment-dictionary.vala000066400000000000000000000305621244473050600222240ustar00rootroot00000000000000/* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { /** * Read-only file based implementation of Dictionary. */ public class SystemSegmentDictionary : Object, Dictionary, SegmentDictionary { // Read a line near offset and move offset to the beginning of // the line. string read_line (ref long offset) { return_val_if_fail (offset < mmap.get_length (), null); char *p = ((char *)mmap.get_contents () + offset); for (; offset > 0; offset--, p--) { if (*p == '\n') break; } if (offset > 0) { offset++; p++; } var builder = new StringBuilder (); long _offset = offset; for (; _offset < mmap.get_length (); _offset++, p++) { if (*p == '\n') break; builder.append_c (*p); } return builder.str; } // can only called after read*_line string? read_previous_line (ref long pos, string line) { if (pos < 2) { return null; } // place the cursor at the end of the previous line pos -= 2; return read_line (ref pos); } // can only called after read*_line string? read_next_line (ref long pos, string line) { if (pos + line.length + 1 >= mmap.get_length ()) { return null; } // place the cursor at "\n" of the current line pos += line.length + 1; return read_line (ref pos); } // Skip until the first occurrence of line. This moves offset // at the beginning of the next line. bool read_until (ref long offset, string line) { return_val_if_fail (offset < mmap.get_length (), null); while (offset + line.length < mmap.get_length ()) { char *p = ((char *)mmap.get_contents () + offset); if (*p == '\n' && Memory.cmp (p + 1, (void *)line, line.length) == 0) { offset += line.length; return true; } offset++; } return false; } void load () throws Error { this.mmap = new MappedFile (this.file.get_path (), false); long offset = 0; var line = read_line (ref offset); if (line == null) { throw new DictionaryError.MALFORMED_INPUT ( "can't read the first line"); } var coding = EncodingConverter.extract_coding_system (line); if (coding != null) { try { var _converter = new EncodingConverter.from_coding_system ( coding); if (_converter != null) { converter = _converter; } } catch (GLib.Error e) { warning ("can't create converter from coding system %s: %s", coding, e.message); } } if (line == ";; okuri-ari entries.") offset = 0; else if (!read_until (ref offset, ";; okuri-ari entries.\n")) throw new DictionaryError.MALFORMED_INPUT ( "no okuri-ari boundary"); okuri_ari_offset = offset; if (!read_until (ref offset, ";; okuri-nasi entries.\n")) { throw new DictionaryError.MALFORMED_INPUT ( "no okuri-nasi boundary"); } okuri_nasi_offset = offset; } /** * {@inheritDoc} */ public void reload () throws GLib.Error { string attributes = FileAttribute.ETAG_VALUE; FileInfo info = file.query_info (attributes, FileQueryInfoFlags.NONE); if (info.get_etag () != etag) { load (); etag = info.get_etag (); } } bool search_pos (string midasi, long start_offset, long end_offset, CompareFunc cmp, out long pos, out string? line, int direction) { long offset = start_offset + (end_offset - start_offset) / 2; while (start_offset <= end_offset) { assert (offset < mmap.get_length ()); string _line = read_line (ref offset); int index = _line.index_of (" "); if (index < 1) { warning ("corrupted dictionary entry: %s", _line); break; } int r = cmp (_line[0:index], midasi); if (r == 0) { pos = offset; line = _line; return true; } if (r * direction > 0) { end_offset = offset - 2; } else { start_offset = offset + _line.length + 1; } offset = start_offset + (end_offset - start_offset) / 2; } pos = -1; line = null; return false; } /** * {@inheritDoc} */ public bool lookup_candidates (string midasi, bool okuri, out Candidate[] candidates) { if (mmap.get_contents () == null) { candidates = new Candidate[0]; return false; } long start_offset, end_offset; if (okuri) { start_offset = okuri_ari_offset; end_offset = okuri_nasi_offset; } else { start_offset = okuri_nasi_offset; end_offset = (long) mmap.get_length () - 1; } string _midasi; try { _midasi = converter.encode (midasi); } catch (GLib.Error e) { warning ("can't encode %s: %s", midasi, e.message); candidates = new Candidate[0]; return false; } long pos; string line; if (search_pos (_midasi, start_offset, end_offset, strcmp, out pos, out line, okuri ? -1 : 1)) { int index = line.index_of (" "); string _line; if (index > 0) { try { _line = converter.decode (line[index:line.length]); } catch (GLib.Error e) { warning ("can't decode line %s: %s", line, e.message); candidates = new Candidate[0]; return false; } candidates = DictionaryUtils.split_candidates (midasi, okuri, _line); return true; } } candidates = new Candidate[0]; return false; } static int strcmp_prefix (string a, string b) { if (a.has_prefix (b)) return 0; return strcmp (a, b); } /** * {@inheritDoc} */ public string[] complete (string midasi) { if (mmap.get_contents () == null) return new string[0]; var completion = new ArrayList (); long start_offset, end_offset; start_offset = okuri_nasi_offset; end_offset = (long) mmap.get_length () - 1; string _midasi; try { _midasi = converter.encode (midasi); } catch (GLib.Error e) { warning ("can't decode %s: %s", midasi, e.message); return completion.to_array (); } long pos; string line; if (search_pos (_midasi, start_offset, end_offset, strcmp_prefix, out pos, out line, 1)) { long _pos = pos; string _line = line; // search backward do { int index = line.index_of (" "); if (index < 0) { warning ("corrupted dictionary entry: %s", line); } else { var completed = line[0:index]; // don't add midasi word itself nor prefix word if (completed != _midasi && !completed.has_suffix (">")) { try { string decoded = converter.decode (completed); completion.insert (0, decoded); } catch (GLib.Error e) { warning ("can't decode line %s: %s", line, e.message); } } } } while ((line = read_previous_line (ref pos, line)) != null && line.has_prefix (_midasi)); // search forward pos = _pos; line = _line; while ((line = read_next_line (ref pos, line)) != null && line.has_prefix (_midasi)) { int index = line.index_of (" "); if (index < 0) { warning ("corrupted dictionary entry: %s", line); } else { var completed = line[0:index]; // don't add midasi word itself nor prefix word if (completed != _midasi && !completed.has_suffix (">")) { try { string decoded = converter.decode (completed); completion.add (decoded); } catch (GLib.Error e) { warning ("can't decode line %s: %s", line, e.message); } } } } } return completion.to_array (); } File file; MappedFile mmap; string etag; EncodingConverter converter; long okuri_ari_offset; long okuri_nasi_offset; /** * Create a new SystemSegmentDictionary. * * @param path a path to the file * @param encoding encoding of the file (default EUC-JP) * * @return a new FileDictionary * @throws GLib.Error if opening the file is failed */ public SystemSegmentDictionary (string path, string encoding = "EUC-JP") throws GLib.Error { this.file = File.new_for_path (path); this.etag = ""; this.converter = new EncodingConverter (encoding); load (); } } } libkkc-0.3.5/libkkc/template.vala000066400000000000000000000044041244473050600167040ustar00rootroot00000000000000/* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ namespace Kkc { internal interface Template : Object { public abstract string source { get; construct set; } public abstract bool okuri { get; construct set; } public abstract string expand (string text); } class SimpleTemplate : Object, Template { public string source { get; construct set; } public bool okuri { get; construct set; } public SimpleTemplate (string source) { this.source = source; this.okuri = false; } public string expand (string text) { return text; } } class OkuriganaTemplate : Object, Template { public string source { get; construct set; } public bool okuri { get; construct set; } string? okurigana = null; public OkuriganaTemplate (string source) { var count = source.char_count (); if (count > 1) { var last_char_index = source.index_of_nth_char (count - 1); this.okurigana = source[last_char_index:source.length]; string? prefix = RomKanaUtils.get_okurigana_prefix ( this.okurigana); this.source = source[0:last_char_index] + prefix; this.okuri = true; } else { this.source = source; this.okuri = false; } } public string expand (string text) { if (okuri) { return text + okurigana; } return text; } } }libkkc-0.3.5/libkkc/text-bigram-language-model.vala000066400000000000000000000153101244473050600221710ustar00rootroot00000000000000/* * Copyright (C) 2012-2014 Daiki Ueno * Copyright (C) 2012-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { public class TextBigramLanguageModel : LanguageModel, UnigramLanguageModel, BigramLanguageModel { LanguageModelEntry _bos; public override LanguageModelEntry bos { get { return _bos; } } LanguageModelEntry _eos; public override LanguageModelEntry eos { get { return _eos; } } protected Gee.Map> input_map = new HashMap> (); protected Gee.Map cost_map = new HashMap (); protected Gee.Map backoff_map = new HashMap (); protected Gee.Map id_map = new HashMap (); public override Collection unigram_entries (string input) { return input_map.get (input); } public override Collection entries (string input) { var entries = new ArrayList (); for (var i = 1; i < input.char_count () + 1; i++) { long byte_offset = input.index_of_nth_char (i); var str = input.substring (0, byte_offset); if (input_map.has_key (str)) entries.add_all (input_map.get (str)); } return (Collection) entries; } public override LanguageModelEntry? @get (string input, string output) { return null; } protected string get_key (uint[] ids) { var builder = new StringBuilder (); foreach (var id in ids) { builder.append_printf ("%08X", id); } return builder.str; } public bool has_bigram (LanguageModelEntry pentry, LanguageModelEntry entry) { var key = get_key (new uint[] { pentry.id, entry.id }); return cost_map.has_key ((string) key); } public double unigram_cost (LanguageModelEntry entry) { var key = get_key (new uint[] { entry.id }); if (cost_map.has_key (key)) return cost_map.get (key); return 0; } public double unigram_backoff (LanguageModelEntry entry) { var key = get_key (new uint[] { entry.id }); if (backoff_map.has_key (key)) return backoff_map.get (key); return 0; } public double bigram_cost (LanguageModelEntry pentry, LanguageModelEntry entry) { var key = get_key (new uint[] { pentry.id, entry.id }); if (cost_map.has_key (key)) return cost_map.get (key); return 0; } public double bigram_backoff (LanguageModelEntry pentry, LanguageModelEntry entry) { var key = get_key (new uint[] { pentry.id, entry.id }); if (backoff_map.has_key (key)) return backoff_map.get (key); return 0; } protected void parse_lm (string input) throws GLib.Error { var lm_file = File.new_for_path (input); var lm_data = new DataInputStream (lm_file.read ()); while (true) { size_t length; var line = lm_data.read_line (out length); if (line == null) break; line = line.strip (); if (line == "") continue; if (line.has_prefix ("\\1-grams:")) break; } uint id = 0; while (true) { size_t length; var line = lm_data.read_line (out length); if (line == null) break; line = line.strip (); if (line == "" || line.has_prefix ("\\")) continue; var strv = line.split ("\t"); if (!strv[1].contains (" ")) { id_map.set (strv[1], id); string[] input_output; if (strv[1] == "" || strv[1] == "" || strv[1] == "") { input_output = new string[] { " ", strv[1] }; } else { input_output = strv[1].split("/"); } LanguageModelEntry entry = { input_output[0], input_output[1], id++ }; if (strv[1] == "") { _bos = entry; } else if (strv[1] == "") { _eos = entry; } if (!input_map.has_key (input_output[0])) input_map.set (input_output[0], new ArrayList ()); input_map.get (input_output[0]).add (entry); } double cost = double.parse (strv[0]); double backoff = 0.0; if (strv.length > 2) backoff = double.parse (strv[2]); var words = strv[1].split (" "); uint[] ids = {}; foreach (var word in words) { ids += id_map.get (word); } string key = get_key (ids); cost_map.set (key, cost); backoff_map.set (key, backoff); } } public override bool parse () throws Error { var prefix = Path.build_filename ( Path.get_dirname (metadata.filename), "data"); parse_lm (prefix + ".arpa"); return true; } public TextBigramLanguageModel (LanguageModelMetadata metadata) throws Error { base (metadata); } } } libkkc-0.3.5/libkkc/text-trigram-language-model.vala000066400000000000000000000035761244473050600224100ustar00rootroot00000000000000/* * Copyright (C) 2012-2014 Daiki Ueno * Copyright (C) 2012-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { public class TextTrigramLanguageModel : TextBigramLanguageModel, TrigramLanguageModel { public bool has_trigram (LanguageModelEntry ppentry, LanguageModelEntry pentry, LanguageModelEntry entry) { string key = get_key (new uint[] { ppentry.id, pentry.id, entry.id }); return cost_map.has_key (key); } public double trigram_cost (LanguageModelEntry ppentry, LanguageModelEntry pentry, LanguageModelEntry entry) { string key = get_key (new uint[] { ppentry.id, pentry.id, entry.id }); if (cost_map.has_key (key)) return cost_map.get (key); return 0; } public TextTrigramLanguageModel (LanguageModelMetadata metadata) throws Error { base (metadata); } } } libkkc-0.3.5/libkkc/trellis-node.vala000066400000000000000000000107731244473050600175000ustar00rootroot00000000000000/* * Copyright (C) 2012-2014 Daiki Ueno * Copyright (C) 2012-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { public abstract class TrellisNode { public abstract uint endpos { get; } public abstract uint length { get; } public abstract string input { get; } public abstract string output { get; } public TrellisNode? previous; public double cumulative_cost; public abstract string to_string (); public abstract LanguageModelEntry[] entries { get; } } public class UnigramTrellisNode : TrellisNode { LanguageModelEntry _entry; public LanguageModelEntry entry { get { return _entry; } } public override string input { get { return _entry.input; } } public override string output { get { return _entry.output; } } uint _endpos; public override uint endpos { get { return _endpos; } } public override uint length { get { return _entry.input.char_count (); } } public UnigramTrellisNode (LanguageModelEntry entry, uint endpos) { _entry = entry; _endpos = endpos; _entries = new LanguageModelEntry[] { _entry }; } public override string to_string () { return "<%s/%s>".printf (_entry.input, _entry.output); } LanguageModelEntry[] _entries; public override LanguageModelEntry[] entries { get { return _entries; } } } public class BigramTrellisNode : TrellisNode { UnigramTrellisNode _left_node; public UnigramTrellisNode left_node { get { return _left_node; } } UnigramTrellisNode _right_node; public UnigramTrellisNode right_node { get { return _right_node; } } string _input; public override string input { get { return _input; } } string _output; public override string output { get { return _output; } } uint _endpos; public override uint endpos { get { return _endpos; } } public override uint length { get { return input.char_count (); } } public BigramTrellisNode (UnigramTrellisNode left_node, UnigramTrellisNode right_node, uint endpos) { _left_node = left_node; _right_node = right_node; _endpos = endpos; if (_endpos < _right_node.endpos) { _input = _left_node.entry.input; _output = _left_node.entry.output; } else { _input = _left_node.entry.input + _right_node.entry.input; _output = _left_node.entry.output + _right_node.entry.output; } _entries = new LanguageModelEntry[] { left_node.entry, right_node.entry }; } public override string to_string () { return "<%s/%s><%s/%s>".printf (_left_node.entry.input, _left_node.entry.output, _right_node.entry.input, _right_node.entry.output); } LanguageModelEntry[] _entries; public override LanguageModelEntry[] entries { get { return _entries; } } } } libkkc-0.3.5/libkkc/trigram-decoder.vala000066400000000000000000000242361244473050600201460ustar00rootroot00000000000000/* * Copyright (C) 2012-2014 Daiki Ueno * Copyright (C) 2012-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { abstract class PathCostFunc { public abstract double path_cost (TrigramLanguageModel model, TrellisNode pnode, TrellisNode node); } class UnigramToUnigramPathCostFunc : PathCostFunc { public override double path_cost (TrigramLanguageModel model, TrellisNode pnode, TrellisNode node) { assert (pnode is UnigramTrellisNode); assert (node is UnigramTrellisNode); UnigramTrellisNode upnode = (UnigramTrellisNode) pnode; UnigramTrellisNode unode = (UnigramTrellisNode) node; double cost = 0.0; if (upnode.entry == model.bos) { cost = model.bigram_backoff_cost (upnode.entry, unode.entry); } else if (upnode.previous != null) { if (upnode.previous is UnigramTrellisNode) { cost = model.trigram_backoff_cost ( ((UnigramTrellisNode) upnode.previous).entry, upnode.entry, unode.entry); } else { cost = model.trigram_backoff_cost ( ((BigramTrellisNode) upnode.previous).right_node.entry, upnode.entry, unode.entry); } } return cost; } } class UnigramToBigramPathCostFunc : PathCostFunc { public override double path_cost (TrigramLanguageModel model, TrellisNode pnode, TrellisNode node) { assert (pnode is UnigramTrellisNode); assert (node is BigramTrellisNode); UnigramTrellisNode upnode = (UnigramTrellisNode) pnode; BigramTrellisNode bnode = (BigramTrellisNode) node; double cost = 0.0; if (upnode.entry == model.bos) { cost += model.bigram_backoff_cost ( upnode.entry, bnode.left_node.entry); } cost += model.trigram_backoff_cost ( upnode.entry, bnode.left_node.entry, bnode.right_node.entry); if (upnode.previous != null) { if (upnode.previous is UnigramTrellisNode) { cost += model.trigram_backoff_cost ( ((UnigramTrellisNode) upnode.previous).entry, upnode.entry, bnode.left_node.entry); } else { cost += model.trigram_backoff_cost ( ((BigramTrellisNode) upnode.previous).right_node.entry, upnode.entry, bnode.left_node.entry); } } return cost; } } class BigramToUnigramPathCostFunc : PathCostFunc { public override double path_cost (TrigramLanguageModel model, TrellisNode pnode, TrellisNode node) { assert (pnode is BigramTrellisNode); assert (node is UnigramTrellisNode); BigramTrellisNode bpnode = (BigramTrellisNode) pnode; UnigramTrellisNode unode = (UnigramTrellisNode) node; double cost = 0.0; if (bpnode.left_node.entry == model.bos) { cost += model.bigram_backoff_cost ( bpnode.left_node.entry, bpnode.right_node.entry); } cost += model.trigram_backoff_cost ( bpnode.left_node.entry, bpnode.right_node.entry, unode.entry); return cost; } } class BigramToBigramPathCostFunc : PathCostFunc { public override double path_cost (TrigramLanguageModel model, TrellisNode pnode, TrellisNode node) { assert (pnode is BigramTrellisNode); assert (node is BigramTrellisNode); BigramTrellisNode bpnode = (BigramTrellisNode) pnode; BigramTrellisNode bnode = (BigramTrellisNode) node; double cost = 0.0; if (bpnode.left_node.entry == model.bos) { cost += model.bigram_backoff_cost ( bpnode.left_node.entry, bpnode.right_node.entry); } cost += model.trigram_backoff_cost ( bpnode.left_node.entry, bpnode.right_node.entry, bnode.left_node.entry); cost += model.trigram_backoff_cost ( bpnode.right_node.entry, bnode.left_node.entry, bnode.right_node.entry); return cost; } } public class TrigramDecoder : BigramDecoder { public override Segment[] decode (string input, int nbest, int[] constraint) { return decode_with_costs (input, nbest, constraint, double.MAX, -double.MAX); } public override Segment[] decode_with_costs (string input, int nbest, int[] constraint, double max_distance, double min_path_cost) { var trellis = build_trellis (input, constraint); add_trigram_nodes (trellis); add_unknown_nodes (trellis, input, constraint); forward_search (trellis, input); return backward_search (trellis, nbest, max_distance, min_path_cost); } void add_trigram_nodes (ArrayList[] trellis) { var trigram_trellis = new ArrayList[trellis.length]; for (var i = 0; i < trigram_trellis.length; i++) { trigram_trellis[i] = new ArrayList (); } var overlapped_nodes = new Gee.HashSet[trellis.length]; for (var i = 0; i < overlapped_nodes.length; i++) { overlapped_nodes[i] = new Gee.HashSet (); } for (var i = 1; i < trellis.length; i++) { foreach (var node in trellis[i]) { var unode = node as UnigramTrellisNode; int j = i - (int) node.length; foreach (var pnode in trellis[j]) { var upnode = pnode as UnigramTrellisNode; if (!model.has_bigram (upnode.entry, unode.entry)) continue; int k = j - (int) pnode.length; if (k < 0) continue; foreach (var ppnode in trellis[k]) { var uppnode = ppnode as UnigramTrellisNode; if (!overlapped_nodes[k].contains (uppnode) && ((TrigramLanguageModel)model).has_trigram (uppnode.entry, upnode.entry, unode.entry)) { var bigram_node = new BigramTrellisNode ( uppnode, upnode, j); trigram_trellis[j].add (bigram_node); overlapped_nodes[j].add (upnode); } } } } } for (var i = 0; i < trellis.length; i++) { trellis[i].add_all (trigram_trellis[i]); } } int path_to_func_index (TrellisNode pnode, TrellisNode node) { var pnode_index = (pnode is UnigramTrellisNode) ? 0 : 1; var node_index = (node is UnigramTrellisNode) ? 0 : 1; return (pnode_index << 1) + node_index; } PathCostFunc path_cost_funcs[4]; protected override double path_cost (TrellisNode pnode, TrellisNode node, int endpos) { var index = path_to_func_index (pnode, node); return path_cost_funcs[index].path_cost ((TrigramLanguageModel) model, pnode, node); } public TrigramDecoder (TrigramLanguageModel model) { base (model); path_cost_funcs[0] = new UnigramToUnigramPathCostFunc (); path_cost_funcs[1] = new UnigramToBigramPathCostFunc (); path_cost_funcs[2] = new BigramToUnigramPathCostFunc (); path_cost_funcs[3] = new BigramToBigramPathCostFunc (); } } } libkkc-0.3.5/libkkc/user-dictionary.vala000066400000000000000000000066641244473050600202240ustar00rootroot00000000000000/* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { /** * Helper class which can be used as a single user dictionary. * * It implements both SegmentDictionary and SentenceDictionary, * with write access. */ public class UserDictionary : Object, Dictionary, SegmentDictionary, SentenceDictionary { UserSegmentDictionary segment_dict; UserSentenceDictionary sentence_dict; public UserDictionary (string basedir) throws GLib.Error { DirUtils.create_with_parents (Path.get_dirname (basedir), 448); segment_dict = new UserSegmentDictionary ( Path.build_filename (basedir, "segment")); sentence_dict = new UserSentenceDictionary ( Path.build_filename (basedir, "sentence")); } /** * {@inheritDoc} */ public void reload () throws GLib.Error { segment_dict.reload (); sentence_dict.reload (); } /** * {@inheritDoc} */ public void save () throws GLib.Error { segment_dict.save (); sentence_dict.save (); } /** * {@inheritDoc} */ public bool lookup_candidates (string midasi, bool okuri, out Candidate[] candidates) { return segment_dict.lookup_candidates (midasi, okuri, out candidates); } /** * {@inheritDoc} */ public string[] complete (string midasi) { return segment_dict.complete (midasi); } /** * {@inheritDoc} */ public bool select_candidate (Candidate candidate) { return segment_dict.select_candidate (candidate); } /** * {@inheritDoc} */ public bool purge_candidate (Candidate candidate) { return segment_dict.purge_candidate (candidate); } /** * {@inheritDoc} */ public bool lookup_constraint (string input, out int[] constraint) { return sentence_dict.lookup_constraint (input, out constraint); } /** * {@inheritDoc} */ public bool lookup_phrase (string[] input, out string[] phrase) { return sentence_dict.lookup_phrase (input, out phrase); } /** * {@inheritDoc} */ public bool select_segments (Segment[] input) { return sentence_dict.select_segments (input); } } } libkkc-0.3.5/libkkc/user-rule.vala000066400000000000000000000161751244473050600170240ustar00rootroot00000000000000/* * Copyright (C) 2013 Daiki Ueno * Copyright (C) 2013 Red Hat, Inc. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * 02110-1301, USA. */ namespace Kkc { /** * Object representing a writable typing rule. */ public class UserRule : Rule { RuleMetadata parent; string path; /** * Create a new UserRule. * * @param parent metadata of the parent rule * @param base_dir base directory where this user rule is saved * @param prefix a string prepended to the rule name */ public UserRule (RuleMetadata parent, string base_dir, string prefix) throws RuleParseError, Error { var path = Path.build_filename (base_dir, parent.name); var name = prefix + ":" + parent.name; if (!FileUtils.test (path, FileTest.IS_DIR)) write_files (parent, path, name); var metadata = new RuleMetadata ( name, Path.build_filename (path, "metadata.json")); base (metadata); this.path = path; this.parent = parent; } static void write_files (RuleMetadata parent, string path, string name) throws GLib.Error { var generator = new Json.Generator (); generator.set_pretty (true); // write metadata DirUtils.create_with_parents (path, 448); var metadata_builder = create_metadata (parent, name); generator.set_root (metadata_builder.get_root ()); var metadata_filename = Path.build_filename (path, "metadata.json"); generator.to_file (metadata_filename); // write keymap var keymap_path = Path.build_filename (path, "keymap"); DirUtils.create_with_parents (keymap_path, 448); var enum_class = (EnumClass) typeof (InputMode).class_ref (); for (var i = enum_class.minimum; i <= enum_class.maximum; i++) { var enum_value = enum_class.get_value (i); var keymap_builder = create_keymap (parent, enum_value.value_nick, null); generator.set_root (keymap_builder.get_root ()); var keymap_filename = Path.build_filename (keymap_path, "%s.json".printf ( enum_value.value_nick)); generator.to_file (keymap_filename); } // write rom-kana rule var rom_kana_path = Path.build_filename (path, "rom-kana"); DirUtils.create_with_parents (rom_kana_path, 448); var rom_kana_builder = create_rom_kana (parent, "default"); generator.set_root (rom_kana_builder.get_root ()); var rom_kana_filename = Path.build_filename (rom_kana_path, "default.json"); generator.to_file (rom_kana_filename); } static Json.Builder create_metadata (RuleMetadata parent, string name) { var builder = new Json.Builder (); builder.begin_object (); builder.set_member_name ("name"); builder.add_string_value (name); builder.set_member_name ("description"); builder.add_string_value (parent.description); builder.set_member_name ("filter"); builder.add_string_value (parent.filter); builder.set_member_name ("priority"); builder.add_int_value (parent.priority); builder.end_object (); return builder; } static Json.Builder create_keymap (RuleMetadata parent, string name, Keymap? keymap) { var builder = new Json.Builder (); builder.begin_object (); builder.set_member_name ("include"); builder.begin_array (); builder.add_string_value (parent.name + "/" + name); builder.end_array (); if (keymap != null) { builder.set_member_name ("define"); builder.begin_object (); builder.set_member_name ("keymap"); builder.begin_object (); var entries = keymap.local_entries (); foreach (var entry in entries) { builder.set_member_name (entry.key.to_string ()); if (entry.command == null) builder.add_null_value (); else builder.add_string_value (entry.command); } builder.end_object (); builder.end_object (); } builder.end_object (); return builder; } static Json.Builder create_rom_kana (RuleMetadata parent, string name) { var builder = new Json.Builder (); builder.begin_object (); builder.set_member_name ("include"); builder.begin_array (); builder.add_string_value (parent.name + "/" + name); builder.end_array (); builder.end_object (); return builder; } /** * Save keymap for given input mode. * * @param input_mode input mode */ public void write (InputMode input_mode) throws Error { var enum_class = (EnumClass) typeof (InputMode).class_ref (); var keymap_name = enum_class.get_value (input_mode).value_nick; var keymap_path = Path.build_filename (path, "keymap"); DirUtils.create_with_parents (keymap_path, 448); var generator = new Json.Generator (); generator.set_pretty (true); var builder = create_keymap (parent, keymap_name, get_keymap (input_mode)); generator.set_root (builder.get_root ()); var filename = Path.build_filename (keymap_path, "%s.json".printf (keymap_name)); generator.to_file (filename); } } } libkkc-0.3.5/libkkc/user-segment-dictionary.vala000066400000000000000000000253271244473050600216610ustar00rootroot00000000000000/* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { /** * File based implementation of SegmentDictionary with write access. */ public class UserSegmentDictionary : Object, Dictionary, SegmentDictionary { void load () throws Error { uint8[] contents; file.load_contents (null, out contents, out etag); var memory = new MemoryInputStream.from_data (contents, g_free); var data = new DataInputStream (memory); string? line = null; size_t length; line = data.read_line (out length); if (line == null) { return; } Map>? entries = null; while (line != null) { if (line.has_prefix (";; okuri-ari entries.")) { entries = okuri_ari_entries; break; } line = data.read_line (out length); if (line == null) { break; } } if (entries == null) { throw new DictionaryError.MALFORMED_INPUT ( "no okuri-ari boundary"); } bool okuri = true; while (line != null) { line = data.read_line (out length); if (line == null) { break; } if (line.has_prefix (";; okuri-nasi entries.")) { entries = okuri_nasi_entries; okuri = false; continue; } string[] strv = line.strip ().split_set (" \t", 2); if (strv.length < 2) { throw new DictionaryError.MALFORMED_INPUT ( "can't extract midasi from line %s", line); } string midasi = DictionaryUtils.unescape (strv[0]); string candidates_str = strv[1]; if (!candidates_str.has_prefix ("/") || !candidates_str.has_suffix ("/")) { throw new DictionaryError.MALFORMED_INPUT ( "can't parse candidates list %s", candidates_str); } var candidates = DictionaryUtils.split_candidates ( midasi, okuri, candidates_str); var list = new ArrayList (); foreach (var c in candidates) { list.add (c); } entries.set (midasi, list); } } /** * {@inheritDoc} */ public void reload () throws GLib.Error { string attributes = FileAttribute.ETAG_VALUE; FileInfo info = file.query_info (attributes, FileQueryInfoFlags.NONE); if (info.get_etag () != etag) { this.okuri_ari_entries.clear (); this.okuri_nasi_entries.clear (); load (); } is_dirty = false; } static int compare_entry_asc (Map.Entry> a, Map.Entry> b) { return strcmp (a.key, b.key); } static int compare_entry_dsc (Map.Entry> a, Map.Entry> b) { return strcmp (b.key, a.key); } void write_entries (StringBuilder builder, Gee.List>> entries) { var iter = entries.iterator (); while (iter.next ()) { var entry = iter.get (); var line = "%s %s\n".printf ( DictionaryUtils.escape (entry.key), DictionaryUtils.join_candidates (entry.value.to_array ())); builder.append (line); } } /** * {@inheritDoc} */ public void save () throws GLib.Error { if (!is_dirty) return; var builder = new StringBuilder (); builder.append (";; okuri-ari entries.\n"); var entries = new ArrayList>> (); entries.add_all (okuri_ari_entries.entries); entries.sort (compare_entry_dsc); write_entries (builder, entries); entries.clear (); builder.append (";; okuri-nasi entries.\n"); entries.add_all (okuri_nasi_entries.entries); entries.sort (compare_entry_asc); write_entries (builder, entries); entries.clear (); DirUtils.create_with_parents (Path.get_dirname (file.get_path ()), 448); file.replace_contents (builder.str.data, etag, false, FileCreateFlags.PRIVATE, out etag); is_dirty = false; } Map> get_entries (bool okuri = false) { if (okuri) { return okuri_ari_entries; } else { return okuri_nasi_entries; } } /** * {@inheritDoc} */ public bool lookup_candidates (string midasi, bool okuri, out Candidate[] candidates) { var entries = get_entries (okuri); if (entries.has_key (midasi)) { candidates = entries.get (midasi).to_array (); return true; } else { candidates = new Candidate[0]; return false; } } /** * {@inheritDoc} */ public string[] complete (string midasi) { Gee.List completion = new ArrayList (); Gee.List keys = new ArrayList (); keys.add_all (okuri_nasi_entries.keys); keys.sort (); var iter = keys.iterator (); // find the first matching entry while (iter.next ()) { var key = iter.get (); if (key.has_prefix (midasi)) { // don't add midasi word itself if (key != midasi) { completion.add (key); } break; } } // loop until the last matching entry while (iter.next ()) { var key = iter.get (); if (!key.has_prefix (midasi)) { break; } // don't add midasi word itself if (key != midasi) { completion.add (key); } } return completion.to_array (); } /** * {@inheritDoc} */ public bool select_candidate (Candidate candidate) { var entries = get_entries (candidate.okuri); if (!entries.has_key (candidate.midasi)) { entries.set (candidate.midasi, new ArrayList ()); } var candidates = entries.get (candidate.midasi); var index = candidates.index_of (candidate); if (index == 0) return false; if (index > 0) candidates.remove_at (index); candidates.insert (0, candidate); is_dirty = true; return true; } /** * {@inheritDoc} */ public bool purge_candidate (Candidate candidate) { bool modified = false; var entries = get_entries (candidate.okuri); if (entries.has_key (candidate.midasi)) { var candidates = entries.get (candidate.midasi); if (candidates.size > 0) { var iter = candidates.iterator (); while (iter.next ()) { var c = iter.get (); if (c.text == candidate.text) { iter.remove (); modified = true; } } if (candidates.size == 0) { entries.unset (candidate.midasi); } } } if (modified) is_dirty = true; return modified; } File file; string etag; Map> okuri_ari_entries = new HashMap> (); Map> okuri_nasi_entries = new HashMap> (); bool is_dirty; /** * Create a new UserSegmentDictionary. * * @param path a path to the file * * @return a new UserSegmentDictionary * @throws GLib.Error if opening the file is failed */ public UserSegmentDictionary (string path) throws GLib.Error { this.file = File.new_for_path (path); this.etag = ""; // user dictionary may not exist for the first time if (FileUtils.test (path, FileTest.EXISTS)) { reload (); } } ~UserSegmentDictionary () { var okuri_ari_iter = okuri_ari_entries.map_iterator (); while (okuri_ari_iter.next ()) { okuri_ari_iter.get_value ().clear (); } okuri_ari_entries.clear (); var okuri_nasi_iter = okuri_nasi_entries.map_iterator (); while (okuri_nasi_iter.next ()) { okuri_nasi_iter.get_value ().clear (); } okuri_nasi_entries.clear (); } } }libkkc-0.3.5/libkkc/user-sentence-dictionary.vala000066400000000000000000000251601244473050600220160ustar00rootroot00000000000000/* * Copyright (C) 2011-2014 Daiki Ueno * Copyright (C) 2011-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; namespace Kkc { /** * File based implementation of SentenceDictionary with write access. */ public class UserSentenceDictionary : Object, Dictionary, SentenceDictionary { File file; string etag; bool is_dirty; enum UserSentenceState { NONE, CONSTRAINT, PHRASE, } Map> constraint_entries = new HashMap> (); Map> phrase_entries = new HashMap> (); void load () throws Error { uint8[] contents; file.load_contents (null, out contents, out etag); var memory = new MemoryInputStream.from_data (contents, g_free); var data = new DataInputStream (memory); string? line = null; size_t length; line = data.read_line (out length); if (line == null) { return; } var state = UserSentenceState.NONE; while (line != null) { if (line.has_prefix (";; constraint entries.")) { state = UserSentenceState.CONSTRAINT; break; } line = data.read_line (out length); if (line == null) { break; } } if (state == UserSentenceState.NONE) { throw new DictionaryError.MALFORMED_INPUT ( "no constraints boundary"); } while (line != null) { line = data.read_line (out length); if (line == null) { break; } if (line.has_prefix (";; phrase entries.")) { state = UserSentenceState.PHRASE; continue; } int index = line.index_of ("/"); if (index < 2) { throw new DictionaryError.MALFORMED_INPUT ( "can't extract midasi from line %s", line); } string midasi = line[0:index].strip (); string candidates_str = line[index:line.length].strip (); if (!candidates_str.has_prefix ("/") || !candidates_str.has_suffix ("/")) { throw new DictionaryError.MALFORMED_INPUT ( "can't parse candidates list %s", candidates_str); } switch (state) { case UserSentenceState.CONSTRAINT: var numbers = new ArrayList (); var strv = candidates_str.slice (1, -1).split (","); foreach (var str in strv) { numbers.add (int.parse (str)); } constraint_entries.set (midasi, numbers); break; case UserSentenceState.PHRASE: var segments = new ArrayList (); var strv = candidates_str.slice (1, -1).split ("/"); foreach (var str in strv) { segments.add (DictionaryUtils.unescape (str)); } phrase_entries.set (midasi, segments); break; } } } static int compare_constraint_entry (Map.Entry> a, Map.Entry> b) { return strcmp (a.key, b.key); } static int compare_phrase_entry (Map.Entry> a, Map.Entry> b) { return strcmp (b.key, a.key); } void write_constraint_entries (StringBuilder builder, ArrayList>> entries) { var iter = entries.iterator (); while (iter.next ()) { var entry = iter.get (); string[] strv = new string[entry.value.size]; for (var i = 0; i < strv.length; i++) { strv[i] = entry.value[i].to_string (); } var line = "%s /%s/\n".printf ( entry.key, string.joinv (",", strv)); builder.append (line); } } void write_phrase_entries (StringBuilder builder, ArrayList>> entries) { var iter = entries.iterator (); while (iter.next ()) { var entry = iter.get (); string[] strv = new string[entry.value.size]; for (var i = 0; i < strv.length; i++) { strv[i] = DictionaryUtils.escape (entry.value[i]); } var line = "%s /%s/\n".printf ( entry.key, string.joinv ("/", strv)); builder.append (line); } } /** * {@inheritDoc} */ public void save () throws GLib.Error { if (!is_dirty) return; var builder = new StringBuilder (); builder.append (";; constraint entries.\n"); var _constraint_entries = new ArrayList>> (); _constraint_entries.add_all (constraint_entries.entries); _constraint_entries.sort (compare_constraint_entry); write_constraint_entries (builder, _constraint_entries); builder.append (";; phrase entries.\n"); var _phrase_entries = new ArrayList>> (); _phrase_entries.add_all (phrase_entries.entries); _phrase_entries.sort (compare_phrase_entry); write_phrase_entries (builder, _phrase_entries); DirUtils.create_with_parents (Path.get_dirname (file.get_path ()), 448); var contents = builder.str; file.replace_contents (contents.data, etag, false, FileCreateFlags.PRIVATE, out etag); is_dirty = false; } /** * {@inheritDoc} */ public void reload () throws GLib.Error { string attributes = FileAttribute.ETAG_VALUE; FileInfo info = file.query_info (attributes, FileQueryInfoFlags.NONE); if (info.get_etag () != etag) { this.constraint_entries.clear (); this.phrase_entries.clear (); load (); } is_dirty = false; } /** * {@inheritDoc} */ public bool lookup_constraint (string input, out int[] constraint) { var entry = constraint_entries.get (input); if (entry == null) { constraint = new int[0]; return false; } constraint = entry.to_array (); return true; } /** * {@inheritDoc} */ public bool lookup_phrase (string[] input, out string[] phrase) { var _input = string.joinv (" ", input); var entry = phrase_entries.get (_input); if (entry == null) { phrase = new string[0]; return false; } phrase = entry.to_array (); return true; } /** * {@inheritDoc} */ public bool select_segments (Segment[] segments) { int offset = 0; var input = new ArrayList (); var constraint = new ArrayList (); var phrase = new ArrayList (); foreach (var segment in segments) { var count = segment.input.char_count (); offset += count; constraint.add (offset); phrase.add (segment.output); input.add (segment.input); } // Don't add too short sentences to dictionary. if (offset < 3) return false; // Make sure to null terminate so joinv determine the end of strv. input.add (null); // Newer valac thinks null in a fixed length array as an // empty string. var array = input.to_array (); array.length = -1; constraint_entries.set (string.joinv ("", array), constraint); phrase_entries.set (string.joinv (" ", array), phrase); is_dirty = true; return true; } /** * Create a new UserSentenceDictionary. * * @param path a path to the file * * @return a new UserDictionary * @throws GLib.Error if opening the file is failed */ public UserSentenceDictionary (string path) throws GLib.Error { this.file = File.new_for_path (path); this.etag = ""; // user dictionary may not exist for the first time if (FileUtils.test (path, FileTest.EXISTS)) { reload (); } } ~UserSentenceDictionary () { var constraint_iter = constraint_entries.map_iterator (); while (constraint_iter.next ()) { constraint_iter.get_value ().clear (); } constraint_entries.clear (); var phrase_iter = phrase_entries.map_iterator (); while (phrase_iter.next ()) { phrase_iter.get_value ().clear (); } phrase_entries.clear (); } } }libkkc-0.3.5/libkkc/utils.vala000066400000000000000000000212151244473050600162300ustar00rootroot00000000000000/* * Copyright (C) 2012-2014 Daiki Ueno * Copyright (C) 2012-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; using Keysyms; namespace Kkc { namespace Utils { internal static string[] build_data_path (string subdir) { ArrayList dirs = new ArrayList (); string? path = Environment.get_variable ( "%s_DATA_PATH".printf (Config.PACKAGE_NAME.up ())); if (path == null) { dirs.add (Path.build_filename ( Environment.get_user_config_dir (), Config.PACKAGE_NAME, subdir)); // For arch-dependent data files dirs.add (Path.build_filename (Config.LIBDIR, Config.PACKAGE_NAME, subdir)); // For arch-independent data files dirs.add (Path.build_filename (Config.PKGDATADIR, subdir)); } else { string[] elements = path.split (":"); foreach (var element in elements) { dirs.add (Path.build_filename (element, subdir)); } } return dirs.to_array (); } internal static string[] split_utf8 (string str) { var result = new ArrayList (); int index = 0; unichar uc; while (str.get_next_char (ref index, out uc)) { result.add (uc.to_string ()); } return result.to_array (); } internal static int hex_char_to_int (char hex) { if ('0' <= hex && hex <= '9') { return hex - '0'; } else if ('a' <= hex.tolower () && hex.tolower () <= 'f') { return hex - 'a' + 10; } return -1; } internal static string parse_hex (string hex) { var builder = new StringBuilder (); for (var i = 0; i < hex.length - 1; i += 2) { int c = (hex_char_to_int (hex[i]) << 4) | hex_char_to_int (hex[i + 1]); builder.append_c ((char)c); } return builder.str; } } internal struct PrefixEntry { public int offset; public string[] sequence; public PrefixEntry (int offset, string[] sequence) { this.offset = offset; this.sequence = sequence; } } namespace SequenceUtils { internal static Gee.List enumerate_prefixes ( string[] sequence, int min, int max) { var result = new ArrayList (); for (var i = 0; i < sequence.length; i++) { for (var j = sequence.length; j > i; j--) { if (j - i < min) break; if (j - i > max) continue; result.add (PrefixEntry (i, sequence[i:j])); } } return result; } } abstract class KeyEventUtils : Object { static KeysymEntry *bsearch_keysyms ( KeysymEntry *memory, long start_offset, long end_offset, CompareDataFunc compare, KeysymEntry needle) { var offset = start_offset + (end_offset - start_offset) / 2; while (start_offset <= end_offset) { KeysymEntry *p = memory + offset; var r = compare (*p, needle); if (r == 0) return p; if (r > 0) end_offset = offset - 1; else start_offset = offset + 1; offset = start_offset + (end_offset - start_offset) / 2; } return null; } static string? read_name (long start_offset) { long offset; for (offset = start_offset; keysym_names[offset] != '\0'; offset++) ; string *result = malloc0 (offset - start_offset + 1); char *dest = (char *) result; Memory.copy (dest, (char *) keysym_names + start_offset, (offset - start_offset)); return (owned) result; } public static string? keyval_name (uint keyval) { KeysymEntry needle = KeysymEntry () { keysym = keyval, offset = 0 }; var entry = bsearch_keysyms (keysym_to_name, 0, keysym_to_name.length, (a, b) => { return a.keysym == b.keysym ? 0 : a.keysym < b.keysym ? -1 : 1; }, needle); if (entry == null) return null; return read_name (entry->offset); } static KeysymEntry *find_keysym (KeysymEntry *entry, string name) { if (read_name (entry->offset) == name) return entry; KeysymEntry *iter; for (iter = entry - 1; iter >= (KeysymEntry *) name_to_keysym; iter++) if (read_name (iter->offset) == name) return iter; return null; } public static uint keyval_from_name (string name) { KeysymEntry needle = KeysymEntry () { keysym = 0, offset = 0 }; var entry = bsearch_keysyms (name_to_keysym, 0, name_to_keysym.length, (a, b) => { var aname = read_name (a.offset); return aname.ascii_casecmp (name); }, needle); if (entry != null) { entry = find_keysym (entry, name); if (entry != null) return entry->keysym; } // handle ASCII keyvals with differnet name (e.g. at, // percent, etc.) if (name.char_count () == 1) { unichar code = name.get_char (); if (0x20 <= code && code < 0x7F) return code; } return Keysyms.VoidSymbol; } public static unichar keyval_unicode (uint keyval) { if (0x20 <= keyval && keyval < 0x7F) return keyval; // FIXME: handle other unicode keyvals switch (keyval) { case Keysyms.yen: return "\xc2\xa5".get_char (); default: break; } return '\0'; } } interface IndexFile : Object { public abstract char* get_contents (); public abstract size_t get_length (); } class MappedIndexFile : IndexFile, Object { MappedFile mmap; public MappedIndexFile (string filename) throws Error { mmap = new MappedFile (filename, false); } public char* get_contents () { return mmap.get_contents (); } public size_t get_length () { return mmap.get_length (); } } class LoadedIndexFile : IndexFile, Object { uint8[] contents; public LoadedIndexFile (string filename) throws Error { var file = File.new_for_path (filename); string etag; file.load_contents (null, out contents, out etag); } public char* get_contents () { return contents; } public size_t get_length () { return contents.length; } } } libkkc-0.3.5/marisa-glib/000077500000000000000000000000001244473050600151525ustar00rootroot00000000000000libkkc-0.3.5/marisa-glib/Makefile.am000066400000000000000000000044451244473050600172150ustar00rootroot00000000000000# Copyright (C) 2012-2014 Daiki Ueno # Copyright (C) 2012-2014 Red Hat, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . noinst_LTLIBRARIES = libmarisa-glib.la libmarisa_glib_la_sources = marisa-key.cc marisa-keyset.cc marisa-agent.cc marisa-trie.cc libmarisa_glib_la_headers = marisa-key.h marisa-keyset.h marisa-agent.h marisa-trie.h libmarisa_glib_la_SOURCES = $(libmarisa_glib_la_sources) libmarisa_glib_la_CXXFLAGS = $(GIO_CFLAGS) $(MARISA_CFLAGS) -I$(top_srcdir) libmarisa_glib_la_CFLAGS = $(GIO_CFLAGS) $(MARISA_CFLAGS) -I$(top_srcdir) libmarisa_glib_la_LIBADD = $(GIO_LIBS) $(MARISA_LIBS) noinst_HEADERS = marisa-glib.h marisa-glib-private.h $(libmarisa_glib_la_headers) EXTRA_DIST = CLEANFILES = DISTCLEANFILES = MAINTAINERCLEANFILES = if HAVE_INTROSPECTION -include $(INTROSPECTION_MAKEFILE) INTROSPECTION_GIRS = INTROSPECTION_SCANNER_ARGS = --add-include-path=$(builddir) INTROSPECTION_COMPILER_ARGS = --includedir=$(srcdir) Marisa.gir: libmarisa-glib.la Marisa_gir_SCANNERFLAGS = --pkg-export=marisa-glib --pkg=marisa --namespace=Marisa $(MARISA_GLIB_STATIC_DEPENDENCIES) Marisa_gir_INCLUDES = GLib-2.0 GObject-2.0 Gio-2.0 Marisa_gir_CFLAGS = $(libmarisa_glib_la_CFLAGS) Marisa_gir_LIBS = libmarisa-glib.la Marisa_gir_FILES = $(libmarisa_glib_la_sources) $(libmarisa_glib_la_headers) INTROSPECTION_GIRS += Marisa.gir CLEANFILES += $(INTROSPECTION_GIRS) endif if ENABLE_VAPIGEN -include $(VAPIGEN_MAKEFILE) marisa-glib.vapi: Marisa.gir VAPIGEN_VAPIS = marisa-glib.vapi marisa_glib_vapi_DEPS = gio-2.0 marisa_glib_vapi_METADATADIRS = $(srcdir) marisa_glib_vapi_FILES = Marisa.gir noinst_DATA = $(VAPIGEN_VAPIS) DISTCLEANFILES += $(VAPIGEN_VAPIS) EXTRA_DIST += Marisa.metadata endif -include $(top_srcdir)/git.mk libkkc-0.3.5/marisa-glib/Marisa.metadata000066400000000000000000000003201244473050600200630ustar00rootroot00000000000000Marisa cheader_filename="marisa-glib/marisa-glib.h" Key.get_string.length out nullable default=null Key.set_string.str type="uint8[]" array_length_idx=1 Agent.set_query.str type="uint8[]" array_length_idx=1 libkkc-0.3.5/marisa-glib/marisa-agent.cc000066400000000000000000000024421244473050600200330ustar00rootroot00000000000000#include "marisa-glib-private.h" G_DEFINE_TYPE (MarisaAgent, marisa_agent, G_TYPE_OBJECT) static void marisa_agent_finalize (GObject *object) { MarisaAgent *agent = MARISA_AGENT (object); delete agent->cxx; G_OBJECT_CLASS (marisa_agent_parent_class)->finalize (object); } static void marisa_agent_class_init (MarisaAgentClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = marisa_agent_finalize; } static void marisa_agent_init (MarisaAgent *agent) { agent->cxx = new marisa::Agent (); } MarisaAgent * marisa_agent_new (void) { return MARISA_AGENT (g_object_new (MARISA_TYPE_AGENT, NULL)); } void marisa_agent_set_query (MarisaAgent *agent, const gchar *str, gsize length) { agent->cxx->set_query (str, length); } void marisa_agent_set_reverse_query (MarisaAgent *agent, gsize key_id) { agent->cxx->set_query (key_id); } MarisaKey * marisa_agent_get_key (MarisaAgent *agent) { const marisa::Key *cxxkey = &agent->cxx->key (); MarisaKey *key = marisa_key_new (); key->cxx->set_str (cxxkey->ptr (), cxxkey->length ()); key->cxx->set_id (cxxkey->id ()); return key; } void marisa_agent_clear (MarisaAgent *agent) { agent->cxx->clear (); } libkkc-0.3.5/marisa-glib/marisa-agent.h000066400000000000000000000026721244473050600177020ustar00rootroot00000000000000#ifndef __MARISA_AGENT_H__ #define __MARISA_AGENT_H__ #include G_BEGIN_DECLS #define MARISA_TYPE_AGENT (marisa_agent_get_type()) #define MARISA_AGENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MARISA_TYPE_AGENT, MarisaAgent)) #define MARISA_AGENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MARISA_TYPE_AGENT, MarisaAgentClass)) #define MARISA_IS_AGENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MARISA_TYPE_AGENT)) #define MARISA_IS_AGENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MARISA_TYPE_AGENT)) #define MARISA_AGENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MARISA_TYPE_AGENT, MarisaAgentClass)) typedef struct _MarisaAgent MarisaAgent; typedef struct _MarisaAgentClass MarisaAgentClass; GType marisa_agent_get_type (void) G_GNUC_CONST; MarisaAgent *marisa_agent_new (void); void marisa_agent_set_query (MarisaAgent *agent, const gchar *str, gsize length); void marisa_agent_set_reverse_query (MarisaAgent *agent, gsize key_id); /** * marisa_agent_get_key: * @agent: a #MarisaKey * * Get key set in @agent. * Returns: (transfer full): a #MarisaKey */ MarisaKey *marisa_agent_get_key (MarisaAgent *agent); void marisa_agent_clear (MarisaAgent *agent); G_END_DECLS #endif libkkc-0.3.5/marisa-glib/marisa-glib-private.h000066400000000000000000000014011244473050600211560ustar00rootroot00000000000000#include "marisa-glib.h" #include #include #include #include struct _MarisaKey { /*< private >*/ GObject parent; marisa::Key *cxx; }; struct _MarisaKeyClass { /*< private >*/ GObjectClass parent_class; }; struct _MarisaKeyset { /*< private >*/ GObject parent; marisa::Keyset *cxx; }; struct _MarisaKeysetClass { /*< private >*/ GObjectClass parent_class; }; struct _MarisaAgent { /*< private >*/ GObject parent; marisa::Agent *cxx; }; struct _MarisaAgentClass { /*< private >*/ GObjectClass parent_class; }; struct _MarisaTrie { /*< private >*/ GObject parent; marisa::Trie *cxx; }; struct _MarisaTrieClass { /*< private >*/ GObjectClass parent_class; }; libkkc-0.3.5/marisa-glib/marisa-glib.h000066400000000000000000000006221244473050600175120ustar00rootroot00000000000000#ifndef __MARISA_GLIB_H__ #define __MARISA_GLIB_H__ 1 #include #include #include #include #include GQuark marisa_error_quark (void); #define MARISA_ERROR marisa_error_quark () typedef enum { MARISA_ERROR_INVALID_ARGUMENT, MARISA_ERROR_FAILED } MarisaErrorEnum; #endif libkkc-0.3.5/marisa-glib/marisa-key.cc000066400000000000000000000023001244473050600175160ustar00rootroot00000000000000#include "marisa-glib-private.h" G_DEFINE_TYPE (MarisaKey, marisa_key, G_TYPE_OBJECT) static void marisa_key_finalize (GObject *object) { MarisaKey *key = MARISA_KEY (object); delete key->cxx; G_OBJECT_CLASS (marisa_key_parent_class)->finalize (object); } static void marisa_key_class_init (MarisaKeyClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = marisa_key_finalize; } static void marisa_key_init (MarisaKey *key) { key->cxx = new marisa::Key (); } MarisaKey * marisa_key_new (void) { return MARISA_KEY (g_object_new (MARISA_TYPE_KEY, NULL)); } void marisa_key_set_string (MarisaKey *key, const gchar *str, gsize length) { key->cxx->set_str (str, length); } gchar * marisa_key_get_string (MarisaKey *key, gsize *length) { if (length != NULL) *length = key->cxx->length (); return g_strndup (key->cxx->ptr (), key->cxx->length ()); } gsize marisa_key_get_id (MarisaKey *key) { return key->cxx->id (); } gfloat marisa_key_get_weight (MarisaKey *key) { return key->cxx->weight (); } void marisa_key_clear (MarisaKey *key) { key->cxx->clear (); } libkkc-0.3.5/marisa-glib/marisa-key.h000066400000000000000000000023171244473050600173700ustar00rootroot00000000000000#ifndef __MARISA_KEY_H__ #define __MARISA_KEY_H__ #include G_BEGIN_DECLS #define MARISA_TYPE_KEY (marisa_key_get_type()) #define MARISA_KEY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MARISA_TYPE_KEY, MarisaKey)) #define MARISA_KEY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MARISA_TYPE_KEY, MarisaKeyClass)) #define MARISA_IS_KEY(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MARISA_TYPE_KEY)) #define MARISA_IS_KEY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MARISA_TYPE_KEY)) #define MARISA_KEY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MARISA_TYPE_KEY, MarisaKeyClass)) typedef struct _MarisaKey MarisaKey; typedef struct _MarisaKeyClass MarisaKeyClass; GType marisa_key_get_type (void) G_GNUC_CONST; MarisaKey *marisa_key_new (void); void marisa_key_set_string (MarisaKey *key, const gchar *str, gsize length); gchar *marisa_key_get_string (MarisaKey *key, gsize *length); gsize marisa_key_get_id (MarisaKey *key); gfloat marisa_key_get_weight (MarisaKey *key); void marisa_key_clear (MarisaKey *key); G_END_DECLS #endif libkkc-0.3.5/marisa-glib/marisa-keyset.cc000066400000000000000000000023271244473050600202430ustar00rootroot00000000000000#include "marisa-glib-private.h" G_DEFINE_TYPE (MarisaKeyset, marisa_keyset, G_TYPE_OBJECT) static void marisa_keyset_finalize (GObject *object) { MarisaKeyset *keyset = MARISA_KEYSET (object); delete keyset->cxx; G_OBJECT_CLASS (marisa_keyset_parent_class)->finalize (object); } static void marisa_keyset_class_init (MarisaKeysetClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = marisa_keyset_finalize; } static void marisa_keyset_init (MarisaKeyset *keyset) { keyset->cxx = new marisa::Keyset (); } MarisaKeyset * marisa_keyset_new (void) { return MARISA_KEYSET (g_object_new (MARISA_TYPE_KEYSET, NULL)); } void marisa_keyset_add (MarisaKeyset *keyset, const MarisaKey *key) { keyset->cxx->push_back (*key->cxx); } MarisaKey * marisa_keyset_get (MarisaKeyset *keyset, goffset i) { MarisaKey *key = marisa_key_new (); marisa::Key *cxxkey = &(*keyset->cxx)[i]; key->cxx->set_str (cxxkey->ptr (), cxxkey->length ()); key->cxx->set_id (cxxkey->id ()); return key; } gsize marisa_keyset_size (MarisaKeyset *keyset) { return keyset->cxx->size (); } void marisa_keyset_clear (MarisaKeyset *keyset) { keyset->cxx->clear (); } libkkc-0.3.5/marisa-glib/marisa-keyset.h000066400000000000000000000026101244473050600201000ustar00rootroot00000000000000#ifndef __MARISA_KEYSET_H__ #define __MARISA_KEYSET_H__ #include G_BEGIN_DECLS #define MARISA_TYPE_KEYSET (marisa_keyset_get_type()) #define MARISA_KEYSET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MARISA_TYPE_KEYSET, MarisaKeyset)) #define MARISA_KEYSET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MARISA_TYPE_KEYSET, MarisaKeysetClass)) #define MARISA_IS_KEYSET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MARISA_TYPE_KEYSET)) #define MARISA_IS_KEYSET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MARISA_TYPE_KEYSET)) #define MARISA_KEYSET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MARISA_TYPE_KEYSET, MarisaKeysetClass)) typedef struct _MarisaKeyset MarisaKeyset; typedef struct _MarisaKeysetClass MarisaKeysetClass; GType marisa_keyset_get_type (void) G_GNUC_CONST; MarisaKeyset *marisa_keyset_new (void); void marisa_keyset_add (MarisaKeyset *keyset, const MarisaKey *key); /** * marisa_keyset_get: * @keyset: a #MarisaKeyset * @i: index of a key * * Obtain a key indexed by @i in @keyset. * Returns: (transfer full): a #MarisaKey */ MarisaKey *marisa_keyset_get (MarisaKeyset *keyset, goffset i); gsize marisa_keyset_size (MarisaKeyset *keyset); void marisa_keyset_clear (MarisaKeyset *keyset); G_END_DECLS #endif libkkc-0.3.5/marisa-glib/marisa-trie.cc000066400000000000000000000051371244473050600177040ustar00rootroot00000000000000#include "marisa-glib-private.h" G_DEFINE_TYPE (MarisaTrie, marisa_trie, G_TYPE_OBJECT) GQuark marisa_error_quark (void) { return g_quark_from_static_string ("marisa-error-quark"); } static void marisa_trie_finalize (GObject *object) { MarisaTrie *trie = MARISA_TRIE (object); delete trie->cxx; G_OBJECT_CLASS (marisa_trie_parent_class)->finalize (object); } static void marisa_trie_class_init (MarisaTrieClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = marisa_trie_finalize; } static void marisa_trie_init (MarisaTrie *trie) { trie->cxx = new marisa::Trie (); } MarisaTrie * marisa_trie_new (void) { return MARISA_TRIE (g_object_new (MARISA_TYPE_TRIE, NULL)); } void marisa_trie_build (MarisaTrie *trie, MarisaKeyset *keyset) { trie->cxx->build (*keyset->cxx); } gboolean marisa_trie_mmap (MarisaTrie *trie, const gchar *filename, GError **error) { try { trie->cxx->mmap (filename); } catch (const marisa::Exception &ex) { g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, "%s: failed to mmap a dictionary file: %s", ex.what(), filename); return FALSE; } return TRUE; } gboolean marisa_trie_save (MarisaTrie *trie, const gchar *filename, GError **error) { try { trie->cxx->save (filename); } catch (const marisa::Exception &ex) { g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED, "%s: failed to save a dictionary file: %s", ex.what(), filename); return FALSE; } return TRUE; } gboolean marisa_trie_lookup (MarisaTrie *trie, MarisaAgent *agent) { return trie->cxx->lookup (*agent->cxx); } gboolean marisa_trie_reverse_lookup (MarisaTrie *trie, MarisaAgent *agent, GError **error) { try { trie->cxx->reverse_lookup (*agent->cxx); } catch (const marisa::Exception &ex) { g_set_error (error, MARISA_ERROR, MARISA_ERROR_INVALID_ARGUMENT, "%s: reverse_lookup failed", ex.what()); return FALSE; } return TRUE; } gboolean marisa_trie_common_prefix_search (MarisaTrie *trie, MarisaAgent *agent) { return trie->cxx->common_prefix_search (*agent->cxx); } gboolean marisa_trie_predictive_search (MarisaTrie *trie, MarisaAgent *agent) { return trie->cxx->predictive_search (*agent->cxx); } void marisa_trie_clear (MarisaTrie *trie) { trie->cxx->clear (); } libkkc-0.3.5/marisa-glib/marisa-trie.h000066400000000000000000000040351244473050600175420ustar00rootroot00000000000000#ifndef __MARISA_TRIE_H__ #define __MARISA_TRIE_H__ #include G_BEGIN_DECLS #define MARISA_TYPE_TRIE (marisa_trie_get_type()) #define MARISA_TRIE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MARISA_TYPE_TRIE, MarisaTrie)) #define MARISA_TRIE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MARISA_TYPE_TRIE, MarisaTrieClass)) #define MARISA_IS_TRIE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MARISA_TYPE_TRIE)) #define MARISA_IS_TRIE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MARISA_TYPE_TRIE)) #define MARISA_TRIE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MARISA_TYPE_TRIE, MarisaTrieClass)) typedef struct _MarisaTrie MarisaTrie; typedef struct _MarisaTrieClass MarisaTrieClass; GType marisa_trie_get_type (void) G_GNUC_CONST; MarisaTrie *marisa_trie_new (void); void marisa_trie_build (MarisaTrie *trie, MarisaKeyset *keyset); gboolean marisa_trie_mmap (MarisaTrie *trie, const gchar *filename, GError **error); gboolean marisa_trie_save (MarisaTrie *trie, const gchar *filename, GError **error); gboolean marisa_trie_lookup (MarisaTrie *trie, MarisaAgent *agent); gboolean marisa_trie_reverse_lookup (MarisaTrie *trie, MarisaAgent *agent, GError **error); gboolean marisa_trie_common_prefix_search (MarisaTrie *trie, MarisaAgent *agent); gboolean marisa_trie_predictive_search (MarisaTrie *trie, MarisaAgent *agent); void marisa_trie_clear (MarisaTrie *trie); G_END_DECLS #endif libkkc-0.3.5/po/000077500000000000000000000000001244473050600134015ustar00rootroot00000000000000libkkc-0.3.5/po/LINGUAS000066400000000000000000000000031244473050600144170ustar00rootroot00000000000000ja libkkc-0.3.5/po/POTFILES.in000066400000000000000000000006521244473050600151610ustar00rootroot00000000000000libkkc/keymap.vala tools/kkc.vala data/rules/tutcode/metadata.json.in data/rules/azik/metadata.json.in data/rules/trycode/metadata.json.in data/rules/default/metadata.json.in data/rules/azik-jp106/metadata.json.in data/rules/tcode/metadata.json.in data/rules/act/metadata.json.in data/rules/kana/metadata.json.in data/rules/nicola/metadata.json.in data/rules/tutcode-touch16x/metadata.json.in data/rules/kzik/metadata.json.in libkkc-0.3.5/po/POTFILES.skip000066400000000000000000000000331244473050600155120ustar00rootroot00000000000000tools/kkc.c tools/server.c libkkc-0.3.5/po/ja.po000066400000000000000000000161331244473050600143370ustar00rootroot00000000000000# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: libkkc 0.3.3\n" "Report-Msgid-Bugs-To: ueno@gnu.org\n" "POT-Creation-Date: 2014-06-16 12:10+0900\n" "PO-Revision-Date: 2014-06-16 12:18+0900\n" "Last-Translator: Daiki Ueno \n" "Language-Team: Japanese\n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: libkkc/keymap.vala:36 msgid "Abort" msgstr "中断" #: libkkc/keymap.vala:37 msgid "First Segment" msgstr "最初の文節" #: libkkc/keymap.vala:38 msgid "Last Segment" msgstr "最後の文節" #: libkkc/keymap.vala:39 msgid "Commit" msgstr "確定" #: libkkc/keymap.vala:40 msgid "Complete" msgstr "補完" #: libkkc/keymap.vala:41 msgid "Delete" msgstr "消去" #: libkkc/keymap.vala:42 msgid "Delete Next Character" msgstr "次の文字を消去" #: libkkc/keymap.vala:43 msgid "Quoted Insert" msgstr "直接入力" #: libkkc/keymap.vala:44 msgid "Register Word" msgstr "辞書登録" #: libkkc/keymap.vala:45 msgid "Next Candidate" msgstr "次候補" #: libkkc/keymap.vala:46 msgid "Previous Candidate" msgstr "前候補" #: libkkc/keymap.vala:47 msgid "Purge Candidate" msgstr "候補を削除" #: libkkc/keymap.vala:48 msgid "Next Segment" msgstr "次の文節" #: libkkc/keymap.vala:49 msgid "Previous Segment" msgstr "前の文節" #: libkkc/keymap.vala:50 msgid "Expand Segment" msgstr "文節を伸ばす" #: libkkc/keymap.vala:51 msgid "Shrink Segment" msgstr "文節を縮める" #: libkkc/keymap.vala:52 msgid "Switch to Hiragana Input Mode" msgstr "ひらがな入力モードに変更" #: libkkc/keymap.vala:53 msgid "Switch to Katakana Input Mode" msgstr "カタカナ入力モードに変更" #: libkkc/keymap.vala:54 msgid "Switch to Hankaku Katakana Input Mode" msgstr "半角カタカナ入力モードに変更" #: libkkc/keymap.vala:55 msgid "Switch to Latin Input Mode" msgstr "英数入力モードに変更" #: libkkc/keymap.vala:56 msgid "Switch to Wide Latin Input Mode" msgstr "全角英数入力モードに変更" #: libkkc/keymap.vala:57 msgid "Switch to Direct Input Mode" msgstr "直接入力モードに変更" #: libkkc/keymap.vala:58 msgid "Convert to Hiragana" msgstr "ひらがなに変換" #: libkkc/keymap.vala:59 msgid "Convert to Katakana" msgstr "カタカナに変換" #: libkkc/keymap.vala:60 msgid "Convert to Hankaku Katakana" msgstr "半角カタカナに変換" #: libkkc/keymap.vala:61 msgid "Convert to Latin" msgstr "英数に変換" #: libkkc/keymap.vala:62 msgid "Convert to Wide Latin" msgstr "全角英数に変換" #: libkkc/keymap.vala:63 msgid "Original Candidate" msgstr "元の候補" #: tools/kkc.vala:27 msgid "Language model" msgstr "言語モデル" #: tools/kkc.vala:39 msgid "Path to a system dictionary" msgstr "システム辞書のパス" #: tools/kkc.vala:41 msgid "Path to a user dictionary" msgstr "ユーザ辞書のパス" #: tools/kkc.vala:43 msgid "Typing rule (use \"?\" to list available rules)" msgstr "タイピング方式 (\"?\" で利用可能な方式の一覧を表示)" #: tools/kkc.vala:48 msgid "COMMAND" msgstr "コマンド" #: tools/kkc.vala:57 #, c-format msgid "" "Commands:\n" " help Shows this information\n" " decoder Run decoder\n" " context Run context\n" "\n" " Use \"%s COMMAND --help\" to get help on each command.\n" msgstr "" "コマンド:\n" " help この情報を表示\n" " decoder decoder を起動\n" " context context を起動\n" "\n" " \"%s COMMAND --help\" で各コマンドのヘルプが得られます。\n" #: tools/kkc.vala:76 msgid "Model options:" msgstr "モデルのオプション:" #: tools/kkc.vala:77 msgid "Options specifying the language model" msgstr "言語モデルを指定するオプション" #: tools/kkc.vala:126 msgid "- run decoder on the command line" msgstr "- デコーダをコマンドラインから実行" #: tools/kkc.vala:181 msgid "- run context on the command line" msgstr "- コンテクストをコマンドラインから実行" #: data/rules/tutcode/metadata.json.in:2 msgid "TUT-Code" msgstr "TUT-Code" #: data/rules/tutcode/metadata.json.in:3 msgid "" "Japanese direct input method developed by Hajime Ohiwa and Takaaki Takashima " "" msgstr "日本語直接入力メソッド" #: data/rules/azik/metadata.json.in:2 msgid "AZIK" msgstr "AZIK" #: data/rules/azik/metadata.json.in:3 data/rules/azik-jp106/metadata.json.in:3 msgid "" "Extended romaji input method developed by Kiyoshi Kimura " msgstr "拡張ローマ字入力メソッド" #: data/rules/trycode/metadata.json.in:2 msgid "TRY-CODE" msgstr "TRY-CODE" #: data/rules/trycode/metadata.json.in:3 msgid "" "Japanese direct input method based on T-Code, developed by Naoto Takahashi " "" msgstr "T-Code にもとづいた日本語直接入力メソッド" #: data/rules/default/metadata.json.in:2 msgid "Default" msgstr "デフォルト" #: data/rules/default/metadata.json.in:3 msgid "Default typing rule" msgstr "デフォルトのタイピング方式" #: data/rules/azik-jp106/metadata.json.in:2 msgid "AZIK (Japanese 106 keyboard)" msgstr "AZIK (日本語 106 キーボード)" #: data/rules/tcode/metadata.json.in:2 msgid "T-Code" msgstr "T-Code" #: data/rules/tcode/metadata.json.in:3 msgid "" "Japanese direct input method developed by the T-Code project " msgstr "T-Code プロジェクトで開発された日本語直接入力メソッド" #: data/rules/act/metadata.json.in:2 msgid "ACT" msgstr "ACT" #: data/rules/act/metadata.json.in:3 msgid "" "Extended romaji input method based on AZIK for Dvorak keyboard layout, " "developed by Kiyoshi Kimura " msgstr "Dvorak キーボード配列にもとづいた拡張ローマ字入力メソッド。" #: data/rules/kana/metadata.json.in:2 msgid "Kana" msgstr "かな" #: data/rules/kana/metadata.json.in:3 msgid "Direct Kana typing" msgstr "かな直接入力" #: data/rules/nicola/metadata.json.in:2 msgid "NICOLA" msgstr "NICOLA" #: data/rules/nicola/metadata.json.in:3 msgid "" "Input method using thumb shift keyboard developed by the NICOLA (NIhongo-" "nyuuryoku COnsortium LAyout) project " msgstr "親指シフトキーボードを使った入力メソッド" #: data/rules/tutcode-touch16x/metadata.json.in:2 msgid "TUT-Code (Touch16+)" msgstr "TUT-Code (Touch16+)" #: data/rules/tutcode-touch16x/metadata.json.in:3 msgid "TUT-Code with Touch16+ extension" msgstr "TUT-Code (Touch16+ 拡張)" #: data/rules/kzik/metadata.json.in:2 msgid "KZIK" msgstr "KZIK" #: data/rules/kzik/metadata.json.in:3 msgid "" "Extended romaji input method based on AZIK, developed by OHASHI Hideya " "" msgstr "AZIK にもとづいた拡張ローマ字入力メソッド" libkkc-0.3.5/tests/000077500000000000000000000000001244473050600141255ustar00rootroot00000000000000libkkc-0.3.5/tests/Makefile.am000066400000000000000000000167041244473050600161710ustar00rootroot00000000000000# Copyright (C) 2011-2014 Daiki Ueno # Copyright (C) 2011-2014 Red Hat, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . SUBDIRS = lib . TESTS_ENVIRONMENT = \ G_DEBUG=${G_DEBUG:+"${G_DEBUG},"}gc-friendly \ G_SLICE=${G_SLICE},always-malloc \ LIBKKC_DATA_PATH=$(builddir)/data:${srcdir}/data:$(top_srcdir)/data LOG_COMPILER = $(LIBTOOL) --mode=execute $(VALGRIND) $(VALGRIND_OPTS) TESTS = \ decoder \ context \ state \ candidate \ candidate-list \ segment \ segment-list \ trellis-node \ encoding \ metadata-file \ language-model \ system-dictionary \ user-dictionary \ dictionary-list \ key-event \ keymap \ user-rule \ rom-kana \ expression \ rule \ template \ $(NULL) noinst_PROGRAMS = $(TESTS) noinst_HEADERS = AM_CPPFLAGS = \ -DDATADIR=\"$(datadir)\" \ -DPKGDATADIR=\"$(pkgdatadir)\" \ -I$(top_srcdir) \ -I$(top_builddir) \ $(LIBKKC_CFLAGS) \ -I$(top_srcdir)/tests/lib \ -I$(top_builddir)/tests/lib \ $(NULL) LDADD = $(top_builddir)/libkkc/libkkc-internals.la \ $(LIBKKC_LIBS) \ $(builddir)/lib/libkkc-test.la \ $(MARISA_GLIB_STATIC_DEPENDENCIES) \ $(NULL) AM_VALAFLAGS = \ --disable-warnings \ --vapidir=. \ --vapidir=$(top_srcdir)/libkkc \ --vapidir=$(top_srcdir)/tests/lib \ --pkg gobject-2.0 \ --pkg gio-2.0 \ --pkg gee-0.8 \ --pkg config \ --pkg json-glib-1.0 \ --pkg kkc-internals-1.0 \ --pkg kkc-test \ -g \ $(NULL) decoder_SOURCES = decoder.vala context_SOURCES = context.vala state_SOURCES = state.vala candidate_SOURCES = candidate.vala candidate_list_SOURCES = candidate-list.vala segment_SOURCES = segment.vala trellis_node_SOURCES = trellis-node.vala segment_list_SOURCES = segment-list.vala encoding_SOURCES = encoding.vala metadata_file_SOURCES = metadata-file.vala language_model_SOURCES = language-model.vala system_dictionary_SOURCES = system-dictionary.vala user_dictionary_SOURCES = user-dictionary.vala dictionary_list_SOURCES = dictionary-list.vala key_event_SOURCES = key-event.vala keymap_SOURCES = keymap.vala user_rule_SOURCES = user-rule.vala rom_kana_SOURCES = rom-kana.vala expression_SOURCES = expression.vala rule_SOURCES = rule.vala template_SOURCES = template.vala EXTRA_DIST = \ system-segment-dictionary \ system-segment-dictionary-bad1 \ system-segment-dictionary-bad2 \ system-segment-dictionary-bad3 \ user-segment-dictionary-good \ user-segment-dictionary-bad1 \ user-segment-dictionary-bad2 \ user-sentence-dictionary-good \ user-sentence-dictionary-bad1 \ user-sentence-dictionary-bad2 \ metadata.json \ metadata-bad1.json \ metadata-bad2.json \ metadata-bad3.json \ metadata-bad4.json \ language-model-metadata-bad1.json \ language-model-metadata-bad2.json \ rule-metadata-bad.json \ data/rules/test-empty/metadata.json \ data/rules/test-empty/keymap/.gitkeep \ data/rules/test-empty/rom-kana/.gitkeep \ data/rules/test-bad1/metadata.json \ data/rules/test-bad1/keymap/hiragana.json \ data/rules/test-bad1/rom-kana/.gitkeep \ data/rules/test-bad2/metadata.json \ data/rules/test-bad2/keymap/hiragana.json \ data/rules/test-bad2/rom-kana/.gitkeep \ data/rules/test-bad3/metadata.json \ data/rules/test-bad3/keymap/hiragana.json \ data/rules/test-bad3/rom-kana/.gitkeep \ data/rules/test-bad4/metadata.json \ data/rules/test-bad4/keymap/hiragana.json \ data/rules/test-bad4/rom-kana/.gitkeep \ data/rules/test-bad5/metadata.json \ data/rules/test-bad5/keymap/hiragana.json \ data/rules/test-bad5/rom-kana/.gitkeep \ data/rules/test-bad6/metadata.json \ data/rules/test-bad6/keymap/hiragana.json \ data/rules/test-bad6/rom-kana/.gitkeep \ data/rules/test-bad7/metadata.json \ data/rules/test-bad7/keymap/hiragana.json \ data/rules/test-bad7/rom-kana/.gitkeep \ data/rules/test-bad8/metadata.json \ data/rules/test-bad8/keymap/.gitkeep \ data/rules/test-bad8/rom-kana/default.json \ data/rules/test-bad9/metadata.json \ data/rules/test-bad9/keymap/.gitkeep \ data/rules/test-bad9/rom-kana/default.json \ data/rules/test-bad10/metadata.json \ data/rules/test-bad10/keymap/.gitkeep \ data/rules/test-bad10/rom-kana/default.json \ data/models/sorted2/metadata.json \ data/models/sorted3/metadata.json \ data/models/text2/metadata.json \ data/models/text2/data.arpa \ data/models/text3/metadata.json \ data/models/text3/data.arpa \ conversions-initial.json \ conversions-sentence.json \ conversions-segment.json \ conversions-user-dictionary.json \ conversions-user-dictionary-phrase.json \ $(NULL) CLEANFILES = \ data/models/sorted2/data.input \ data/models/sorted2/data.1gram \ data/models/sorted2/data.1gram.index \ data/models/sorted2/data.2gram \ data/models/sorted2/data.2gram.filter \ data/models/sorted3/data.input \ data/models/sorted3/data.1gram \ data/models/sorted3/data.1gram.index \ data/models/sorted3/data.2gram \ data/models/sorted3/data.2gram.filter \ data/models/sorted3/data.3gram \ data/models/sorted3/data.3gram.filter \ valgrind.log.* \ *.stamp \ $(NULL) $(TESTS): rules.stamp models.stamp rules.stamp: for i in default kana nicola; do \ $(MKDIR_P) data/rules/$$i; \ cp $(top_builddir)/data/rules/$$i/metadata.json data/rules/$$i; \ for j in keymap rom-kana; do \ $(MKDIR_P) data/rules/$$i/$$j; \ cp $(top_srcdir)/data/rules/$$i/$$j/*.json data/rules/$$i/$$j; \ done; \ done touch $@ models.stamp: $(MKDIR_P) data/models/sorted2 test -f data/models/sorted2/metadata.json || \ cp -f $(srcdir)/data/models/sorted2/metadata.json data/models/sorted2 $(PYTHON) -B $(top_srcdir)/data/templates/libkkc-data/tools/sortlm.py \ $(srcdir)/data/models/text2/data.arpa data/models/sorted2/data $(PYTHON) -B $(top_srcdir)/data/templates/libkkc-data/tools/genfilter.py \ data/models/sorted2/data.2gram \ data/models/sorted2/data.2gram.filter \ 12 $(MKDIR_P) data/models/sorted3 test -f data/models/sorted3/metadata.json || \ cp -f $(srcdir)/data/models/sorted3/metadata.json data/models/sorted3 $(PYTHON) -B $(top_srcdir)/data/templates/libkkc-data/tools/sortlm.py \ $(srcdir)/data/models/text3/data.arpa data/models/sorted3/data $(PYTHON) -B $(top_srcdir)/data/templates/libkkc-data/tools/genfilter.py \ data/models/sorted3/data.2gram \ data/models/sorted3/data.2gram.filter \ 12 $(PYTHON) -B $(top_srcdir)/data/templates/libkkc-data/tools/genfilter.py \ data/models/sorted3/data.3gram \ data/models/sorted3/data.3gram.filter \ 10 touch $@ clean-local: -test -d data/rules/test-empty || rm -rf data/rules -test -d data/models/text2 || rm -rf data/models -rm -rf test-user-rule -rm -rf test-user-dictionary -rm -rf test-user-segment-dictionary -rm -rf test-user-sentence-dictionary -include $(top_srcdir)/git.mk libkkc-0.3.5/tests/candidate-list.vala000066400000000000000000000050651244473050600176650ustar00rootroot00000000000000class CandidateListTests : Kkc.TestCase { public CandidateListTests () { base ("CandidateList"); add_test ("properties", this.test_properties); add_test ("cursor_move", this.test_cursor_move); } void test_properties () { var candidates = new Kkc.CandidateList () as Object; int cursor_pos; int size; uint page_start; uint page_size; bool round; bool page_visible; candidates.get ("cursor-pos", out cursor_pos, "size", out size, "page-start", out page_start, "page-size", out page_size, "round", out round, "page-visible", out page_visible); candidates.set ("cursor-pos", cursor_pos, "page-start", page_start, "page-size", page_size, "round", round); } void test_cursor_move () { var candidates = new Kkc.CandidateList (); candidates.page_start = 2; candidates.page_size = 3; candidates.add (new Kkc.Candidate ("a", false, "1")); candidates.add (new Kkc.Candidate ("a", false, "2")); candidates.add (new Kkc.Candidate ("a", false, "3")); assert (!candidates.page_visible); candidates.cursor_down (); assert (!candidates.page_visible); candidates.cursor_down (); assert (candidates.page_visible); candidates.add (new Kkc.Candidate ("a", false, "4")); candidates.add (new Kkc.Candidate ("a", false, "5")); candidates.round = false; assert (!candidates.page_down ()); assert (!candidates.page_up ()); candidates.round = true; assert (candidates.page_down ()); assert (candidates.cursor_pos == 0); assert (candidates.page_up ()); assert (candidates.cursor_pos == 3); assert (candidates.select_at (1)); assert (candidates.cursor_pos == 4); candidates.first (); assert (candidates.next ()); assert (candidates.cursor_pos == 1); assert (candidates.previous ()); assert (candidates.cursor_pos == 0); assert (candidates.next ()); assert (candidates.next ()); assert (candidates.next ()); assert (candidates.cursor_pos == 0); } } int main (string[] args) { Test.init (ref args); Kkc.init (); TestSuite root = TestSuite.get_root (); root.add_suite (new CandidateListTests ().get_suite ()); Test.run (); return 0; } libkkc-0.3.5/tests/candidate.vala000066400000000000000000000016741244473050600167160ustar00rootroot00000000000000class CandidateTests : Kkc.TestCase { public CandidateTests () { base ("Candidate"); add_test ("properties", this.test_properties); } void test_properties () { var candidate = new Kkc.Candidate ("foo", false, "FOO", null, null); string midasi; bool okuri; string text; string annotation; string output; candidate.get ("midasi", out midasi, "okuri", out okuri, "text", out text, "annotation", out annotation, "output", out output); candidate.set ("text", text, "annotation", annotation, "output", output); } } int main (string[] args) { Test.init (ref args); Kkc.init (); TestSuite root = TestSuite.get_root (); root.add_suite (new CandidateTests ().get_suite ()); Test.run (); return 0; } libkkc-0.3.5/tests/context.vala000066400000000000000000000330461244473050600164640ustar00rootroot00000000000000class ContextTests : Kkc.TestCase { Kkc.Context context; public ContextTests () { base ("Context"); add_test ("properties", this.test_properties); add_test ("initial", this.test_initial); add_test ("kana", this.test_kana); add_test ("nicola", this.test_nicola); add_test ("sentence_conversion", this.test_sentence_conversion); add_test ("segment_conversion", this.test_segment_conversion); } void test_properties () { var input_mode = context.input_mode; context.input_mode = input_mode; var dictionaries = context.dictionaries; context.dictionaries = dictionaries; var style = context.punctuation_style; assert (style == Kkc.PunctuationStyle.JA_JA); context.punctuation_style = Kkc.PunctuationStyle.EN_EN; try { context.process_key_events (". RET"); } catch (Kkc.KeyEventFormatError e) { assert_not_reached (); } assert (context.poll_output () == "."); assert (context.punctuation_style == Kkc.PunctuationStyle.EN_EN); context.punctuation_style = style; context.reset (); context.clear_output (); var rule = context.typing_rule; assert (rule != null); assert (rule.metadata.name == "default"); var metadata = Kkc.RuleMetadata.find ("kana"); context.typing_rule = new Kkc.Rule (metadata); context.process_key_event (new Kkc.KeyEvent.from_x_event (132, 0x5c, 0)); context.typing_rule = rule; Kkc.CandidateList candidates; Kkc.SegmentList segments; string input; Kkc.KeyEventFilter filter; context.get ("dictionaries", out dictionaries, "candidates", out candidates, "segments", out segments, "input", out input, "input-mode", out input_mode, "punctuation-style", out style, "typing-rule", out rule, "key-event-filter", out filter); context.set ("dictionaries", dictionaries, "input-mode", input_mode, "punctuation-style", style, "typing-rule", rule); } void test_initial () { var srcdir = Environment.get_variable ("srcdir"); assert (srcdir != null); Kkc.TestUtils.do_conversions (context, Path.build_filename ( srcdir, "conversions-initial.json")); var input_mode = context.input_mode; try { context.process_key_events ("A-l"); } catch (Kkc.KeyEventFormatError e) { assert_not_reached (); } assert (context.input_mode == Kkc.InputMode.LATIN); context.reset (); context.clear_output (); context.input_mode = input_mode; try { context.process_key_events ("(alt a)"); } catch (Kkc.KeyEventFormatError e) { assert_not_reached (); } context.reset (); context.clear_output (); try { context.process_key_events ("(alt"); assert_not_reached (); } catch (Kkc.KeyEventFormatError e) { } context.reset (); context.clear_output (); try { context.process_key_events ("(("); assert_not_reached (); } catch (Kkc.KeyEventFormatError e) { } context.reset (); context.clear_output (); try { context.process_key_events (")"); assert_not_reached (); } catch (Kkc.KeyEventFormatError e) { } context.reset (); context.clear_output (); try { context.process_key_events ("\\("); } catch (Kkc.KeyEventFormatError e) { assert_not_reached (); } context.reset (); context.clear_output (); try { context.process_key_events ("foo"); assert_not_reached (); } catch (Kkc.KeyEventFormatError e) { } context.reset (); context.clear_output (); try { context.process_key_events ("a RET"); } catch (Kkc.KeyEventFormatError e) { assert_not_reached (); } assert (context.has_output ()); assert (context.peek_output () == "あ"); assert (context.has_output ()); context.reset (); context.clear_output (); try { context.process_key_events ("a i SPC RET a i SPC SPC"); } catch (Kkc.KeyEventFormatError e) { assert_not_reached (); } assert (context.candidates.size > 0); assert (context.candidates.get (0).output == "愛"); assert (context.candidates.get (0).annotation == "a"); context.reset (); context.clear_output (); try { context.process_key_events ("k C-g"); } catch (Kkc.KeyEventFormatError e) { assert_not_reached (); } context.reset (); context.clear_output (); try { context.process_key_events ("a a a"); assert (context.process_key_events ("Left")); assert (context.input_cursor_pos == 2); assert (context.process_key_events ("Right")); assert (context.input_cursor_pos == -1); assert (context.process_key_events ("Home")); assert (context.input_cursor_pos == 0); assert (context.process_key_events ("End")); assert (context.input_cursor_pos == 2); } catch (Kkc.KeyEventFormatError e) { assert_not_reached (); } context.reset (); context.clear_output (); try { context.process_key_events ("a a a RET"); assert (!context.process_key_events ("Left")); assert (!context.process_key_events ("Right")); assert (!context.process_key_events ("Home")); assert (!context.process_key_events ("End")); } catch (Kkc.KeyEventFormatError e) { assert_not_reached (); } context.reset (); context.clear_output (); } void test_kana () { var metadata = Kkc.RuleMetadata.find ("kana"); context.typing_rule = new Kkc.Rule (metadata); context.process_key_events ("4"); assert (context.input == "う"); context.process_key_events ("RET"); assert (context.poll_output () == "う"); context.clear_output (); context.reset (); context.process_key_events ("3"); assert (context.input == "あ"); context.process_key_events ("SPC"); assert (context.segments.get_output () == "阿"); context.clear_output (); context.reset (); // Check if rom-kana conversion finishes before moving cursor. context.process_key_events ("3 3 3 3 3 Left 4 Right"); assert (context.input == "ああああうあ"); context.clear_output (); context.reset (); context.process_key_events ("a a a !"); assert (context.input == "ちちち!"); context.clear_output (); context.reset (); context.process_key_events ("3 3 3 3 3 Left 4 5"); assert (context.input == "ああああうえあ"); assert (context.input_cursor_pos == 6); context.clear_output (); context.reset (); context.process_key_events ("3 3 3 3 3 Left Delete"); assert (context.input == "ああああ"); assert (context.input_cursor_pos == -1); context.clear_output (); context.reset (); } void test_nicola () { var metadata = Kkc.RuleMetadata.find ("nicola"); context.typing_rule = new Kkc.Rule (metadata); // single key - timeout context.process_key_events ("a"); Thread.usleep (200000); MainContext.default ().iteration (false); assert (context.input == "う"); context.clear_output (); context.reset (); // single key - release context.process_key_events ("a (release a)"); assert (context.input == "う"); context.clear_output (); context.reset (); // single key - overlap context.process_key_events ("a"); Thread.usleep (50000); MainContext.default ().iteration (false); context.process_key_events ("b"); assert (context.input == "う"); context.clear_output (); context.reset (); context.process_key_events ("a"); Thread.usleep (50000); MainContext.default ().iteration (false); context.process_key_events ("b"); Thread.usleep (200000); MainContext.default ().iteration (false); assert (context.input == "うへ"); context.clear_output (); context.reset (); // double key - shifted context.process_key_events ("a"); Thread.usleep (10000); MainContext.default ().iteration (false); context.process_key_events ("Muhenkan"); Thread.usleep (200000); MainContext.default ().iteration (false); assert (context.input == "を"); context.clear_output (); context.reset (); // double key - shifted reverse context.process_key_events ("Muhenkan"); Thread.usleep (10000); MainContext.default ().iteration (false); context.process_key_events ("a"); Thread.usleep (200000); MainContext.default ().iteration (false); assert (context.input == "を"); context.clear_output (); context.reset (); // double key - shifted expired context.process_key_events ("a"); Thread.usleep (60000); MainContext.default ().iteration (false); context.process_key_events ("Muhenkan"); assert (context.input == "う"); context.clear_output (); context.reset (); // triple key t1 <= t2 context.process_key_events ("a"); Thread.usleep (10000); MainContext.default ().iteration (false); context.process_key_events ("Muhenkan"); Thread.usleep (20000); MainContext.default ().iteration (false); context.process_key_events ("b"); assert (context.input == "を"); context.clear_output (); context.reset (); context.process_key_events ("a"); Thread.usleep (20000); MainContext.default ().iteration (false); context.process_key_events ("Muhenkan"); Thread.usleep (10000); MainContext.default ().iteration (false); context.process_key_events ("b"); assert (context.input == "うぃ"); context.clear_output (); context.reset (); context.process_key_events ("a"); Thread.usleep (10000); MainContext.default ().iteration (false); context.process_key_events ("Henkan"); Thread.usleep (20000); MainContext.default ().iteration (false); context.process_key_events ("b"); context.clear_output (); context.reset (); context.process_key_events ("a"); Thread.usleep (10000); MainContext.default ().iteration (false); context.process_key_events ("Henkan"); Thread.usleep (20000); MainContext.default ().iteration (false); context.process_key_events ("C-b"); context.clear_output (); context.reset (); context.process_key_events ("a"); Thread.usleep (10000); MainContext.default ().iteration (false); context.process_key_events ("Henkan"); Thread.usleep (20000); MainContext.default ().iteration (false); context.process_key_events ("(control release b)"); context.clear_output (); context.reset (); } void test_sentence_conversion () { var srcdir = Environment.get_variable ("srcdir"); assert (srcdir != null); Kkc.TestUtils.do_conversions (context, Path.build_filename ( srcdir, "conversions-sentence.json")); } void test_segment_conversion () { var srcdir = Environment.get_variable ("srcdir"); assert (srcdir != null); Kkc.TestUtils.do_conversions (context, Path.build_filename ( srcdir, "conversions-segment.json")); } public override void set_up () { try { var model = Kkc.LanguageModel.load ("sorted3"); context = new Kkc.Context (model); } catch (Kkc.LanguageModelError e) { stderr.printf ("%s\n", e.message); } try { var srcdir = Environment.get_variable ("srcdir"); assert (srcdir != null); var dictionary = new Kkc.SystemSegmentDictionary ( Path.build_filename (srcdir, "system-segment-dictionary")); context.dictionaries.add (dictionary); } catch (Error e) { stderr.printf ("%s\n", e.message); } context.dictionaries.add (new Kkc.EmptySegmentDictionary ()); } public override void tear_down () { context = null; } } int main (string[] args) { Intl.setlocale (LocaleCategory.ALL, ""); Test.init (ref args); Kkc.init (); TestSuite root = TestSuite.get_root (); root.add_suite (new ContextTests ().get_suite ()); Test.run (); return 0; } libkkc-0.3.5/tests/conversions-initial.json000066400000000000000000000046301244473050600210220ustar00rootroot00000000000000[ { "keys": "a TAB", "input": "あい", "output": "" }, { "keys": "a p u TAB", "input": "あぷ", "output": "" }, { "keys": "(shift a) TAB", "input": "あい", "output": "" }, { "keys": "a TAB RET", "input": "", "output": "あい" }, { "keys": "a TAB C-g", "input": "", "output": "" }, { "keys": "C-q a", "input": "a", "output": "" }, { "keys": "C-q (shift yen)", "input": "¥", "output": "" }, { "keys": "C-g", "input": "", "output": "" }, { "keys": "BackSpace", "input": "", "output": "" }, { "keys": "Delete", "input": "", "output": "" }, { "keys": "TAB", "input": "", "output": "" }, { "keys": "SPC", "input": "", "output": "" }, { "keys": "Left", "input": "", "output": "" }, { "keys": "Right", "input": "", "output": "" }, { "keys": "^", "input": "^", "output": "" }, { "keys": "k y BackSpace", "input": "k", "output": "" }, { "keys": "F7", "input": "", "output": "" }, { "keys": "k y o", "input": "きょ", "output": "" }, { "keys": "k y o DEL", "input": "", "output": "" }, { "keys": "k y o F7", "input": "キョ", "output": "" }, { "keys": "k y o F10", "input": "kyo", "output": "" }, { "keys": "k y o F10 F10", "input": "KYO", "output": "" }, { "keys": "A-@ k y o A-@", "input": "", "output": "" }, { "keys": "A-l k y o F10 A-k", "input": "kyo", "output": "" }, { "keys": "A-l A-l A A-k", "input": "A", "output": "" }, { "keys": "k y o F9", "input": "kyo", "output": "" }, { "keys": "k y o F10 F9", "input": "kyo", "output": "" }, { "keys": "k y o F9 RET", "input": "", "output": "kyo" }, { "keys": "w a t a s h i F10 n o", "input": "の", "output": "watashi" }, { "keys": "a C-c", "input": "", "output": "" }, { "keys": "a i u e o Left Left Right Right BackSpace", "input": "あいうえ", "output": "" }, { "keys": "a i u e o Left Left Delete", "input": "あいうお", "output": "" }, { "keys": "k a k i k u k e k Left Left BackSpace", "input": "かくけ", "output": "" }, { "keys": "a i u e o Left BackSpace i", "input": "あいういお", "output": "" }, { "keys": "a i u e o Left BackSpace k", "input": "あいうkお", "output": "" }, { "keys": "a i Left Left Left Left BackSpace k", "input": "kあい", "output": "" }, { "keys": "a i K", "input": "あいK", "output": "" }, { "keys": "t e s t F10", "auto_correct": false, "input": "test", "output": "" }, { "keys": "t e s t F7", "auto_correct": false, "input": "テst", "output": "" } ] libkkc-0.3.5/tests/conversions-segment.json000066400000000000000000000160231244473050600210320ustar00rootroot00000000000000[ { "keys": "w a t a s h i n o n a m a e h a n a k a n o d e s u ", "input": "わたしのなまえはなかのです", "segments": "", "segments_size": 0, "segments_cursor_pos": -1, "output": "", "candidates_size": 0, "input_cursor_pos": -1 }, { "keys": "w a t a s h i n o n a m a e h a n a k a n o d e s u SPC", "input": "わたしのなまえはなかのです", "segments": "私の名前は中野です", "segments_size": 3, "segments_cursor_pos": 0, "output": "", "candidates_size": 0, "input_cursor_pos": -1 }, { "keys": "w a t a s h i n o n a m a e h a n a k a n o d e s u SPC Muhenkan", "input": "わたしのなまえはなかのです", "segments": "わたしの名前は中野です", "segments_size": 3, "segments_cursor_pos": 0, "output": "", "candidates_size": 0, "input_cursor_pos": -1 }, { "keys": "w a t a s h i n o n a m a e h a n a k a n o d e s u SPC RET", "input": "", "segments": "", "segments_size": 0, "segments_cursor_pos": -1, "output": "私の名前は中野です", "candidates_size": 0, "input_cursor_pos": -1 }, { "keys": "w a t a s h i n o n a m a e h a n a k a n o d e s u SPC a", "input": "あ", "segments": "", "segments_size": 0, "segments_cursor_pos": -1, "output": "私の名前は中野です", "candidates_size": 0, "input_cursor_pos": -1 }, { "keys": "w a t a s h i n o n a m a e h a n a k a n o d e s u SPC (shift a)", "input": "あ", "segments": "", "segments_size": 0, "segments_cursor_pos": -1, "output": "私の名前は中野です", "candidates_size": 0, "input_cursor_pos": -1 }, { "keys": "w a t a s h i n o n a m a e h a n a k a n o d e s u SPC (control a)", "input": "", "segments": "", "segments_size": 0, "segments_cursor_pos": -1, "output": "私の名前は中野です", "candidates_size": 0, "input_cursor_pos": -1 }, { "keys": "w a t a s h i n o n a m a e h a n a k a n o d e s u SPC TAB", "input": "", "segments": "", "segments_size": 0, "segments_cursor_pos": -1, "output": "私の名前は中野です", "candidates_size": 0, "input_cursor_pos": -1 }, { "keys": "w a t a s h i n o n a m a e h a n a k a n o d e s u SPC Left", "input": "わたしのなまえはなかのです", "segments": "私の名前は中野です", "segments_size": 3, "segments_cursor_pos": 0, "output": "", "candidates_size": 0, "input_cursor_pos": -1 }, { "keys": "w a t a s h i n o n a m a e h a n a k a n o d e s u SPC Right", "input": "わたしのなまえはなかのです", "segments": "私の名前は中野です", "segments_size": 3, "segments_cursor_pos": 1, "output": "", "candidates_size": 0, "input_cursor_pos": -1 }, { "keys": "w a t a s h i n o n a m a e h a n a k a n o d e s u SPC Right C-Right", "input": "わたしのなまえはなかのです", "segments": "私のなまえはなかのです", "segments_size": 3, "segments_cursor_pos": 1, "output": "", "candidates_size": 0, "input_cursor_pos": -1 }, { "keys": "w a t a s h i n o n a m a e h a n a k a n o d e s u SPC Right Right C-Left", "input": "わたしのなまえはなかのです", "segments": "私の名前はなかのです", "segments_size": 4, "segments_cursor_pos": 2, "output": "", "candidates_size": 0, "input_cursor_pos": -1 }, { "keys": "w a t a s h i n o n a m a e h a n a k a n o d e s u SPC SPC", "input": "わたしのなまえはなかのです", "segments": "わたしの名前は中野です", "segments_size": 3, "segments_cursor_pos": 0, "output": "", "candidates_size": 4, "input_cursor_pos": -1 }, { "keys": "w a t a s h i n o n a m a e h a n a k a n o d e s u SPC SPC Up", "input": "わたしのなまえはなかのです", "segments": "私の名前は中野です", "segments_size": 3, "segments_cursor_pos": 0, "output": "", "candidates_size": 4, "input_cursor_pos": -1 }, { "keys": "w a t a s h i n o n a m a e h a n a k a n o d e s u SPC SPC C-g", "input": "わたしのなまえはなかのです", "segments": "", "segments_size": 0, "segments_cursor_pos": -1, "output": "", "candidates_size": 0, "input_cursor_pos": -1 }, { "keys": "w a t a s h i n o n a m a e h a n a k a n o d e s u SPC SPC Right", "input": "わたしのなまえはなかのです", "segments": "わたしの名前は中野です", "segments_size": 3, "segments_cursor_pos": 1, "output": "", "candidates_size": 4, "input_cursor_pos": -1 }, { "keys": "w a t a s h i n o n a m a e h a n a k a n o d e s u SPC SPC Right SPC", "input": "わたしのなまえはなかのです", "segments": "わたしのなまえは中野です", "segments_size": 3, "segments_cursor_pos": 1, "output": "", "candidates_size": 4, "input_cursor_pos": -1 }, { "keys": "w a t a s h i n o n a m a e h a n a k a n o d e s u SPC SPC Right SPC SPC", "input": "わたしのなまえはなかのです", "segments": "わたしのナマエハ中野です", "segments_size": 3, "segments_cursor_pos": 1, "output": "", "candidates_size": 4, "input_cursor_pos": -1 }, { "keys": "w a t a s h i n o n a m a e h a n a k a n o d e s u SPC Right Right C-Left SPC RET", "input": "", "segments": "", "segments_size": 0, "segments_cursor_pos": -1, "output": "私の名前は中野です", "candidates_size": 0, "input_cursor_pos": -1 }, { "keys": "w a t a s h i n o n a m a e h a n a k a n o d e s u SPC Right F10", "input": "わたしのなまえはなかのです", "segments": "私のnamaeha中野です", "segments_size": 3, "segments_cursor_pos": 1, "output": "", "candidates_size": 0, "input_cursor_pos": -1 }, { "keys": "w a t a s h i n o n a m a e h a n a k a n o d e s u SPC F10 F10", "input": "わたしのなまえはなかのです", "segments": "WATASHINO名前は中野です", "segments_size": 3, "segments_cursor_pos": 0, "output": "", "candidates_size": 0, "input_cursor_pos": -1 } ] libkkc-0.3.5/tests/conversions-sentence.json000066400000000000000000000023701244473050600211740ustar00rootroot00000000000000[ { "keys": "k y u u k a SPC C-Right C-Right C-Right F10", "input": "きゅうか", "segments": "kyuuka", "segments_size": 1, "segments_cursor_pos": 0, "output": "", "candidates_size": 0, "input_cursor_pos": -1 }, { "keys": "1 a n SPC C-Right C-Right SPC", "input": "1あん", "segments": "一案", "segments_size": 1, "segments_cursor_pos": 0, "output": "", "candidates_size": 7, "input_cursor_pos": -1 }, { "keys": "a i SPC", "input": "あい", "segments": "愛", "segments_size": 1, "segments_cursor_pos": 0, "output": "", "candidates_size": 0, "input_cursor_pos": -1 }, { "keys": "a i SPC K", "input": "K", "segments": "", "segments_size": 0, "segments_cursor_pos": -1, "output": "愛", "candidates_size": 0, "input_cursor_pos": -1 }, { "keys": "u r u SPC", "input": "うる", "segments": "売る", "segments_size": 1, "segments_cursor_pos": 0, "output": "", "candidates_size": 0, "input_cursor_pos": -1 } ] libkkc-0.3.5/tests/conversions-user-dictionary-phrase.json000066400000000000000000000010551244473050600237700ustar00rootroot00000000000000[ { "keys": "k a r e n o n a m a e h a n a k a n o d e s u SPC Right Right C-Left C-Left SPC RET", "input": "", "segments": "", "segments_size": 0, "segments_cursor_pos": -1, "output": "彼の名前は中のです" }, { "keys": "w a t a s h i n o n a m a e h a n a k a n o d e s u SPC", "input": "わたしのなまえはなかのです", "segments": "私の名前は中のです", "segments_size": 3, "segments_cursor_pos": 0, "output": "" } ] libkkc-0.3.5/tests/conversions-user-dictionary.json000066400000000000000000000032601244473050600225100ustar00rootroot00000000000000[ { "keys": "w a t a s h i n o n a m a e h a n a k a n o d e s u SPC", "input": "わたしのなまえはなかのです", "segments": "私の名前は中野です", "segments_size": 3, "segments_cursor_pos": 0, "output": "" }, { "keys": "w a t a s h i n o n a m a e h a n a k a n o d e s u SPC Right Right C-Left RET", "input": "", "segments": "", "segments_size": 0, "segments_cursor_pos": -1, "output": "私の名前はなかのです" }, { "keys": "w a t a s h i n o n a m a e h a n a k a n o d e s u SPC", "input": "わたしのなまえはなかのです", "segments": "私の名前はなかのです", "segments_size": 2, "segments_cursor_pos": 0, "output": "" }, { "keys": "w a t a s h i n o n a m a e h a n a k a n o d e s u SPC SPC RET", "input": "", "segments": "", "segments_size": 0, "segments_cursor_pos": -1, "output": "わたしの名前はなかのです" }, { "keys": "w a t a s h i n o n a m a e h a n a k a n o d e s u SPC", "input": "わたしのなまえはなかのです", "segments": "わたしの名前はなかのです", "segments_size": 2, "segments_cursor_pos": 0, "output": "" }, { "keys": "w a t a s h i n o n a m a e h a n a k a n o d e s u SPC Right SPC Right Right SPC", "input": "わたしのなまえはなかのです", "segments": "わたしのなまえはなかのです", "segments_size": 2, "segments_cursor_pos": 1, "output": "" } ] libkkc-0.3.5/tests/data/000077500000000000000000000000001244473050600150365ustar00rootroot00000000000000libkkc-0.3.5/tests/data/models/000077500000000000000000000000001244473050600163215ustar00rootroot00000000000000libkkc-0.3.5/tests/data/models/sorted2/000077500000000000000000000000001244473050600177035ustar00rootroot00000000000000libkkc-0.3.5/tests/data/models/sorted2/metadata.json000066400000000000000000000001461244473050600223570ustar00rootroot00000000000000{ "name": "sorted2", "description": "binary based 2-gram dictionary", "type": "sorted2" } libkkc-0.3.5/tests/data/models/sorted3/000077500000000000000000000000001244473050600177045ustar00rootroot00000000000000libkkc-0.3.5/tests/data/models/sorted3/metadata.json000066400000000000000000000001461244473050600223600ustar00rootroot00000000000000{ "name": "sorted3", "description": "binary based 3-gram dictionary", "type": "sorted3" } libkkc-0.3.5/tests/data/models/text2/000077500000000000000000000000001244473050600173675ustar00rootroot00000000000000libkkc-0.3.5/tests/data/models/text2/data.arpa000066400000000000000000003764021244473050600211610ustar00rootroot00000000000000 \data\ ngram 1=1122 ngram 2=2341 \1-grams: -1.850864 -99 -0.556220 -3.213074 ”/“ -0.045635 -1.591237 、/、 -0.070026 -2.290157 「/「 -0.045635 -2.138908 」/」 -0.209202 -2.767151 あ/あ -0.618221 -3.339621 あ/ア -0.045635 -3.339621 あいだ/間 -0.045635 -3.339621 あいて/相手 -0.045635 -3.339621 あいてむ/アイテム -0.045635 -3.339621 あいりっしゅ/アイリッシュ -0.045635 -3.339621 あいるらんど/アイルランド -0.045635 -3.339621 あお/青 -0.045635 -3.339621 あか/あか -0.045635 -3.339621 あかね/茜 -0.045635 -3.339621 あきひろ/空広 -0.045635 -3.339621 あこがれ/憧れ -0.045635 -3.339621 あさ/朝 -0.045635 -3.339621 あさくら/朝倉 -0.045635 -3.339621 あた/あた -0.045635 -3.339621 あたえ/与え -0.045635 -3.339621 あたり/あたり -0.045635 -3.339621 あっか/悪化 -0.045635 -3.339621 あっぷ/アップ -0.045635 -3.339621 あつま/集ま -0.045635 -2.892027 あと/後 -0.045635 -3.339621 あにか/アニカ -0.045635 -3.339621 あにめ/アニメ -0.045635 -2.892027 あふりか/アフリカ -0.045635 -3.339621 あぶどぅん/アブドゥン -0.045635 -3.339621 あぶらむし/アブラムシ -0.045635 -3.339621 あぷろーち/アプローチ -0.045635 -3.339621 あまーすと/アマースト -0.045635 -3.213074 あめりか/アメリカ -0.045635 -3.339621 あやし/怪し -0.045635 -3.339621 あらぶ/アラブ -0.045635 -3.339621 あらわ/表 -0.045635 -3.339621 ある/ある -0.045635 -3.339621 あるばむ/アルバム -0.045635 -3.339621 あわー/アワー -0.045635 -3.339621 あんな/アンナ -0.045635 -2.047146 い/い -0.387060 -2.767151 い/位 -0.045635 -3.339621 い/行 -0.045635 -3.213074 い/言 -0.165523 -3.339621 いぇーがん/イェーガン -0.045635 -3.339621 いか/生か -0.045635 -3.339621 いがい/以外 -0.045635 -3.339621 いき/生き -0.045635 -3.339621 いぎりす/イギリス -0.045635 -3.339621 いく/いく -0.045635 -3.339621 いし/石 -0.045635 -3.339621 いしょう/衣装 -0.045635 -3.339621 いじ/意地 -0.045635 -3.339621 いじゅう/移住 -0.045635 -3.339621 いた/至 -0.045635 -3.339621 いたりあ/イタリア -0.045635 -3.339621 いだ/抱 -0.045635 -3.339621 いち/一 -0.045635 -3.213074 いち/位置 -0.164647 -3.339621 いちよ/一代 -0.045635 -3.339621 いっしゅ/一種 -0.045635 -3.339621 いっしょ/一緒 -0.045635 -3.339621 いってい/一定 -0.045635 -3.339621 いのち/命 -0.045635 -3.339621 いま/今 -0.045635 -3.339621 いみ/意味 -0.045635 -3.213074 いりょう/医療 -0.045635 -3.339621 いわ/祝 -0.045635 -3.339621 いわゆる/いわゆる -0.045635 -3.339621 いん/員 -0.045635 -3.213074 いんたい/引退 -0.045635 -3.339621 いんちょう/院長 -0.045635 -3.339621 いんなー/インナー -0.045635 -3.339621 いんよう/飲用 -0.045635 -2.767151 う/う -0.045635 -3.339621 うぃーくりーらんきんぐ/ウィークリーランキング -0.045635 -3.339621 うぇい/ウェイ -0.045635 -3.339621 うぇすたん/ウェスタン -0.045635 -3.339621 うえ/うえ -0.045635 -3.339621 うえ/上 -0.045635 -3.339621 うえるず/ウエルズ -0.045635 -3.339621 うかがえ/伺え -0.045635 -3.339621 うけ/受け -0.164647 -3.339621 うごか/動か -0.045635 -3.339621 うち/うち -0.045635 -3.339621 うちとみ/内冨 -0.045635 -3.339621 うちのめ/打ちのめ -0.045635 -3.339621 うっど/ウッド -0.045635 -3.339621 うつ/移 -0.045635 -3.339621 うなぎ/鰻 -0.045635 -3.339621 うみず/海津 -0.045635 -3.339621 うら/裏 -0.045635 -3.339621 うれし/うれし -0.045635 -3.339621 うんえい/運営 -0.045635 -3.339621 うんこう/運行 -0.045635 -3.339621 え/え -0.045635 -3.339621 え/得 -0.045635 -3.339621 えいいちろう/英一郎 -0.045635 -3.339621 えいが/映画 -0.045635 -3.339621 えいきょう/影響 -0.045635 -3.339621 えいじゃっくす/エイジャックス -0.045635 -3.339621 えいせい/衛生 -0.045635 -3.339621 えいぞう/映像 -0.045635 -3.339621 えいだっく/エイダック -0.045635 -2.767151 えき/駅 -0.045635 -3.339621 えきがく/疫学 -0.045635 -3.339621 えぎ/榎木 -0.045635 -3.339621 えさ/餌 -0.045635 -3.339621 えぴそーど/エピソード -0.045635 -3.339621 えら/選 -0.045635 -3.339621 えん/演 -0.045635 -3.339621 えんげき/演劇 -0.045635 -3.213074 えんじん/エンジン -0.045635 -3.339621 えんだん/縁談 -0.045635 -2.892027 お/お -0.394024 -3.339621 お/逐 -0.045635 -3.339621 おう/王 -0.045635 -3.339621 おうごん/黄金 -0.045635 -2.892027 おお/多 -0.164647 -3.339621 おおいた/大分 -0.045635 -3.339621 おおきな/大きな -0.045635 -3.339621 おおく/多く -0.045635 -3.339621 おおさか/大阪 -0.045635 -3.339621 おおしま/大島 -0.045635 -3.339621 おおつき/大槻 -0.045635 -3.339621 おぐら/小倉 -0.045635 -3.339621 おけ/おけ -0.239144 -2.591123 おこな/行 -0.217932 -3.339621 おそく/遅く -0.045635 -3.339621 おとずれ/訪れ -0.045635 -3.339621 おにごっこ/鬼ごっこ -0.045635 -2.892027 おふぃす/オフィス -0.045635 -3.339621 おも/思 -0.045635 -3.339621 おや/親 -0.045635 -3.339621 および/および -0.045635 -3.339621 および/及び -0.045635 -3.213074 おりこん/オリコン -0.045635 -3.339621 おりじんきー/オリジンキー -0.045635 -3.339621 おわ/終わ -0.045635 -3.339621 おん/オン -0.045635 -3.339621 おんがく/音楽 -0.045635 -3.339621 おんせん/温泉 -0.045635 -3.339621 おんど/温度 -0.045635 -3.339621 おんなのこ/女の子 -0.045635 -3.339621 おーすとらりあ/オーストラリア -0.045635 -2.591123 か/か -0.164647 -3.339621 か/化 -0.045635 -3.339621 か/家 -0.045635 -3.213074 か/日 -0.239144 -3.213074 か/書 -0.045635 -3.213074 か/科 -0.045635 -3.339621 か/駆 -0.045635 -3.339621 かい/会 -0.045635 -3.339621 かいきょう/海峡 -0.045635 -3.213074 かいさい/開催 -0.045635 -3.213074 かいしゃ/会社 -0.045635 -3.339621 かいしゅう/改修 -0.045635 -3.339621 かいどう/街道 -0.045635 -3.339621 かいふく/回復 -0.045635 -3.339621 かえ/変え -0.045635 -3.339621 かかわ/かかわ -0.045635 -3.339621 かかわ/関わ -0.045635 -3.339621 かがく/科学 -0.045635 -3.339621 かくち/各地 -0.045635 -3.339621 かくとく/獲得 -0.164647 -3.339621 かけ/かけ -0.045635 -3.339621 かけ/懸け -0.045635 -3.339621 かけい/家系 -0.045635 -3.339621 かげ/影 -0.045635 -3.339621 かさい/火災 -0.045635 -3.339621 かず/数 -0.045635 -3.339621 かせぎ/稼ぎ -0.045635 -3.339621 かせつ/仮説 -0.045635 -3.339621 かた/語 -0.045635 -3.339621 かっ/かっ -0.339110 -3.339621 かつて/かつて -0.045635 -3.339621 かつどう/活動 -0.045635 -3.339621 かなか/かなか -0.045635 -3.339621 かねず/かねず -0.045635 -3.339621 かのう/可能 -0.045635 -3.339621 かぶしき/株式 -0.045635 -3.339621 かみのうがね/上納金 -0.045635 -3.339621 かめむし/カメムシ -0.045635 -2.415074 から/から -0.045635 -3.339621 からき/唐木 -0.045635 -3.213074 かれ/彼 -0.045635 -3.339621 かれっじ/カレッジ -0.045635 -3.339621 かろう/家老 -0.045635 -3.339621 かわ/変わ -0.045635 -3.339621 かわいらし/可愛らし -0.045635 -3.339621 かん/間 -0.045635 -3.339621 かん/館 -0.045635 -3.213074 かんがえ/考え -0.045635 -3.339621 かんきょう/環境 -0.045635 -3.213074 かんけい/関係 -0.045635 -3.213074 かんこく/韓国 -0.239144 -3.339621 かんさい/関西 -0.045635 -3.339621 かんしょ/官所 -0.045635 -3.339621 かんじゃ/患者 -0.045635 -3.339621 かんたい/艦隊 -0.045635 -3.339621 かんちがい/勘違い -0.045635 -3.213074 かんとりー/カントリー -0.045635 -3.339621 かんめい/艦名 -0.045635 -3.339621 かんりょう/完了 -0.045635 -3.339621 かんれん/関連 -0.045635 -1.636994 が/が -0.138588 -3.213074 がいこく/外国 -0.239144 -3.213074 がいしゃ/会社 -0.045635 -3.339621 がいちゅう/害虫 -0.045635 -3.339621 がいひ/外皮 -0.045635 -3.339621 がいよう/概要 -0.045635 -3.339621 がくえん/学園 -0.045635 -3.339621 がくせい/学生 -0.045635 -3.339621 がす/ガス -0.239144 -3.339621 がっかい/学会 -0.045635 -2.767151 がっこう/学校 -0.045635 -2.591123 がつ/月 -0.131700 -3.339621 がまーる/ガマール -0.045635 -3.339621 がめとさいと/ガメトサイト -0.045635 -3.339621 がんつ/ガンツ -0.045635 -3.339621 がんねん/元年 -0.045635 -3.339621 がーでぃあん/ガーディアン -0.045635 -3.213074 き/き -0.045635 -3.339621 き/切 -0.045635 -3.339621 きいろあざみうま/キイロアザミウマ -0.045635 -3.213074 きかん/期間 -0.045635 -3.339621 きかん/機関 -0.045635 -2.892027 きけん/危険 -0.045635 -3.339621 きしゃ/記者 -0.045635 -3.339621 きじゅん/基準 -0.045635 -3.339621 きせ/着せ -0.045635 -3.339621 きそ/基礎 -0.045635 -3.339621 きた/北 -0.045635 -3.339621 きち/基地 -0.045635 -3.339621 きちょう/基調 -0.045635 -3.339621 きつりん/吉林 -0.045635 -3.339621 きめ/決め -0.045635 -3.213074 きゃらくたー/キャラクター -0.045635 -3.339621 きゅうしゅう/九州 -0.045635 -3.339621 きょういく/教育 -0.045635 -3.339621 きょういん/教員 -0.045635 -3.339621 きょうえん/共演 -0.045635 -3.339621 きょうかい/協会 -0.045635 -3.339621 きょうみ/興味 -0.045635 -3.339621 きょうわ/共和 -0.045635 -3.339621 きょく/局 -0.045635 -3.339621 きょくたん/極端 -0.045635 -3.339621 きょしゅ/挙手 -0.045635 -3.339621 きり/切り -0.045635 -3.339621 きれ/きれ -0.045635 -3.213074 きろく/記録 -0.164647 -3.339621 きん/金 -0.045635 -3.339621 きんだい/近代 -0.045635 -3.339621 きんむ/勤務 -0.045635 -2.892027 ぎいん/議員 -0.045635 -3.339621 ぎかい/議会 -0.045635 -3.339621 ぎむざ/ギムザ -0.045635 -3.339621 ぎょうむ/業務 -0.045635 -3.339621 ぎょらい/魚雷 -0.045635 -2.369325 く/く -0.101077 -3.339621 く/区 -0.045635 -3.339621 く/食 -0.045635 -3.339621 くうはく/  -0.045635 -3.339621 くさかげろう/クサカゲロウ -0.045635 -3.339621 くせ/癖 -0.045635 -3.339621 くにのみや/久邇宮 -0.045635 -3.213074 くび/首 -0.045635 -3.339621 くぶん/区分 -0.045635 -3.339621 くみあわせ/組み合わせ -0.045635 -3.339621 くりかえ/繰り返 -0.045635 -3.339621 くる/くる -0.045635 -3.339621 くるせいど/クルセイド -0.045635 -3.339621 くれ/くれ -0.045635 -3.339621 くれない/紅 -0.045635 -3.339621 くろす/クロス -0.045635 -3.339621 くん/勲 -0.045635 -3.339621 くんしょう/勲章 -0.045635 -3.339621 ぐるー/グルー -0.045635 -3.213074 ぐん/軍 -0.045635 -3.339621 ぐんぶ/軍部 -0.045635 -3.213074 けい/計 -0.045635 -3.339621 けいけん/経験 -0.045635 -3.339621 けいごうきん/軽合金 -0.045635 -3.339621 けいしき/形式 -0.045635 -3.339621 けいじ/刑事 -0.045635 -3.339621 けいそう/係争 -0.045635 -3.339621 けいたい/形態 -0.045635 -3.339621 けいば/競馬 -0.045635 -3.339621 けいりょう/軽量 -0.045635 -3.339621 けっきゅう/血球 -0.045635 -3.339621 けっこん/結婚 -0.045635 -3.339621 けっせい/結成 -0.045635 -3.339621 けつ/血 -0.045635 -3.339621 けつだん/決断 -0.045635 -3.213074 けん/剣 -0.045635 -2.892027 けん/県 -0.045635 -2.767151 けんきゅう/研究 -0.045635 -3.339621 けんさく/検索 -0.045635 -3.339621 けんしゅつ/検出 -0.045635 -3.339621 けんぞう/建造 -0.045635 -3.339621 けんとう/検討 -0.045635 -3.339621 げいのう/芸能 -0.045635 -3.339621 げっかん/月間 -0.045635 -3.339621 げつれい/月例 -0.045635 -3.339621 げん/現 -0.045635 -3.213074 げんいん/原因 -0.045635 -3.339621 げんえき/現役 -0.045635 -2.892027 げんざい/現在 -0.045635 -3.339621 こ/子 -0.045635 -3.339621 こう/公 -0.045635 -3.339621 こうい/行為 -0.045635 -3.339621 こうえん/公園 -0.045635 -3.339621 こうし/講師 -0.045635 -3.339621 こうしゃ/校舎 -0.045635 -3.339621 こうせい/光成 -0.045635 -3.339621 こうせい/構成 -0.045635 -3.339621 こうぞう/構造 -0.045635 -3.339621 こうち/高知 -0.045635 -3.213074 こうつう/交通 -0.045635 -3.339621 こうでら/国府 -0.045635 -3.339621 こうとう/高等 -0.045635 -3.339621 こうふく/降伏 -0.045635 -3.339621 こうめい/孝明 -0.045635 -3.339621 こうりゃん/コウリャン -0.045635 -3.339621 こうれい/高齢 -0.045635 -3.339621 こえ/超え -0.045635 -3.339621 こく/国 -0.045635 -3.339621 こくさい/国際 -0.045635 -3.339621 こくりつ/国立 -0.045635 -3.339621 こしゅう/湖州 -0.045635 -2.415074 こと/こと -0.301811 -3.213074 こと/事 -0.239144 -3.339621 ことな/異な -0.045635 -3.339621 ことば/言葉 -0.045635 -3.339621 こども/子供 -0.045635 -3.213074 この/この -0.045635 -3.339621 こふん/古墳 -0.045635 -3.339621 こぼこ/こぼこ -0.045635 -3.339621 こみっく/コミック -0.045635 -3.213074 これ/これ -0.164647 -3.213074 ころ/頃 -0.045635 -3.339621 こんこーど/コンコード -0.045635 -3.339621 こんてんつ/コンテンツ -0.045635 -3.339621 こんぴゅーた/コンピュータ -0.045635 -3.339621 こーひー/コーヒー -0.045635 -2.670279 ご/後 -0.045635 -2.767151 ごう/号 -0.131700 -3.339621 ごうだつ/強奪 -0.045635 -3.339621 ごうりゅう/合流 -0.045635 -3.339621 ごと/毎 -0.045635 -3.339621 ごろ/ごろ -0.045635 -1.954399 さ/さ -0.956382 -3.339621 さい/歳 -0.045635 -3.339621 さいあく/最悪 -0.045635 -3.339621 さいえんてぃすと/サイエンティスト -0.045635 -3.339621 さいかい/再会 -0.045635 -3.213074 さいしゅう/最終 -0.045635 -3.339621 さいしょ/最初 -0.045635 -3.339621 さいしょう/崔鍾 -0.045635 -3.339621 さいしん/最新 -0.045635 -3.339621 さいと/サイト -0.045635 -3.339621 さいよう/採用 -0.045635 -3.213074 さくひん/作品 -0.045635 -3.339621 さしず/指図 -0.045635 -3.339621 さっかー/サッカー -0.045635 -3.339621 さるがばば/猿ヶ馬場 -0.045635 -3.339621 さんか/参加 -0.045635 -3.339621 さんず/サンズ -0.045635 -3.339621 さんせい/賛成 -0.045635 -3.339621 さんちょう/山頂 -0.045635 -3.339621 さんでー/サンデー -0.045635 -3.339621 ざいにち/在日 -0.045635 -3.213074 ざざーぐ/ザザーグ -0.045635 -3.339621 ざる/ざる -0.045635 -1.645111 し/し -0.716756 -3.339621 し/史 -0.045635 -3.339621 し/市 -0.045635 -3.213074 し/知 -0.164647 -3.339621 しあい/試合 -0.045635 -3.339621 しい/強い -0.045635 -3.339621 しいき/市域 -0.045635 -3.339621 しかい/司会 -0.045635 -3.339621 しかけ/仕掛け -0.045635 -3.339621 しかし/しかし -0.045635 -3.339621 しがん/志願 -0.045635 -3.339621 しき/指揮 -0.045635 -3.339621 しきゅう/支給 -0.045635 -3.339621 しじ/指示 -0.045635 -3.339621 しすてむ/システム -0.045635 -3.213074 しぜん/自然 -0.045635 -3.339621 しぞんと/シゾント -0.045635 -3.339621 しっこう/執行 -0.045635 -3.339621 しつ/室 -0.045635 -3.213074 しつ/質 -0.239144 -3.339621 してい/姉弟 -0.045635 -3.339621 してい/指定 -0.045635 -3.339621 しどう/指導 -0.045635 -3.339621 しなりお/シナリオ -0.045635 -3.339621 しはん/市販 -0.045635 -3.339621 しひょう/指標 -0.045635 -3.339621 しほう/司法 -0.045635 -3.339621 しぼう/死亡 -0.045635 -3.339621 しまい/姉妹 -0.045635 -3.339621 しまだ/島田 -0.045635 -3.339621 しまなか/島中 -0.045635 -3.339621 しめ/示 -0.045635 -2.767151 しゃ/社 -0.131700 -2.767151 しゃ/者 -0.164647 -3.339621 しゃかい/社会 -0.045635 -3.339621 しゃべ/喋 -0.045635 -3.339621 しゃりょう/車両 -0.045635 -3.339621 しゃんはい/上海 -0.045635 -3.213074 しゅ/主 -0.045635 -3.213074 しゅい/首位 -0.045635 -3.339621 しゅうかん/週刊 -0.045635 -3.339621 しゅうじ/修二 -0.045635 -3.339621 しゅうだん/集団 -0.045635 -3.339621 しゅうちゃく/執着 -0.045635 -3.339621 しゅうへい/州兵 -0.045635 -3.339621 しゅうへん/周辺 -0.045635 -3.339621 しゅうり/修理 -0.045635 -3.213074 しゅうりょう/終了 -0.045635 -3.339621 しゅぎ/主義 -0.045635 -3.339621 しゅじん/主人 -0.045635 -3.339621 しゅっこう/出航 -0.045635 -3.339621 しゅっぱつ/出発 -0.045635 -3.213074 しゅっぱん/出版 -0.045635 -3.213074 しゅつじょう/出場 -0.045635 -3.339621 しゅよう/主要 -0.045635 -3.339621 しゅりゅう/手榴 -0.045635 -3.339621 しゅヴぇーげりん/シュヴェーゲリン -0.045635 -3.213074 しょう/小 -0.045635 -2.892027 しょう/省 -0.045635 -2.892027 しょう/賞 -0.045635 -3.339621 しょうかい/紹介 -0.045635 -3.339621 しょうがく/小学 -0.045635 -3.339621 しょうきょく/消極 -0.045635 -3.339621 しょうじょ/少女 -0.045635 -3.339621 しょうせつ/小説 -0.045635 -3.339621 しょうそく/消息 -0.045635 -2.767151 しょうねん/少年 -0.131700 -3.339621 しょうめん/正面 -0.045635 -3.339621 しょうわ/昭和 -0.045635 -3.339621 しょく/植 -0.045635 -3.339621 しょく/食 -0.045635 -3.339621 しょくいん/職印 -0.045635 -3.339621 しょくばい/触媒 -0.045635 -3.339621 しょけい/処刑 -0.045635 -3.339621 しょっく/ショック -0.045635 -3.213074 しよう/使用 -0.045635 -3.339621 しらせ/報せ -0.045635 -3.339621 しれい/司令 -0.045635 -3.339621 しろ/白 -0.045635 -3.339621 しろう/四郎 -0.045635 -3.339621 しんかい/晋海 -0.045635 -3.339621 しんき/新規 -0.045635 -3.339621 しんけん/真剣 -0.045635 -3.339621 しんしゅつ/進出 -0.045635 -3.339621 しんじん/新人 -0.045635 -3.339621 しんすけ/紳助 -0.045635 -3.339621 しんだん/診断 -0.045635 -3.339621 しんとう/浸透 -0.045635 -3.339621 しんにゅう/侵入 -0.045635 -3.339621 しんりゃく/侵略 -0.045635 -3.339621 しんわ/神話 -0.045635 -3.213074 しーずん/シーズン -0.045635 -3.339621 じ/じ -0.045635 -3.339621 じ/寺 -0.045635 -3.339621 じ/時 -0.045635 -3.339621 じ/次 -0.045635 -3.339621 じかん/時間 -0.045635 -3.213074 じぎょう/事業 -0.239144 -3.339621 じけつ/自決 -0.045635 -3.339621 じしん/地震 -0.045635 -2.767151 じだい/時代 -0.165523 -3.339621 じっしょう/実証 -0.045635 -3.339621 じてん/時点 -0.045635 -3.339621 じぶん/自分 -0.045635 -3.339621 じゅう/中 -0.045635 -3.339621 じゅう/十 -0.045635 -3.339621 じゅうぐん/従軍 -0.045635 -3.339621 じゅうげき/銃撃 -0.045635 -3.339621 じゅうし/銃士 -0.045635 -3.213074 じゅうじ/従事 -0.239144 -3.339621 じょ/序 -0.045635 -3.339621 じょう/上 -0.045635 -3.213074 じょう/城 -0.045635 -3.213074 じょう/場 -0.045635 -3.339621 じょうえん/上演 -0.045635 -3.339621 じょうしょう/上昇 -0.045635 -3.339621 じょうほう/情報 -0.045635 -2.670279 じょくん/叙勲 -0.217932 -3.339621 じょし/女子 -0.045635 -3.339621 じょせい/女性 -0.045635 -3.339621 じょなさん/ジョナサン -0.045635 -3.213074 じん/人 -0.045635 -3.339621 じんせい/人生 -0.045635 -3.339621 じんぶつ/人物 -0.045635 -3.339621 じんみん/人民 -0.045635 -2.892027 す/す -0.045635 -3.339621 すいらい/水雷 -0.045635 -3.339621 すう/数 -0.045635 -3.339621 すえ/末 -0.045635 -3.339621 すき/好き -0.045635 -3.213074 すきー/スキー -0.045635 -3.339621 すこてぃあ/スコティア -0.045635 -3.339621 すご/凄 -0.045635 -3.339621 すたんど/スタンド -0.045635 -3.339621 すぽーつ/スポーツ -0.045635 -2.047146 する/する -0.214324 -3.339621 するたん/スルタン -0.045635 -3.213074 ず/ず -0.045635 -3.213074 せ/せ -0.045635 -3.339621 せい/制 -0.045635 -3.339621 せい/性 -0.045635 -3.339621 せい/生 -0.045635 -3.339621 せいかつ/生活 -0.045635 -3.339621 せいこう/成功 -0.045635 -3.339621 せいじ/政治 -0.045635 -3.339621 せいせき/成績 -0.045635 -3.339621 せいちょう/政庁 -0.045635 -3.339621 せいと/生徒 -0.045635 -3.213074 せいど/制度 -0.239144 -3.213074 せいひん/製品 -0.239144 -3.339621 せいび/整備 -0.045635 -3.339621 せいふく/制服 -0.045635 -3.339621 せいまご/世孫 -0.045635 -3.339621 せいむ/政務 -0.045635 -2.670279 せかい/世界 -0.045635 -3.339621 せかんど/セカンド -0.045635 -3.339621 せき/赤 -0.045635 -3.339621 せき/隻 -0.045635 -3.339621 せっけい/設計 -0.045635 -3.339621 せっこう/浙江 -0.045635 -3.339621 せっち/設置 -0.045635 -3.213074 せつ/説 -0.045635 -3.339621 せつやく/節約 -0.045635 -3.339621 せの/瀬乃 -0.045635 -3.339621 せま/迫 -0.045635 -3.339621 せらー/セラー -0.045635 -3.213074 せるてぃっくす/セルティックス -0.045635 -2.892027 せん/戦 -0.045635 -3.339621 せん/船 -0.045635 -3.339621 せんきゅうひゃくきゅうじゅうきゅう/1999 -0.045635 -3.339621 せんきゅうひゃくきゅうじゅうはち/1998 -0.045635 -3.339621 せんきゅうひゃくはちじゅうなな/1987 -0.045635 -3.339621 せんきゅうひゃくはちじゅうはち/1988 -0.045635 -3.339621 せんし/戦死 -0.045635 -3.339621 せんしゅ/選手 -0.045635 -3.339621 せんしょく/染色 -0.045635 -3.339621 せんす/センス -0.045635 -2.892027 せんそう/戦争 -0.045635 -3.339621 せんたい/船体 -0.045635 -3.339621 せんとう/先頭 -0.045635 -3.339621 せんとう/戦闘 -0.045635 -3.339621 せんない/船内 -0.045635 -3.339621 せんねん/専念 -0.045635 -3.339621 せんもん/専門 -0.045635 -3.339621 せんれつ/鮮烈 -0.045635 -2.892027 ぜん/全 -0.045635 -3.339621 ぜんいん/全員 -0.045635 -3.339621 ぜんこう/全校 -0.045635 -3.339621 そうこう/走行 -0.045635 -3.339621 そうだ/操舵 -0.045635 -3.339621 そうだん/相談 -0.045635 -3.339621 そうちゃく/装着 -0.045635 -3.339621 そうは/争覇 -0.045635 -3.339621 そうび/装備 -0.045635 -3.339621 そこく/祖国 -0.045635 -3.339621 そして/そして -0.045635 -3.339621 そだ/育 -0.045635 -3.339621 そだて/育て -0.045635 -3.339621 そつ/卒 -0.045635 -3.339621 そつぎょう/卒業 -0.045635 -2.524195 その/その -0.101077 -3.339621 そらも/空燃 -0.045635 -3.339621 そりゅーしょん/ソリューション -0.239144 -3.339621 そるがむ/ソルガム -0.045635 -3.213074 そるごー/ソルゴー -0.045635 -3.339621 それ/それ -0.239144 -3.339621 そんざい/存在 -0.045635 -3.339621 ぞうちく/増築 -0.045635 -2.138908 た/た -0.348446 -3.339621 た/立 -0.045635 -3.339621 たい/対 -0.214171 -3.213074 たい/隊 -0.045635 -3.339621 たいい/大尉 -0.045635 -3.339621 たいえき/退役 -0.045635 -3.339621 たいき/待機 -0.045635 -3.339621 たいくつ/退屈 -0.045635 -3.339621 たいせん/大戦 -0.045635 -3.339621 たいぷ/タイプ -0.045635 -3.213074 たいへい/太平 -0.239144 -3.339621 たえ/絶え -0.045635 -2.767151 たか/多賀 -0.165523 -3.339621 たかおう/多嘉王 -0.045635 -3.339621 たかくら/高倉 -0.045635 -3.339621 たかさか/高坂 -0.045635 -3.339621 たかはし/高橋 -0.045635 -3.213074 たがい/互い -0.045635 -3.339621 たけ/嶽 -0.045635 -3.339621 たたか/戦 -0.045635 -3.339621 たたかい/闘い -0.045635 -3.339621 ただし/ただし -0.045635 -3.339621 ただちに/直ちに -0.045635 -3.339621 たち/達 -0.045635 -3.339621 たちあげ/立ち上げ -0.045635 -3.339621 たつじん/達人 -0.045635 -3.339621 たて/立て -0.045635 -3.339621 たて/縦 -0.045635 -3.339621 たとえ/喩え -0.045635 -3.339621 たの/頼 -0.045635 -3.339621 たび/旅 -0.045635 -2.767151 ため/ため -0.243701 -3.339621 たゆう/太夫 -0.045635 -3.339621 たんじょう/誕生 -0.045635 -3.339621 たんぱく/タンパク -0.045635 -3.339621 たんぱく/淡白 -0.045635 -3.339621 たんれい/端麗 -0.045635 -2.892027 だ/だ -0.045635 -3.339621 だ/出 -0.045635 -3.213074 だい/代 -0.045635 -2.892027 だい/大 -0.045635 -2.670279 だい/第 -0.121779 -3.339621 だいかん/代官 -0.045635 -3.339621 だいがく/大学 -0.045635 -3.339621 だいしょうすけ/大賞典 -0.045635 -3.339621 だいひょう/代表 -0.045635 -3.339621 だいよう/代用 -0.045635 -3.339621 だしゃ/打者 -0.045635 -2.892027 だっ/だっ -0.214171 -3.339621 だっしゅつ/脱出 -0.045635 -3.339621 だぶる/ダブル -0.045635 -2.892027 だりつ/打率 -0.164647 -3.339621 だれ/誰 -0.045635 -3.339621 だん/弾 -0.045635 -3.339621 だんせい/弾性 -0.045635 -3.339621 ち/ち -0.045635 -3.339621 ちいき/地域 -0.045635 -3.339621 ちぇすと/チェスト -0.045635 -3.339621 ちか/近 -0.045635 -3.339621 ちから/力 -0.045635 -3.339621 ちぎょう/知行 -0.045635 -3.339621 ちぐさ/千草 -0.045635 -3.339621 ちちおや/父親 -0.045635 -3.213074 ちゃく/着 -0.045635 -3.339621 ちゃーと/チャート -0.045635 -3.213074 ちゅう/中 -0.045635 -3.339621 ちゅうか/中華 -0.045635 -3.339621 ちゅうしゃ/駐車 -0.045635 -3.339621 ちゅうだん/中団 -0.045635 -3.339621 ちゅうとう/中東 -0.045635 -2.892027 ちょう/長 -0.045635 -3.339621 ちょうさ/調査 -0.045635 -3.339621 ちょうし/調子 -0.045635 -3.339621 ちょうせん/朝鮮 -0.045635 -3.339621 ちようこ/蝶子 -0.045635 -3.339621 ちんたい/賃貸 -0.045635 -3.339621 ちーむ/チーム -0.045635 -2.090608 っ/っ -0.967499 -2.591123 つ/つ -0.148282 -3.339621 つ/付 -0.045635 -3.339621 つ/就 -0.045635 -3.339621 つうさん/通算 -0.045635 -3.339621 つうしん/通信 -0.045635 -3.213074 つうじょう/通常 -0.045635 -3.213074 つか/使 -0.045635 -3.339621 つかい/つかい -0.045635 -3.339621 つかえ/使え -0.045635 -3.339621 つきあ/付き合 -0.045635 -3.339621 つけ/着け -0.045635 -3.339621 つつ/つつ -0.045635 -3.339621 つづ/続 -0.045635 -3.339621 つづけ/続け -0.045635 -3.339621 つとめ/務め -0.045635 -3.339621 つね/常 -0.045635 -3.213074 つよ/強 -0.239144 -2.114087 て/て -0.329898 -3.339621 て/手 -0.045635 -3.339621 てい/艇 -0.045635 -3.339621 ていきょう/提供 -0.045635 -3.339621 ていど/程度 -0.045635 -2.524195 てき/的 -0.165147 -3.339621 てばな/手放 -0.045635 -3.339621 てれ/照れ -0.045635 -3.339621 てんし/天使 -0.045635 -3.339621 てんしよう/天正 -0.045635 -3.339621 てんのう/天皇 -0.045635 -1.661816 で/で -0.217265 -3.339621 でいりー/デイリー -0.045635 -3.213074 でき/でき -0.045635 -3.339621 です/です -0.045635 -3.339621 でんげき/電撃 -0.045635 -3.339621 でんれい/伝令 -0.045635 -1.746134 と/と -0.292185 -3.339621 と/問 -0.045635 -3.339621 とうきょう/とうきょう -0.045635 -3.213074 とうきょう/東京 -0.045635 -3.339621 とうげ/峠 -0.045635 -3.339621 とうげん/桃源 -0.045635 -3.339621 とうさつ/盗撮 -0.045635 -3.339621 とうしゅ/当主 -0.045635 -3.339621 とうじ/当時 -0.045635 -3.339621 とうじょう/登場 -0.045635 -3.339621 とうちゃく/到着 -0.045635 -3.339621 とうなーけん/とうなーけん -0.045635 -3.339621 とうひょう/投票 -0.045635 -3.339621 とうろく/登録 -0.045635 -3.339621 とおざけ/遠ざけ -0.045635 -3.339621 とき/とき -0.045635 -3.213074 とき/時 -0.239144 -3.339621 とくちょう/特徴 -0.045635 -3.339621 とくに/とくに -0.045635 -3.339621 ところ/ところ -0.045635 -3.339621 とし/都市 -0.045635 -3.339621 としあき/敏明 -0.045635 -3.339621 としょ/図書 -0.045635 -3.339621 とっぷ/トップ -0.045635 -3.339621 とつぜん/突然 -0.045635 -3.339621 ととのえ/整え -0.045635 -3.339621 となえ/唱え -0.045635 -3.339621 とまつ/塗抹 -0.045635 -3.339621 とも/とも -0.045635 -3.339621 ともこ/智子 -0.045635 -3.339621 とよみ/豊見 -0.045635 -3.339621 とりしらべ/取り調べ -0.045635 -3.339621 とりにだーど/トリニダード -0.045635 -3.339621 とりもど/取り戻 -0.045635 -3.339621 とりわけ/取り分け -0.045635 -3.339621 とれんとん/トレントン -0.045635 -3.339621 とろふぉぞいと/トロフォゾイト -0.045635 -3.339621 とんぼ/とんぼ -0.045635 -3.339621 ど/度 -0.045635 -3.339621 どいつ/ドイツ -0.045635 -3.339621 どういん/動員 -0.045635 -3.339621 どうちゅう/道中 -0.045635 -3.213074 どうぶつ/動物 -0.045635 -3.339621 どうろ/道路 -0.045635 -3.339621 どくしょう/独唱 -0.045635 -3.339621 どくだん/独断 -0.045635 -3.339621 どちゃく/土着 -0.045635 -3.339621 どらま/ドラマ -0.045635 -3.339621 どれん/ドレン -0.045635 -3.339621 どーぱんと/ドーパント -0.045635 -2.047146 な/な -0.274758 -3.339621 ない/内 -0.045635 -3.339621 ないかく/内閣 -0.045635 -3.339621 ないそう/内装 -0.045635 -3.339621 なおひろ/直弘 -0.045635 -3.339621 なか/中 -0.045635 -3.339621 なかの/中野 -0.045635 -3.339621 ながよし/長可 -0.045635 -3.213074 ながら/ながら -0.045635 -3.213074 なす/ナス -0.045635 -3.339621 なつば/夏場 -0.045635 -2.670279 など/など -0.113068 -3.339621 なな/七 -0.045635 -3.339621 なまえ/名前 -0.045635 -3.339621 なん/何 -0.045635 -3.339621 なんて/なんて -0.045635 -3.339621 なんぶ/南部 -0.045635 -3.339621 なんぼくちょう/南北朝 -0.045635 -3.339621 なーせる/ナーセル -0.045635 -1.360794 に/に -0.164796 -3.213074 に/二 -0.131700 -3.339621 にが/苦 -0.045635 -3.339621 にく/肉 -0.045635 -3.339621 にしよどがわ/西淀川 -0.045635 -3.339621 にせんご/2005 -0.045635 -3.339621 にせんじゅういち/2011 -0.045635 -3.339621 にせんじゅうに/2012 -0.045635 -3.339621 にせんなな/2007 -0.045635 -3.213074 にち/日 -0.045635 -3.339621 にちろ/日露 -0.045635 -3.339621 にっぽん/日本 -0.045635 -3.339621 にほん/日本 -0.045635 -3.339621 にゅうせん/入選 -0.045635 -2.892027 にん/人 -0.164647 -3.213074 にんき/人気 -0.045635 -3.339621 にんてい/認定 -0.045635 -3.339621 にんむ/任務 -0.045635 -3.339621 ねっと/ネット -0.045635 -2.047146 ねん/年 -0.238676 -1.335971 の/の -0.066107 -3.339621 の/野 -0.045635 -3.339621 のいず/ノイズ -0.045635 -3.339621 のう/農 -0.045635 -3.339621 のこり/残り -0.045635 -3.339621 のび/伸び -0.045635 -1.725931 は/は -0.150715 -3.339621 は/張 -0.045635 -3.339621 は/波 -0.045635 -3.339621 はあく/把握 -0.045635 -3.339621 はい/入 -0.045635 -3.339621 はい/杯 -0.045635 -3.213074 はいき/排気 -0.239144 -3.339621 はいしん/配信 -0.045635 -3.339621 はいせん/敗戦 -0.045635 -3.339621 はいぞく/配属 -0.045635 -3.339621 はいふ/配布 -0.045635 -3.339621 はいぼく/敗北 -0.045635 -3.339621 はいゆう/俳優 -0.045635 -3.339621 はがー/ハガー -0.045635 -3.339621 はくい/白衣 -0.045635 -3.339621 はじめ/始め -0.239144 -3.339621 はせがわ/長谷川 -0.045635 -3.339621 はそん/破損 -0.045635 -3.339621 はた/秦 -0.045635 -3.339621 はだに/ハダニ -0.045635 -3.339621 はっかく/発覚 -0.045635 -3.339621 はっしゃ/発射 -0.045635 -3.339621 はっぴょう/発表 -0.045635 -3.213074 はつ/初 -0.239144 -3.213074 はつね/初音 -0.239144 -3.339621 はるあき/春秋 -0.045635 -3.213074 はんざい/犯罪 -0.045635 -3.339621 はんすう/半数 -0.045635 -3.339621 はんぱつ/反発 -0.045635 -3.339621 はんもと/版元 -0.045635 -3.213074 ば/ば -0.045635 -3.339621 ば/場 -0.045635 -2.892027 ばあい/場合 -0.113068 -3.339621 ばくりょう/幕僚 -0.045635 -3.339621 ばす/バス -0.045635 -3.339621 ばすたー/バスター -0.045635 -3.339621 ばっく/バック -0.045635 -3.339621 ばん/版 -0.045635 -3.213074 ばん/番 -0.045635 -3.339621 ばんぞく/蛮族 -0.045635 -3.339621 ばんのう/万能 -0.045635 -3.339621 ばーくれい/バークレイ -0.045635 -3.339621 ばーぐ/バーグ -0.045635 -3.339621 ひ/妃 -0.045635 -3.339621 ひ/日 -0.045635 -3.339621 ひ/比 -0.045635 -3.339621 ひがしな/東那 -0.045635 -3.339621 ひがしまつやま/東松山 -0.045635 -3.339621 ひきと/引き取 -0.045635 -3.339621 ひっと/ヒット -0.045635 -3.339621 ひてい/否定 -0.045635 -3.213074 ひと/ヒト -0.045635 -3.339621 ひと/一 -0.045635 -3.339621 ひとり/1人 -0.045635 -3.339621 ひめはな/ヒメハナ -0.045635 -3.339621 ひょう/票 -0.045635 -3.213074 ひょうげん/表現 -0.239144 -3.339621 ひよう/費用 -0.045635 -3.339621 ひろし/寛 -0.045635 -3.339621 ひろし/汎 -0.045635 -3.339621 ひろた/広食 -0.045635 -3.339621 ひろば/広場 -0.045635 -3.339621 ひん/品 -0.045635 -3.339621 び/日 -0.045635 -3.339621 び/美 -0.045635 -3.339621 びょういん/病院 -0.045635 -3.339621 びるぼーど/ビルボード -0.045635 -3.213074 ぴくる/ピクル -0.164647 -3.339621 ふ/府 -0.045635 -3.339621 ふ/振 -0.045635 -3.339621 ふぁすべんだー/ファスベンダー -0.045635 -3.213074 ふぁー/ファー -0.239144 -3.339621 ふぃじかる/フィジカル -0.045635 -3.339621 ふうけい/風景 -0.045635 -3.339621 ふぇいす/フェイス -0.045635 -3.339621 ふぇーざー/フェーザー -0.045635 -3.339621 ふぉっくす/フォックス -0.045635 -3.339621 ふきん/付近 -0.045635 -3.213074 ふく/含 -0.239144 -3.339621 ふさわし/ふさわし -0.045635 -3.339621 ふしぎ/不思議 -0.045635 -3.339621 ふしん/不審 -0.045635 -3.339621 ふたたび/再び -0.045635 -3.339621 ふたり/二人 -0.045635 -3.339621 ふたり/2人 -0.045635 -3.339621 ふなこし/船越 -0.045635 -3.339621 ふなばし/船橋 -0.045635 -3.339621 ふみひこ/文彦 -0.045635 -3.339621 ふみやす/文保 -0.045635 -3.339621 ふめい/不明 -0.045635 -3.339621 ふるい/ふるい -0.045635 -3.339621 ふるく/古く -0.045635 -3.339621 ふん/分 -0.045635 -3.339621 ぶ/ぶ -0.045635 -3.339621 ぶ/部 -0.045635 -3.213074 ぶか/部下 -0.045635 -3.339621 ぶしゅう/武州 -0.045635 -3.339621 ぶそう/武装 -0.045635 -3.213074 ぶたい/部隊 -0.045635 -3.339621 ぶよう/舞踊 -0.045635 -3.339621 ぶらざーず/ブラザーズ -0.045635 -3.339621 ぶろー/ブロー -0.045635 -3.339621 ぶんげい/文芸 -0.045635 -3.339621 ぶんせき/分析 -0.045635 -3.339621 ぷらちな/プラチナ -0.045635 -3.339621 ぷれてすと/プレテスト -0.045635 -3.213074 へ/へ -0.045635 -3.339621 へ/経 -0.045635 -3.339621 へくたーる/ヘクタール -0.045635 -3.339621 へん/変 -0.045635 -3.339621 へんか/変化 -0.045635 -3.339621 へんじ/返事 -0.045635 -3.339621 べ/べ -0.045635 -3.339621 べいぐん/米軍 -0.045635 -3.339621 べすと/ベスト -0.045635 -3.339621 べんぐつそん/ベングツソン -0.045635 -3.339621 ぺてぃ/ペティ -0.045635 -2.767151 ぺーじ/頁 -0.131700 -3.339621 ほう/法 -0.045635 -3.339621 ほう/砲 -0.045635 -3.339621 ほうこく/報告 -0.045635 -3.339621 ほうしゅつ/放出 -0.045635 -3.339621 ほうしょう/褒章 -0.045635 -3.339621 ほうしん/砲身 -0.045635 -3.339621 ほうじん/法人 -0.045635 -3.213074 ほうせい/法政 -0.045635 -3.339621 ほくと/ホクト -0.045635 -3.339621 ほくぶ/北部 -0.045635 -3.339621 ほしょく/捕食 -0.045635 -3.339621 ほぜん/保全 -0.045635 -3.339621 ほっぽう/北方 -0.045635 -3.339621 ほどこ/施 -0.045635 -3.339621 ほんのう/本能 -0.045635 -3.339621 ほんみょう/本名 -0.045635 -3.339621 ほんらい/本来 -0.045635 -3.339621 ぼいす/ボイス -0.045635 -3.213074 ぼうえい/防衛 -0.045635 -3.339621 ぼうご/防護 -0.045635 -3.339621 ぼうだん/防弾 -0.045635 -3.339621 ぼくし/牧師 -0.045635 -3.339621 ぼこぼこ/ボコボコ -0.045635 -3.339621 ぼっ/ぼっ -0.045635 -3.339621 ぼっぱつ/勃発 -0.239144 -3.339621 ぼびー/ボビー -0.045635 -3.339621 ぽーかー/ポーカー -0.045635 -3.339621 ぽーとらんど/ポートランド -0.045635 -3.339621 ま/ま -0.045635 -3.339621 まいける/マイケル -0.045635 -3.213074 まえ/前 -0.045635 -3.339621 まき/巻 -0.045635 -3.339621 まさと/正人 -0.045635 -3.339621 まじ/まじ -0.045635 -3.339621 まじえ/交え -0.045635 -3.339621 また/また -0.239144 -3.339621 まち/町 -0.045635 -3.339621 まっしょう/末梢 -0.045635 -3.339621 まっする/マッスル -0.045635 -3.339621 まっど/マッド -0.045635 -3.339621 まつ/末 -0.045635 -3.339621 まつい/松井 -0.045635 -3.339621 まつやま/松山 -0.045635 -3.213074 まで/まで -0.045635 -3.339621 まと/まと -0.045635 -3.339621 まと/的 -0.045635 -3.339621 まにら/マニラ -0.045635 -3.339621 まね/招 -0.045635 -3.339621 まま/まま -0.045635 -3.339621 まりーあ/マリーア -0.045635 -3.339621 まんが/まんが -0.045635 -3.339621 まんが/漫画 -0.045635 -3.339621 まんざい/漫才 -0.045635 -3.339621 まーくるんど/マークルンド -0.045635 -3.339621 まーけっと/マーケット -0.045635 -3.339621 み/見 -0.045635 -3.339621 み/身 -0.045635 -3.339621 みく/ミク -0.045635 -3.213074 みちの/美智乃 -0.045635 -3.339621 みっくみく/みっくみく -0.045635 -3.339621 みの/美濃 -0.045635 -3.339621 みりょう/魅了 -0.045635 -3.339621 みりょく/魅力 -0.045635 -3.339621 みんせい/民生 -0.045635 -3.339621 む/む -0.045635 -3.339621 むか/向か -0.045635 -3.213074 むけ/向け -0.045635 -3.339621 むす/結 -0.045635 -3.339621 むだ/無駄 -0.045635 -3.339621 め/目 -0.045635 -3.339621 めいぎ/名義 -0.045635 -3.213074 めいじ/明治 -0.045635 -3.339621 めがね/眼鏡 -0.045635 -3.339621 めぐろ/目黒 -0.045635 -3.339621 めざ/目指 -0.045635 -3.339621 めだ/目立 -0.045635 -3.339621 めんどう/面倒 -0.045635 -3.339621 めんばー/メンバー -0.045635 -2.193259 も/も -0.060067 -3.339621 も/持 -0.045635 -3.339621 も/盛 -0.045635 -3.339621 もう/網 -0.045635 -3.339621 もうり/毛利 -0.045635 -3.339621 もたら/もたら -0.045635 -3.339621 もと/元 -0.045635 -2.767151 もの/もの -0.045635 -3.339621 もの/者 -0.045635 -3.339621 ものがたり/物語 -0.045635 -3.339621 ものごと/物事 -0.045635 -3.339621 もも/もも -0.045635 -3.339621 もよう/模様 -0.045635 -3.339621 もり/森 -0.045635 -2.466216 や/や -0.045635 -3.339621 やく/役 -0.045635 -3.213074 やく/約 -0.045635 -3.339621 やっと/やっと -0.045635 -3.339621 やよい/弥生 -0.045635 -3.339621 やん/やん -0.239144 -3.339621 ゆうしゅう/優秀 -0.045635 -3.339621 ゆうしょう/優勝 -0.045635 -3.339621 ゆうよ/猶予 -0.045635 -3.339621 ゆうれい/ユウレイ -0.045635 -3.213074 よ/よ -0.203072 -3.339621 よ/呼 -0.239144 -2.892027 よう/よう -0.045635 -3.339621 よう/洋 -0.045635 -3.339621 ようかい/妖怪 -0.045635 -3.213074 ようし/容姿 -0.045635 -3.339621 よくちょう/翌朝 -0.045635 -3.339621 よばい/夜這い -0.045635 -3.339621 よびだ/呼び出 -0.239144 -3.339621 よみ/読み -0.045635 -3.339621 よろこ/喜 -0.045635 -3.339621 よんじゅういち/四一 -0.045635 -3.339621 よーろっぱ/ヨーロッパ -0.045635 -2.369325 ら/ら -0.138751 -3.339621 らいん/ライン -0.045635 -3.339621 らずふぁーど/ラズファード -0.045635 -2.591123 られ/られ -0.101077 -3.339621 らんきんぐ/ランキング -0.045635 -3.339621 らんくいん/ランクイン -0.045635 -3.339621 らーる/ラール -0.045635 -2.767151 り/り -0.615872 -3.339621 りくじょう/陸上 -0.045635 -3.339621 りくろ/陸路 -0.045635 -3.339621 りつ/立 -0.045635 -3.213074 りま/りま -0.045635 -3.339621 りゅう/龍 -0.045635 -3.339621 りゅうじ/龍治 -0.045635 -3.339621 りょういき/領域 -0.045635 -3.339621 りよん/リヨン -0.045635 -3.339621 りりーす/リリース -0.045635 -3.339621 りん/林 -0.045635 -3.339621 りーぐ/リーグ -0.045635 -2.068333 る/る -0.323653 -2.670279 れ/れ -0.630645 -3.213074 れい/令 -0.045635 -3.339621 れおん/レオン -0.045635 -3.339621 れきし/歴史 -0.045635 -3.339621 れこーど/レコード -0.045635 -3.339621 れっど/レッド -0.045635 -3.339621 れつ/列 -0.045635 -3.339621 ればのん/レバノン -0.045635 -3.339621 れんぽう/連邦 -0.045635 -3.339621 ろういん/老院 -0.045635 -3.339621 ろく/六 -0.045635 -3.339621 ろせん/路線 -0.045635 -3.339621 ろれーた/ロレータ -0.045635 -3.339621 ろんぶん/論文 -0.045635 -2.767151 わ/わ -0.691293 -3.339621 わか/若 -0.045635 -3.339621 わしんとん/ワシントン -0.045635 -3.339621 わずか/わずか -0.045635 -3.339621 わた/亘 -0.045635 -3.339621 わたし/私 -0.045635 -3.339621 わたり/渡り -0.045635 -3.339621 わたる/渉 -0.045635 -3.339621 わよ/和与 -0.045635 -3.339621 わんしょう/腕章 -0.045635 -3.339621 わーなー/ワーナー -0.045635 -1.450314 を/を -0.072235 -3.213074 ん/ん -0.164647 -2.047146 ・/・ -0.060067 -3.213074 ー/ー -0.045635 -2.165234 (/( -0.083834 -2.223219 )/) -0.204017 -2.892027 ./. -0.131700 -3.339621 0/0 -0.045635 -3.339621 000/000 -0.045635 -3.213074 1/1 -0.045635 -3.213074 10/10 -0.045635 -3.213074 12/12 -0.045635 -3.339621 13/13 -0.045635 -3.339621 14/14 -0.045635 -3.339621 17/17 -0.045635 -3.339621 18/18 -0.045635 -3.339621 1901/1901 -0.045635 -3.339621 1907/1907 -0.045635 -3.339621 1942/1942 -0.045635 -3.339621 1944/1944 -0.045635 -3.339621 1956/1956 -0.239144 -2.466216 2/2 -0.045635 -3.339621 2000/2000 -0.045635 -3.339621 21/21 -0.045635 -3.339621 24/24 -0.045635 -3.339621 26/26 -0.239144 -2.670279 3/3 -0.045635 -3.339621 300/300 -0.045635 -3.339621 31/31 -0.045635 -3.213074 34/34 -0.045635 -3.339621 35/35 -0.045635 -3.339621 39/39 -0.045635 -3.339621 393/393 -0.045635 -2.892027 4/4 -0.045635 -3.339621 40/40 -0.045635 -3.339621 44/44 -0.045635 -3.339621 45/45 -0.045635 -3.213074 5/5 -0.045635 -3.339621 50/50 -0.045635 -3.339621 5000/5000 -0.045635 -3.339621 533/533 -0.045635 -3.339621 536/536 -0.045635 -3.339621 537/537 -0.045635 -3.339621 57/57 -0.045635 -2.892027 6/6 -0.164647 -3.339621 62/62 -0.045635 -3.213074 7/7 -0.045635 -3.339621 71/71 -0.045635 -2.892027 8/8 -0.164647 -3.339621 800/800 -0.045635 -2.767151 9/9 -0.045635 -3.213074 :/: -0.045635 -3.213074 =/= -0.045635 \2-grams: -0.177481 -2.374765 「/「 -3.340749 あきひろ/空広 -3.340749 あさくら/朝倉 -3.164028 あと/後 -3.340749 あにめ/アニメ -3.340749 いってい/一定 -3.301641 いんたい/引退 -3.340749 おうごん/黄金 -3.340749 おおさか/大阪 -3.340749 おぐら/小倉 -3.301641 おりこん/オリコン -3.340749 かみのうがね/上納金 -3.301641 かれ/彼 -3.301641 かんこく/韓国 -3.340749 かんさい/関西 -3.340749 かんめい/艦名 -3.301641 がいこく/外国 -3.340749 がくえん/学園 -3.340749 く/食 -3.340749 ぐんぶ/軍部 -3.301641 けい/計 -3.301641 けん/剣 -2.501534 げんざい/現在 -2.527978 この/この -3.301641 これ/これ -3.340749 こーひー/コーヒー -3.340749 さいしょ/最初 -3.340749 しいき/市域 -1.857531 しかし/しかし -3.340749 しまだ/島田 -3.340749 しゃんはい/上海 -3.301641 しゅ/主 -3.340749 しゅうり/修理 -3.164028 しょう/賞 -3.340749 しょけい/処刑 -3.340749 しんだん/診断 -3.034890 じょくん/叙勲 -3.340749 すき/好き -3.301641 すきー/スキー -3.340749 せんきゅうひゃくきゅうじゅうきゅう/1999 -3.340749 せんきゅうひゃくはちじゅうなな/1987 -3.340749 せんきゅうひゃくはちじゅうはち/1988 -3.340749 せんたい/船体 -3.164028 ぜん/全 -3.340749 そして/そして -2.097685 その/その -3.340749 ただし/ただし -3.340749 だ/出 -3.034890 だい/第 -3.340749 ちぎょう/知行 -3.340749 ちぐさ/千草 -3.340749 てんしよう/天正 -2.195037 で/で -3.301641 とうきょう/東京 -3.340749 とりしらべ/取り調べ -3.340749 とんぼ/とんぼ -3.301641 なす/ナス -3.340749 なな/七 -3.340749 にしよどがわ/西淀川 -3.340749 にせんじゅういち/2011 -3.340749 にせんなな/2007 -3.301641 はんざい/犯罪 -3.340749 ばーくれい/バークレイ -3.340749 ひがしな/東那 -3.340749 びるぼーど/ビルボード -3.301641 ぴくる/ピクル -3.340749 ふぇいす/フェイス -3.340749 ふぇーざー/フェーザー -3.340749 ぷれてすと/プレテスト -3.340749 ほんみょう/本名 -3.301641 ぼうえい/防衛 -3.340749 ぼびー/ボビー -2.534322 また/また -3.340749 まち/町 -3.301641 めいじ/明治 -3.301641 ようし/容姿 -3.340749 よーろっぱ/ヨーロッパ -3.340749 れっど/レッド -3.340749 ろく/六 -3.340749 わか/若 -3.340749 わたし/私 -3.301641 1/1 -2.527978 12/12 -3.340749 1901/1901 -3.340749 1907/1907 -2.893182 2/2 -3.340749 2000/2000 -3.340749 21/21 -1.298561 ”/“ だぶる/ダブル -1.087288 ”/“ を/を -2.138208 、/、 あいてむ/アイテム -2.920707 、/、 あぶらむし/アブラムシ -2.875489 、/、 あめりか/アメリカ -2.920707 、/、 ある/ある -2.138208 、/、 いぎりす/イギリス -2.920707 、/、 いく/いく -2.920707 、/、 いたりあ/イタリア -2.920707 、/、 いわゆる/いわゆる -2.875489 、/、 いんたい/引退 -2.920707 、/、 うちとみ/内冨 -2.920707 、/、 えいが/映画 -2.920707 、/、 えいだっく/エイダック -2.920707 、/、 えぎ/榎木 -2.920707 、/、 おおく/多く -2.875489 、/、 おりこん/オリコン -2.920707 、/、 おんせん/温泉 -2.875489 、/、 かいしゃ/会社 -2.920707 、/、 かいしゅう/改修 -2.920707 、/、 かげ/影 -2.875489 、/、 がいこく/外国 -2.920707 、/、 がまーる/ガマール -2.920707 、/、 がめとさいと/ガメトサイト -2.920707 、/、 がーでぃあん/ガーディアン -2.720731 、/、 きけん/危険 -2.920707 、/、 きゅうしゅう/九州 -2.920707 、/、 くろす/クロス -2.920707 、/、 けっせい/結成 -2.875489 、/、 こうつう/交通 -2.920707 、/、 こうれい/高齢 -2.920707 、/、 こども/子供 -2.130415 、/、 この/この -2.920707 、/、 こみっく/コミック -2.130415 、/、 これ/これ -2.920707 、/、 こんこーど/コンコード -2.920707 、/、 さいあく/最悪 -2.875489 、/、 さいしゅう/最終 -2.920707 、/、 さいしん/最新 -2.875489 、/、 ざざーぐ/ザザーグ -2.920707 、/、 しっこう/執行 -2.920707 、/、 してい/姉弟 -2.920707 、/、 しぼう/死亡 -2.920707 、/、 しゃりょう/車両 -2.920707 、/、 しゅりゅう/手榴 -2.920707 、/、 しんわ/神話 -2.875489 、/、 しーずん/シーズン -2.920707 、/、 じゅう/十 -2.920707 、/、 すう/数 -2.920707 、/、 すご/凄 -2.580149 、/、 せかい/世界 -2.920707 、/、 せっこう/浙江 -2.875489 、/、 せるてぃっくす/セルティックス -2.720731 、/、 せん/戦 -2.920707 、/、 せんとう/戦闘 -2.920707 、/、 せんない/船内 -1.919351 、/、 その/その -2.920707 、/、 そらも/空燃 -2.920707 、/、 そるがむ/ソルガム -2.875489 、/、 そるごー/ソルゴー -2.138208 、/、 それ/それ -2.920707 、/、 ぞうちく/増築 -2.920707 、/、 たいい/大尉 -2.875489 、/、 たがい/互い -2.720731 、/、 だい/大 -2.920707 、/、 ちゅうしゃ/駐車 -2.920707 、/、 ちょうせん/朝鮮 -2.875489 、/、 つうじょう/通常 -2.920707 、/、 つづ/続 -2.920707 、/、 てれ/照れ -2.920707 、/、 でんげき/電撃 -2.920707 、/、 とうさつ/盗撮 -2.138208 、/、 とうじ/当時 -2.920707 、/、 とくに/とくに -2.920707 、/、 とつぜん/突然 -2.920707 、/、 とも/とも -2.920707 、/、 とろふぉぞいと/トロフォゾイト -2.920707 、/、 どれん/ドレン -2.920707 、/、 ないかく/内閣 -2.920707 、/、 なん/何 -2.920707 、/、 なんぼくちょう/南北朝 -2.920707 、/、 にく/肉 -2.920707 、/、 にせんご/2005 -2.920707 、/、 にせんじゅうに/2012 -2.920707 、/、 ねっと/ネット -2.920707 、/、 のこり/残り -2.875489 、/、 はいき/排気 -2.875489 、/、 はつね/初音 -2.920707 、/、 はるあき/春秋 -2.920707 、/、 ばんぞく/蛮族 -2.920707 、/、 ひろば/広場 -2.130415 、/、 ぴくる/ピクル -2.920707 、/、 ふなばし/船橋 -2.920707 、/、 ぶそう/武装 -2.920707 、/、 ぺてぃ/ペティ -2.920707 、/、 ぽーとらんど/ポートランド -2.920707 、/、 まさと/正人 -2.920707 、/、 まにら/マニラ -2.920707 、/、 めがね/眼鏡 -2.920707 、/、 ものごと/物事 -2.920707 、/、 もも/もも -2.875489 、/、 やく/約 -2.875489 、/、 りま/りま -2.920707 、/、 りよん/リヨン -2.920707 、/、 ればのん/レバノン -2.920707 、/、 れんぽう/連邦 -2.920707 、/、 わたる/渉 -2.920707 、/、 わーなー/ワーナー -2.920707 、/、 000/000 -2.875489 、/、 12/12 -2.138208 、/、 1956/1956 -2.920707 、/、 39/39 -2.920707 、/、 5000/5000 -2.720731 、/、 6/6 -2.920707 、/、 800/800 -2.225241 「/「 あお/青 -2.225241 「/「 うちのめ/打ちのめ -2.225241 「/「 えさ/餌 -2.225241 「/「 おりじんきー/オリジンキー -2.225241 「/「 かがく/科学 -2.215194 「/「 かんこく/韓国 -2.225241 「/「 くれない/紅 -2.225241 「/「 しゅうかん/週刊 -2.126974 「/「 せかい/世界 -2.225241 「/「 せの/瀬乃 -2.149944 「/「 たか/多賀 -2.225241 「/「 だれ/誰 -2.225241 「/「 てんし/天使 -2.215194 「/「 ぼうえい/防衛 -2.225241 「/「 ぼっ/ぼっ -2.225241 「/「 まんざい/漫才 -2.225241 「/「 みっくみく/みっくみく -2.225241 「/「 よばい/夜這い -2.101450 」/」 こと/こと -1.721257 」/」 で/で -0.615050 」/」 と/と -1.488690 」/」 に/に -1.121788 」/」 の/の -1.061554 」/」 を/を -2.010376 」/」 (/( -2.034508 」/」 )/) -2.234773 」/」 536/536 -2.198353 」/」 8/8 -0.794931 あ/あ っ/っ -1.369021 あ/あ り/り -0.251461 あ/あ る/る -0.967289 あ/ア ・/・ -0.849921 あいだ/間 の/の -0.975104 あいて/相手 (/( -1.180289 あいてむ/アイテム と/と -1.039024 あいてむ/アイテム の/の -0.999313 あいりっしゅ/アイリッシュ はいゆう/俳優 -0.923143 あいるらんど/アイルランド で/で -0.967289 あお/青 い/い -0.978270 あか/あか )/) -0.849921 あかね/茜 の/の -0.933049 あきひろ/空広 は/は -0.849921 あこがれ/憧れ の/の -0.857072 あさ/朝 に/に -0.999313 あさくら/朝倉 か/家 -0.968841 あた/あた る/る -0.910729 あたえ/与え 、/、 -0.923143 あたり/あたり で/で -0.959613 あっか/悪化 さ/さ -0.998710 あっぷ/アップ ”/“ -0.970398 あつま/集ま っ/っ -1.139815 あと/後 に/に -1.126204 あと/後 の/の -1.408736 あと/後 も/も -0.967289 あにか/アニカ ・/・ -0.999313 あにめ/アニメ ばん/版 -1.471084 あふりか/アフリカ かんけい/関係 -1.471084 あふりか/アフリカ せつ/説 -1.185966 あふりか/アフリカ を/を -0.998710 あぶどぅん/アブドゥン =/= -0.880528 あぶらむし/アブラムシ を/を -0.999313 あぷろーち/アプローチ なんぶ/南部 -0.999313 あまーすと/アマースト ばーぐ/バーグ -1.276131 あめりか/アメリカ や/や -1.298561 あめりか/アメリカ れこーど/レコード -0.967289 あやし/怪し い/い -0.999313 あらぶ/アラブ しゅぎ/主義 -0.996106 あらわ/表 す/す -0.999313 ある/ある ていど/程度 -0.998710 あるばむ/アルバム ”/“ -0.999313 あわー/アワー ばっく/バック -0.967289 あんな/アンナ ・/・ -1.716156 い/い -1.917369 い/い 、/、 -2.340843 い/い 」/」 -2.751803 い/い いじ/意地 -1.006104 い/い う/う -1.956855 い/い が/が -2.476826 い/い く/く -2.751803 い/い けいけん/経験 -2.500258 い/い こと/こと -2.751803 い/い そうび/装備 -1.070536 い/い た/た -2.641230 い/い ため/ため -2.751803 い/い たんぱく/タンパク -2.751803 い/い ちから/力 -1.775436 い/い っ/っ -0.995433 い/い て/て -2.751803 い/い なか/中 -1.688132 い/い の/の -2.751803 い/い まま/まま -2.641230 い/い もの/もの -2.751803 い/い もの/者 -2.736509 い/い ようし/容姿 -2.751803 い/い りゅう/龍 -0.584797 い/い る/る -1.318661 い/位 、/、 -1.192720 い/位 に/に -1.177376 い/位 の/の -1.245226 い/位 を/を -0.984671 い/行 く/く -1.515968 い/言 っ/っ -0.532922 い/言 わ/わ -0.849921 いぇーがん/イェーガン の/の -0.920353 いか/生か し/し -0.857072 いがい/以外 に/に -0.971961 いき/生き て/て -1.298561 いぎりす/イギリス かいきょう/海峡 -1.158100 いぎりす/イギリス で/で -0.991168 いく/いく つ/つ -0.949089 いし/石 -0.880528 いしょう/衣装 を/を -0.918965 いじ/意地 が/が -0.920353 いじゅう/移住 し/し -0.968841 いた/至 る/る -0.849921 いたりあ/イタリア の/の -0.998710 いだ/抱 き/き -0.994453 いち/一 ごう/号 -0.539969 いち/位置 する/する -1.200161 いち/位置 に/に -0.923143 いちよ/一代 で/で -0.978270 いっしゅ/一種 )/) -0.857072 いっしょ/一緒 に/に -0.849921 いってい/一定 の/の -0.880528 いのち/命 を/を -0.967289 いま/今 い/い -0.949089 いみ/意味 -1.272988 いりょう/医療 から/から -1.297359 いりょう/医療 じゅうじ/従事 -0.970398 いわ/祝 っ/っ -0.999313 いわゆる/いわゆる まっど/マッド -0.933049 いん/員 は/は -1.285698 いんたい/引退 ご/後 -1.236949 いんたい/引退 する/する -0.949089 いんちょう/院長 -0.999313 いんなー/インナー まっする/マッスル -0.920353 いんよう/飲用 し/し -1.662361 う/う -2.023205 う/う かせつ/仮説 -1.902064 う/う こと/こと -2.023205 う/う ことば/言葉 -2.023205 う/う しらせ/報せ -2.016869 う/う せつ/説 -1.974417 う/う たか/多賀 -1.958950 う/う など/など -2.023205 う/う なんて/なんて -2.023205 う/う はた/秦 -2.016869 う/う ひょうげん/表現 -0.923143 うぃーくりーらんきんぐ/ウィークリーランキング で/で -1.039024 うぇい/ウェイ の/の -1.175259 うぇい/ウェイ は/は -0.999313 うぇすたん/ウェスタン あぷろーち/アプローチ -0.923143 うえ/うえ で/で -0.857072 うえ/上 に/に -0.996106 うえるず/ウエルズ だっ/だっ -0.968841 うかがえ/伺え る/る -0.541734 うけ/受け た/た -1.414402 うけ/受け て/て -0.996106 うごか/動か す/す -0.999313 うち/うち 45/45 -0.999313 うちとみ/内冨 ひろし/寛 -0.959613 うちのめ/打ちのめ さ/さ -0.998710 うっど/ウッド こうつう/交通 -0.968841 うつ/移 る/る -0.910729 うなぎ/鰻 、/、 -0.998710 うみず/海津 じょう/城 -0.849921 うら/裏 の/の -0.984671 うれし/うれし く/く -0.967289 うんえい/運営 する/する -0.920353 うんこう/運行 し/し -0.998710 え/え ば/ば -0.967289 え/得 な/な -0.910729 えいいちろう/英一郎 、/、 -0.999313 えいが/映画 ふぉっくす/フォックス -0.880528 えいきょう/影響 を/を -0.857072 えいじゃっくす/エイジャックス に/に -1.297359 えいせい/衛生 か/科 -1.298561 えいせい/衛生 わんしょう/腕章 -0.999313 えいぞう/映像 び/美 -0.923143 えいだっく/エイダック で/で -1.340051 えき/駅 が/が -1.481315 えき/駅 ・/・ -1.507376 えき/駅 (/( -1.518255 えき/駅 )/) -0.989535 えきがく/疫学 てき/的 -0.999313 えぎ/榎木 こうめい/孝明 -0.973530 えさ/餌 」/」 -0.880528 えぴそーど/エピソード を/を -0.999313 えら/選 べ/べ -0.999313 えん/演 じ/じ -0.918965 えんげき/演劇 が/が -1.298561 えんじん/エンジン はそん/破損 -1.298561 えんじん/エンジン ぶろー/ブロー -0.857072 えんだん/縁談 に/に -1.832566 お/お い/い -1.945768 お/お たがい/互い -0.240407 お/お り/り -0.998710 お/逐 しょう/小 -0.999313 おう/王 そうは/争覇 -0.999313 おうごん/黄金 じゅうし/銃士 -1.404621 おお/多 い/い -0.544839 おお/多 く/く -0.996106 おおいた/大分 けん/県 -0.999313 おおきな/大きな しょっく/ショック -0.849921 おおく/多く の/の -0.999313 おおさか/大阪 がんつ/ガンツ -0.999313 おおしま/大島 ともこ/智子 -0.999313 おおつき/大槻 ふみひこ/文彦 -0.999313 おぐら/小倉 だいしょうすけ/大賞典 -0.368201 おけ/おけ る/る -1.753025 おこな/行 う/う -1.666781 おこな/行 っ/っ -0.440870 おこな/行 わ/わ -0.996106 おそく/遅く だっ/だっ -0.973530 おとずれ/訪れ た/た -0.880528 おにごっこ/鬼ごっこ を/を -1.472877 おふぃす/オフィス かぶしき/株式 -1.472877 おふぃす/オフィス けんさく/検索 -1.413038 おふぃす/オフィス )/) -0.967289 おも/思 い/い -0.849921 おや/親 の/の -0.999313 および/および うぇすたん/ウェスタン -0.999313 および/及び ちぇすと/チェスト -1.298561 おりこん/オリコン うぃーくりーらんきんぐ/ウィークリーランキング -1.298561 おりこん/オリコン でいりー/デイリー -0.998710 おりじんきー/オリジンキー =/= -0.984671 おわ/終わ ら/ら -0.999313 おん/オン らいん/ライン -0.967289 おんがく/音楽 ・/・ -0.949089 おんせん/温泉 -1.150949 おんど/温度 が/が -1.087288 おんど/温度 を/を -0.857072 おんなのこ/女の子 に/に -0.880528 おーすとらりあ/オーストラリア を/を -1.771150 か/か えら/選 -1.768442 か/か かいしゃ/会社 -0.814112 か/か と/と -0.762659 か/か の/の -0.920353 か/化 し/し -0.999313 か/家 かろう/家老 -0.348192 か/日 に/に -1.236949 か/書 い/い -1.269868 か/書 く/く -1.297359 か/科 たい/隊 -1.297359 か/科 どうぶつ/動物 -0.999313 か/駆 お/逐 -0.973530 かい/会 」/」 -0.999313 かいきょう/海峡 および/および -1.222773 かいさい/開催 さ/さ -1.153320 かいさい/開催 し/し -1.298561 かいしゃ/会社 うつ/移 -1.050127 かいしゃ/会社 に/に -0.910729 かいしゅう/改修 、/、 -0.935922 かいどう/街道 と/と -0.857072 かいふく/回復 に/に -0.971961 かえ/変え て/て -0.984671 かかわ/かかわ ら/ら -0.984671 かかわ/関わ ら/ら -0.989535 かがく/科学 てき/的 -0.857072 かくち/各地 に/に -0.526105 かくとく/獲得 し/し -1.404621 かくとく/獲得 する/する -0.991168 かけ/かけ られ/られ -0.973530 かけ/懸け た/た -0.933049 かけい/家系 は/は -0.849921 かげ/影 の/の -0.880528 かさい/火災 を/を -0.996106 かず/数 おお/多 -0.999313 かせぎ/稼ぎ れおん/レオン -0.918965 かせつ/仮説 が/が -0.984671 かた/語 ら/ら -0.263364 かっ/かっ た/た -0.999313 かつて/かつて そんざい/存在 -0.920353 かつどう/活動 し/し -0.998710 かなか/かなか しゅつじょう/出場 -0.996106 かねず/かねず きけん/危険 -0.849921 かのう/可能 の/の -0.998710 かぶしき/株式 がいしゃ/会社 -0.999313 かみのうがね/上納金 ごうだつ/強奪 -0.987907 かめむし/カメムシ や/や -1.480843 から/から 、/、 -1.983531 から/から あいるらんど/アイルランド -1.983531 から/から かず/数 -1.977744 から/から しゅっぱん/出版 -1.983531 から/から しゅよう/主要 -1.977744 から/から しーずん/シーズン -1.983531 から/から ただちに/直ちに -1.983531 から/から とおざけ/遠ざけ -1.288128 から/から の/の -1.983531 から/から のび/伸び -0.933049 からき/唐木 は/は -1.039024 かれ/彼 の/の -1.269868 かれ/彼 ら/ら -0.857072 かれっじ/カレッジ に/に -0.949089 かろう/家老 -0.970398 かわ/変わ っ/っ -0.967289 かわいらし/可愛らし い/い -0.999313 かん/間 ろせん/路線 -0.978270 かん/館 )/) -1.245683 かんがえ/考え て/て -1.282486 かんがえ/考え られ/られ -0.999313 かんきょう/環境 ほぜん/保全 -1.298561 かんけい/関係 し/史 -1.087288 かんけい/関係 を/を -0.348192 かんこく/韓国 に/に -0.857072 かんさい/関西 に/に -0.880528 かんしょ/官所 を/を -0.880528 かんじゃ/患者 を/を -0.857072 かんたい/艦隊 に/に -0.920353 かんちがい/勘違い し/し -1.297359 かんとりー/カントリー すきー/スキー -1.236949 かんとりー/カントリー ・/・ -0.933049 かんめい/艦名 は/は -0.920353 かんりょう/完了 し/し -0.920353 かんれん/関連 し/し -0.853506 が/が 、/、 -2.266263 が/が 「/「 -1.260146 が/が あ/あ -2.581276 が/が あふりか/アフリカ -2.693979 が/が うかがえ/伺え -2.693979 が/が えいじゃっくす/エイジャックス -2.693979 が/が えんだん/縁談 -2.581276 が/が おお/多 -2.449290 が/が おこな/行 -2.693979 が/が おわ/終わ -2.670481 が/が かいさい/開催 -2.693979 が/が かのう/可能 -2.693979 が/が きょくたん/極端 -2.693979 が/が こうふく/降伏 -2.010407 が/が さ/さ -2.693979 が/が さるがばば/猿ヶ馬場 -2.670481 が/が ざざーぐ/ザザーグ -2.693979 が/が しまなか/島中 -2.693979 が/が しんけん/真剣 -2.693979 が/が しんしゅつ/進出 -2.693979 が/が しんりゃく/侵略 -2.693979 が/が せいかつ/生活 -2.693979 が/が せいび/整備 -2.693979 が/が せっち/設置 -2.693979 が/が せんとう/先頭 -2.532686 が/が たか/多賀 -2.693979 が/が つ/付 -2.670481 が/が つか/使 -2.670481 が/が つよ/強 -2.693979 が/が てばな/手放 -2.693979 が/が とうじょう/登場 -2.693979 が/が とくちょう/特徴 -2.693979 が/が とれんとん/トレントン -1.680402 が/が な/な -2.670481 が/が に/二 -2.693979 が/が にほん/日本 -2.693979 が/が は/張 -2.670481 が/が ふぁー/ファー -2.693979 が/が ふるい/ふるい -2.693979 が/が ふるく/古く -1.833100 が/が ぼっぱつ/勃発 -2.693979 が/が めだ/目立 -2.693979 が/が もたら/もたら -2.693979 が/が ゆうれい/ユウレイ -2.693979 が/が わずか/わずか -0.372862 がいこく/外国 じん/人 -1.203673 がいしゃ/会社 -1.251604 がいしゃ/会社 (/( -0.923143 がいちゅう/害虫 で/で -0.933049 がいひ/外皮 は/は -0.910729 がいよう/概要 、/、 -0.857072 がくえん/学園 に/に -0.849921 がくせい/学生 の/の -0.372954 がす/ガス おんど/温度 -0.910729 がっかい/学会 、/、 -1.351154 がっこう/学校 で/で -1.177376 がっこう/学校 の/の -1.593668 がっこう/学校 へ/へ -1.245226 がっこう/学校 を/を -0.860026 がつ/月 に/に -1.332221 がつ/月 の/の -1.888724 がつ/月 10/10 -1.892583 がつ/月 13/13 -1.824133 がつ/月 2/2 -0.973900 がつ/月 26/26 -0.967289 がまーる/ガマール ・/・ -0.849921 がめとさいと/ガメトサイト の/の -0.999313 がんつ/ガンツ ちーむ/チーム -0.857072 がんねん/元年 に/に -0.999313 がーでぃあん/ガーディアン たち/達 -1.136990 き/き 、/、 -1.248633 き/き た/た -0.970398 き/切 っ/っ -0.987907 きいろあざみうま/キイロアザミウマ や/や -1.297359 きかん/期間 ちゅう/中 -1.050127 きかん/期間 に/に -0.999313 きかん/機関 ほう/砲 -1.472877 きけん/危険 ぎょうむ/業務 -1.463402 きけん/危険 だ/だ -1.383785 きけん/危険 な/な -0.999313 きしゃ/記者 あにか/アニカ -0.849921 きじゅん/基準 の/の -0.991168 きせ/着せ られ/られ -0.935922 きそ/基礎 と/と -0.998710 きた/北 たいへい/太平 -0.857072 きち/基地 に/に -0.935922 きちょう/基調 と/と -0.996106 きつりん/吉林 しょう/省 -0.973530 きめ/決め た/た -1.150949 きゃらくたー/キャラクター が/が -1.297359 きゃらくたー/キャラクター にんき/人気 -0.999313 きゅうしゅう/九州 だいがく/大学 -0.880528 きょういく/教育 を/を -0.935922 きょういん/教員 と/と -0.918965 きょうえん/共演 が/が -0.857072 きょうかい/協会 に/に -0.880528 きょうみ/興味 を/を -0.999313 きょうわ/共和 こく/国 -0.949089 きょく/局 -0.857072 きょくたん/極端 に/に -0.920353 きょしゅ/挙手 し/し -0.999313 きり/切り けいしき/形式 -0.998710 きれ/きれ ず/ず -1.388794 きろく/記録 さ/さ -0.526105 きろく/記録 し/し -0.999313 きん/金 かせぎ/稼ぎ -0.989535 きんだい/近代 てき/的 -0.910729 きんむ/勤務 、/、 -1.139815 ぎいん/議員 に/に -1.126204 ぎいん/議員 の/の -1.408736 ぎいん/議員 も/も -0.996106 ぎかい/議会 ぎいん/議員 -0.999313 ぎむざ/ギムザ せんしょく/染色 -0.998710 ぎょうむ/業務 じゅうじ/従事 -0.880528 ぎょらい/魚雷 を/を -1.710359 く/く -1.985327 く/く おこな/行 -2.061746 く/く おも/思 -2.061746 く/く かわいらし/可愛らし -1.944659 く/く こと/こと -1.811896 く/く する/する -2.061746 く/く どくだん/独断 -1.109695 く/く な/な -1.145167 く/く ばあい/場合 -2.061746 く/く ふなこし/船越 -0.849921 く/区 の/の -0.967289 く/食 い/い -0.999313 くうはく/  こうち/高知 -0.992808 くさかげろう/クサカゲロウ など/など -0.918965 くせ/癖 が/が -0.999313 くにのみや/久邇宮 たかおう/多嘉王 -1.039024 くび/首 の/の -1.087288 くび/首 を/を -0.918965 くぶん/区分 が/が -0.973530 くみあわせ/組み合わせ た/た -0.920353 くりかえ/繰り返 し/し -0.949089 くる/くる -0.880528 くるせいど/クルセイド を/を -0.971961 くれ/くれ て/て -0.975104 くれない/紅 (/( -0.998710 くろす/クロス かんとりー/カントリー -0.999313 くん/勲 きょく/局 -0.967289 くんしょう/勲章 ・/・ -0.918965 ぐるー/グルー が/が -1.298561 ぐん/軍 たゆう/太夫 -1.050127 ぐん/軍 に/に -0.975104 ぐんぶ/軍部 (/( -1.158100 けい/計 で/で -1.298561 けい/計 35/35 -0.880528 けいけん/経験 を/を -0.923143 けいごうきん/軽合金 で/で -0.923143 けいしき/形式 で/で -0.999313 けいじ/刑事 やく/役 -0.918965 けいそう/係争 が/が -0.849921 けいたい/形態 の/の -0.998710 けいば/競馬 じょう/場 -0.999313 けいりょう/軽量 か/化 -0.999313 けっきゅう/血球 ない/内 -0.920353 けっこん/結婚 し/し -0.935922 けっせい/結成 と/と -0.999313 けつ/血 とまつ/塗抹 -0.880528 けつだん/決断 を/を -1.050127 けん/剣 に/に -1.039024 けん/剣 の/の -1.337810 けん/県 -1.472877 けん/県 りつ/立 -1.404477 けん/県 (/( -1.340051 けんきゅう/研究 が/が -1.343720 けんきゅう/研究 し/し -1.596048 けんきゅう/研究 りょういき/領域 -1.596048 けんきゅう/研究 71/71 -0.999313 けんさく/検索 さいと/サイト -0.857072 けんしゅつ/検出 に/に -0.999313 けんぞう/建造 ひよう/費用 -0.959613 けんとう/検討 さ/さ -0.999313 げいのう/芸能 じょうほう/情報 -0.996106 げっかん/月間 だりつ/打率 -0.996106 げつれい/月例 しょう/賞 -0.998710 げん/現 :/: -1.158100 げんいん/原因 で/で -1.180289 げんいん/原因 と/と -0.849921 げんえき/現役 の/の -1.192720 げんざい/現在 に/に -1.378223 げんざい/現在 は/は -1.593668 げんざい/現在 ふぁー/ファー -1.512781 げんざい/現在 も/も -0.933049 こ/子 は/は -0.935922 こう/公 と/と -0.857072 こうい/行為 に/に -0.935922 こうえん/公園 と/と -0.880528 こうし/講師 を/を -0.935922 こうしゃ/校舎 と/と -0.857072 こうせい/光成 に/に -0.959613 こうせい/構成 さ/さ -0.880528 こうぞう/構造 を/を -0.999313 こうち/高知 けいば/競馬 -1.298561 こうつう/交通 しすてむ/システム -1.298561 こうつう/交通 もう/網 -0.976684 こうでら/国府 も/も -0.999313 こうとう/高等 おんがく/音楽 -0.999313 こうふく/降伏 さんせい/賛成 -0.935922 こうめい/孝明 と/と -0.910729 こうりゃん/コウリャン 、/、 -0.994453 こうれい/高齢 しゃ/者 -0.971961 こえ/超え て/て -0.999313 こく/国 きつりん/吉林 -0.989535 こくさい/国際 てき/的 -0.999313 こくりつ/国立 こうとう/高等 -0.857072 こしゅう/湖州 に/に -1.167684 こと/こと が/が -1.546734 こと/こと に/に -1.527598 こと/こと の/の -1.795041 こと/こと は/は -2.162532 こと/こと はっぴょう/発表 -2.006646 こと/こと も/も -0.367655 こと/こと を/を -0.359792 こと/事 が/が -0.970398 ことな/異な っ/っ -0.933049 ことば/言葉 は/は -0.849921 こども/子供 の/の -1.546707 この/この こと/こと -1.596048 この/この たたかい/闘い -1.596048 この/この とき/とき -1.596048 この/この はいせん/敗戦 -0.994453 こふん/古墳 じだい/時代 -0.857072 こぼこ/こぼこ に/に -0.999313 こみっく/コミック まーけっと/マーケット -1.474153 これ/これ いがい/以外 -0.505697 これ/これ に/に -1.249314 ころ/頃 、/、 -1.435210 ころ/頃 から/から -1.472877 ころ/頃 はせがわ/長谷川 -0.933049 こんこーど/コンコード は/は -0.999313 こんてんつ/コンテンツ はいしん/配信 -0.998710 こんぴゅーた/コンピュータ きゃらくたー/キャラクター -0.880528 こーひー/コーヒー を/を -1.401224 ご/後 、/、 -1.768626 ご/後 しょうめん/正面 -1.252976 ご/後 に/に -1.235394 ご/後 の/の -1.474363 ご/後 は/は -1.768626 ご/後 らずふぁーど/ラズファード -0.673562 ごう/号 せい/生 -1.532346 ごう/号 )/) -1.597319 ごう/号 533/533 -0.933049 ごうだつ/強奪 は/は -0.920353 ごうりゅう/合流 し/し -0.857072 ごと/毎 に/に -0.857072 ごろ/ごろ に/に -1.502622 さ/さ せ/せ -0.066358 さ/さ れ/れ -0.849921 さい/歳 の/の -0.849921 さいあく/最悪 の/の -0.999313 さいえんてぃすと/サイエンティスト たいぷ/タイプ -0.920353 さいかい/再会 し/し -1.292195 さいしゅう/最終 せん/戦 -1.279297 さいしゅう/最終 てき/的 -0.857072 さいしょ/最初 に/に -0.999313 さいしょう/崔鍾 しょく/植 -0.849921 さいしん/最新 の/の -0.880528 さいと/サイト を/を -0.920353 さいよう/採用 し/し -1.180289 さくひん/作品 と/と -1.298561 さくひん/作品 よみ/読み -0.923143 さしず/指図 で/で -0.880528 さっかー/サッカー を/を -0.999313 さるがばば/猿ヶ馬場 とうげ/峠 -0.999313 さんか/参加 めんばー/メンバー -0.880528 さんず/サンズ を/を -0.857072 さんせい/賛成 に/に -0.999313 さんちょう/山頂 ふきん/付近 -0.973530 さんでー/サンデー 」/」 -0.999313 ざいにち/在日 べいぐん/米軍 -1.180289 ざざーぐ/ザザーグ と/と -1.175259 ざざーぐ/ザザーグ は/は -0.880528 ざる/ざる を/を -0.872747 し/し 、/、 -0.523554 し/し た/た -2.782243 し/し だい/大 -2.826026 し/し つつ/つつ -0.448607 し/し て/て -1.740609 し/し な/な -2.826026 し/し にんむ/任務 -2.817467 し/し はつ/初 -2.817467 し/し やく/約 -2.826026 し/し よろこ/喜 -2.782243 し/し 8/8 -0.949089 し/史 -0.933049 し/市 は/は -0.540851 し/知 っ/っ -1.441614 し/知 ら/ら -0.923143 しあい/試合 で/で -0.991168 しい/強い られ/られ -0.857072 しいき/市域 に/に -0.923143 しかい/司会 で/で -0.968841 しかけ/仕掛け る/る -1.401224 しかし/しかし 、/、 -1.768626 しかし/しかし しんかい/晋海 -1.714061 しかし/しかし その/その -1.765089 しかし/しかし ながら/ながら -1.768626 しかし/しかし なつば/夏場 -1.765089 しかし/しかし みちの/美智乃 -0.967289 しがん/志願 する/する -0.967289 しき/指揮 する/する -0.967289 しきゅう/支給 する/する -0.918965 しじ/指示 が/が -0.933049 しすてむ/システム は/は -1.298561 しぜん/自然 こうえん/公園 -1.276131 しぜん/自然 や/や -0.910729 しぞんと/シゾント 、/、 -0.999313 しっこう/執行 ゆうよ/猶予 -0.880528 しつ/室 を/を -0.348192 しつ/質 に/に -0.849921 してい/姉弟 の/の -0.959613 してい/指定 さ/さ -0.976684 しどう/指導 も/も -0.880528 しなりお/シナリオ を/を -0.849921 しはん/市販 の/の -0.849921 しひょう/指標 の/の -1.297359 しほう/司法 せいど/制度 -1.039024 しほう/司法 の/の -0.992808 しぼう/死亡 じょくん/叙勲 -0.849921 しまい/姉妹 の/の -0.999313 しまだ/島田 しんすけ/紳助 -0.923143 しまなか/島中 で/で -0.996106 しめ/示 す/す -1.357904 しゃ/社 、/、 -0.668468 しゃ/社 から/から -1.377059 しゃ/社 が/が -0.804292 しゃ/者 が/が -0.845869 しゃ/者 じょくん/叙勲 -1.333033 しゃ/者 に/に -1.316933 しゃ/者 の/の -0.880528 しゃかい/社会 を/を -0.970398 しゃべ/喋 っ/っ -0.999313 しゃりょう/車両 かさい/火災 -0.999313 しゃんはい/上海 どくしょう/独唱 -1.180289 しゅ/主 と/と -1.298561 しゅ/主 もり/森 -1.298561 しゅい/首位 だしゃ/打者 -1.087288 しゅい/首位 を/を -0.994453 しゅうかん/週刊 しょうねん/少年 -0.999313 しゅうじ/修二 めいぎ/名義 -0.918965 しゅうだん/集団 が/が -0.849921 しゅうちゃく/執着 の/の -0.935922 しゅうへい/州兵 と/と -0.857072 しゅうへん/周辺 に/に -0.933049 しゅうり/修理 は/は -1.285698 しゅうりょう/終了 ご/後 -1.153320 しゅうりょう/終了 し/し -0.918965 しゅぎ/主義 が/が -0.999313 しゅじん/主人 こう/公 -0.910729 しゅっこう/出航 、/、 -0.920353 しゅっぱつ/出発 し/し -1.222773 しゅっぱん/出版 さ/さ -1.288935 しゅっぱん/出版 しゃ/社 -1.153320 しゅつじょう/出場 し/し -1.297359 しゅつじょう/出場 でき/でき -0.967289 しゅよう/主要 な/な -0.999313 しゅりゅう/手榴 だん/弾 -0.949089 しゅヴぇーげりん/シュヴェーゲリン -1.298561 しょう/小 かんたい/艦隊 -1.288935 しょう/小 がっこう/学校 -1.472877 しょう/省 こしゅう/湖州 -1.139815 しょう/省 に/に -1.472877 しょう/省 りくじょう/陸上 -1.472877 しょう/賞 きん/金 -1.472877 しょう/賞 くん/勲 -1.276856 しょう/賞 で/で -0.967289 しょうかい/紹介 する/する -0.999313 しょうがく/小学 かん/館 -0.989535 しょうきょく/消極 てき/的 -0.949089 しょうじょ/少女 -0.933049 しょうせつ/小説 は/は -0.933049 しょうそく/消息 は/は -1.597319 しょうねん/少年 さんでー/サンデー -0.673562 しょうねん/少年 しほう/司法 -1.595360 しょうねん/少年 れい/令 -0.999313 しょうめん/正面 すたんど/スタンド -1.472877 しょうわ/昭和 17/17 -1.472877 しょうわ/昭和 31/31 -1.472877 しょうわ/昭和 62/62 -0.981458 しょく/植 「/「 -0.967289 しょく/食 する/する -0.918965 しょくいん/職印 が/が -0.987907 しょくばい/触媒 や/や -0.849921 しょけい/処刑 の/の -0.880528 しょっく/ショック を/を -1.222773 しよう/使用 さ/さ -1.153320 しよう/使用 し/し -0.880528 しらせ/報せ を/を -0.999313 しれい/司令 ぶ/部 -0.967289 しろ/白 い/い -0.857072 しろう/四郎 に/に -0.918965 しんかい/晋海 が/が -0.999313 しんき/新規 さんか/参加 -0.857072 しんけん/真剣 に/に -0.920353 しんしゅつ/進出 し/し -0.999313 しんじん/新人 おう/王 -0.935922 しんすけ/紳助 と/と -0.933049 しんだん/診断 は/は -0.920353 しんとう/浸透 し/し -0.920353 しんにゅう/侵入 し/し -0.920353 しんりゃく/侵略 し/し -0.989535 しんわ/神話 てき/的 -1.297359 しーずん/シーズン さいしゅう/最終 -1.298561 しーずん/シーズン つうさん/通算 -0.973530 じ/じ た/た -0.849921 じ/寺 の/の -0.999313 じ/時 57/57 -1.285698 じ/次 せかい/世界 -1.298561 じ/次 ちゅうとう/中東 -0.999313 じかん/時間 どらま/ドラマ -0.372214 じぎょう/事業 しゃ/者 -0.967289 じけつ/自決 する/する -0.998710 じしん/地震 けい/計 -0.490141 じだい/時代 の/の -1.507732 じだい/時代 ・/・ -0.967289 じっしょう/実証 する/する -0.923143 じてん/時点 で/で -0.880528 じぶん/自分 を/を -0.849921 じゅう/中 の/の -0.999313 じゅう/十 しろう/四郎 -0.967289 じゅうぐん/従軍 する/する -0.880528 じゅうげき/銃撃 を/を -0.998710 じゅうし/銃士 たい/隊 -0.372214 じゅうじ/従事 しゃ/者 -0.999313 じょ/序 れつ/列 -0.923143 じょう/上 で/で -1.502037 じょう/城 」/」 -1.593668 じょう/城 しゅ/主 -1.596048 じょう/城 せいちょう/政庁 -1.245226 じょう/城 を/を -1.136990 じょう/場 、/、 -1.158100 じょう/場 で/で -0.959613 じょうえん/上演 さ/さ -0.920353 じょうしょう/上昇 し/し -0.880528 じょうほう/情報 を/を -0.423850 じょくん/叙勲 、/、 -1.351093 じょくん/叙勲 の/の -1.552776 じょくん/叙勲 は/は -0.999313 じょし/女子 がくせい/学生 -0.857072 じょせい/女性 に/に -0.967289 じょなさん/ジョナサン ・/・ -1.453800 じん/人 じょくん/叙勲 -1.463402 じん/人 だ/だ -1.439783 じん/人 や/や -0.880528 じんせい/人生 を/を -0.923143 じんぶつ/人物 で/で -0.999313 じんみん/人民 きょうわ/共和 -1.471084 す/す こと/事 -1.472877 す/す しひょう/指標 -1.471084 す/す ひょうげん/表現 -0.999313 すいらい/水雷 てい/艇 -0.967289 すう/数 ねん/年 -0.910729 すえ/末 、/、 -0.967289 すき/好き な/な -1.298561 すきー/スキー しどう/指導 -1.050127 すきー/スキー に/に -0.849921 すこてぃあ/スコティア の/の -0.999313 すご/凄 まじ/まじ -0.857072 すたんど/スタンド に/に -0.976684 すぽーつ/スポーツ も/も -0.557872 する/する -2.056975 する/する 」/」 -2.229005 する/する か/か -2.174945 する/する から/から -1.734725 する/する が/が -2.290764 する/する ぎいん/議員 -2.174945 する/する こと/こと -2.335726 する/する こんてんつ/コンテンツ -2.335726 する/する ぜんこう/全校 -1.421784 する/する ため/ため -1.320820 する/する と/と -1.488096 する/する の/の -2.335726 する/する ひめはな/ヒメハナ -2.290764 する/する よう/よう -0.918965 するたん/スルタン が/が -1.318661 ず/ず 、/、 -1.596048 ず/ず つね/常 -1.596048 ず/ず ふみやす/文保 -1.593668 ず/ず 7/7 -1.400259 せ/せ た/た -1.396081 せ/せ て/て -1.387845 せ/せ る/る -0.998710 せい/制 れい/令 -0.999313 せい/性 ほしょく/捕食 -1.180289 せい/生 と/と -1.039024 せい/生 の/の -0.999313 せいかつ/生活 かんきょう/環境 -0.959613 せいこう/成功 さ/さ -0.999313 せいじ/政治 こうぞう/構造 -0.999313 せいせき/成績 ゆうしゅう/優秀 -0.849921 せいちょう/政庁 の/の -0.849921 せいと/生徒 の/の -0.346764 せいど/制度 の/の -0.367951 せいひん/製品 ・/・ -0.959613 せいび/整備 さ/さ -0.918965 せいふく/制服 が/が -0.857072 せいまご/世孫 に/に -0.857072 せいむ/政務 に/に -1.691198 せかい/世界 かくち/各地 -1.691198 せかい/世界 きじゅん/基準 -1.691198 せかい/世界 じゅう/中 -1.691198 せかい/世界 たいせん/大戦 -1.691198 せかい/世界 とっぷ/トップ -0.967289 せかんど/セカンド ・/・ -0.999313 せき/赤 けっきゅう/血球 -0.918965 せき/隻 が/が -0.959613 せっけい/設計 さ/さ -0.996106 せっこう/浙江 しょう/省 -0.959613 せっち/設置 さ/さ -1.050127 せつ/説 に/に -1.087288 せつ/説 を/を -0.920353 せつやく/節約 し/し -0.973530 せの/瀬乃 」/」 -0.984671 せま/迫 ら/ら -0.998710 せらー/セラー さくひん/作品 -1.180289 せるてぃっくす/セルティックス と/と -1.050127 せるてぃっくす/セルティックス に/に -1.391944 せん/戦 っ/っ -1.139815 せん/戦 に/に -1.471084 せん/戦 まで/まで -0.986286 せん/船 から/から -0.967289 せんきゅうひゃくきゅうじゅうきゅう/1999 ねん/年 -0.967289 せんきゅうひゃくきゅうじゅうはち/1998 ねん/年 -0.967289 せんきゅうひゃくはちじゅうなな/1987 ねん/年 -0.967289 せんきゅうひゃくはちじゅうはち/1988 ねん/年 -0.920353 せんし/戦死 し/し -0.880528 せんしゅ/選手 を/を -0.857072 せんしょく/染色 に/に -0.880528 せんす/センス を/を -1.267480 せんそう/戦争 が/が -1.276856 せんそう/戦争 で/で -1.139815 せんそう/戦争 に/に -0.933049 せんたい/船体 は/は -0.857072 せんとう/先頭 に/に -0.998710 せんとう/戦闘 しゅうりょう/終了 -0.849921 せんない/船内 の/の -0.967289 せんねん/専念 する/する -0.994453 せんもん/専門 がっこう/学校 -0.967289 せんれつ/鮮烈 な/な -1.471084 ぜん/全 さくひん/作品 -1.472877 ぜん/全 にっぽん/日本 -1.472877 ぜん/全 ひてい/否定 -0.918965 ぜんいん/全員 が/が -0.999313 ぜんこう/全校 せいと/生徒 -0.880528 そうこう/走行 を/を -0.999313 そうだ/操舵 しつ/室 -0.967289 そうだん/相談 な/な -0.967289 そうちゃく/装着 する/する -0.996106 そうは/争覇 せん/戦 -0.880528 そうび/装備 を/を -0.935922 そこく/祖国 と/と -0.910729 そして/そして 、/、 -0.999313 そだ/育 ち/ち -0.968841 そだて/育て る/る -0.949089 そつ/卒 -0.920353 そつぎょう/卒業 し/し -2.030202 その/その あと/後 -2.061746 その/その うえ/うえ -2.061746 その/その えいきょう/影響 -2.061746 その/その かけい/家系 -1.148400 その/その ころ/頃 -1.141080 その/その ご/後 -2.061746 その/その じてん/時点 -2.061746 その/その にが/苦 -2.061746 その/その ば/場 -2.061746 その/その ひ/日 -0.999313 そらも/空燃 ひ/比 -0.352747 そりゅーしょん/ソリューション を/を -0.849921 そるがむ/ソルガム の/の -1.050127 そるごー/ソルゴー に/に -1.251604 そるごー/ソルゴー (/( -0.372862 それ/それ まで/まで -0.920353 そんざい/存在 し/し -0.880528 ぞうちく/増築 を/を -0.421633 た/た -1.658668 た/た 、/、 -2.452264 た/た 「/「 -2.348029 た/た 」/」 -2.743222 た/た あと/後 -2.822205 た/た あめりか/アメリカ -2.842688 た/た うみず/海津 -1.972243 た/た えいせい/衛生 -2.842688 た/た えんげき/演劇 -1.606259 た/た が/が -2.743222 た/た きけん/危険 -2.743222 た/た けん/県 -2.822205 た/た げんいん/原因 -1.388982 た/た こと/こと -2.822205 た/た こと/事 -2.842688 た/た し/市 -2.842688 た/た せんしゅ/選手 -2.842688 た/た せんれつ/鮮烈 -2.743222 た/た ぜん/全 -2.842688 た/た たかくら/高倉 -1.560187 た/た ため/ため -1.648561 た/た と/と -2.842688 た/た ところ/ところ -1.454692 た/た の/の -1.957435 た/た ばあい/場合 -2.842688 た/た ふしん/不審 -2.842688 た/た ふたり/2人 -2.842688 た/た ほうこく/報告 -2.842688 た/た まいける/マイケル -2.842688 た/た まーくるんど/マークルンド -2.699460 た/た もの/もの -2.842688 た/た ろんぶん/論文 -1.869051 た/た (/( -0.991168 た/立 つ/つ -0.394560 たい/対 し/し -1.298561 たい/隊 いん/員 -1.292195 たい/隊 ちょう/長 -0.849921 たいい/大尉 の/の -0.967289 たいえき/退役 する/する -0.986286 たいき/待機 から/から -0.967289 たいくつ/退屈 な/な -0.918965 たいせん/大戦 が/が -0.849921 たいぷ/タイプ の/の -0.372954 たいへい/太平 よう/洋 -0.973530 たえ/絶え た/た -1.597754 たか/多賀 こうでら/国府 -0.534034 たか/多賀 じょう/城 -0.935922 たかおう/多嘉王 と/と -0.999313 たかくら/高倉 としあき/敏明 -0.994453 たかさか/高坂 えき/駅 -0.975104 たかはし/高橋 (/( -1.298561 たがい/互い しゃべ/喋 -1.039024 たがい/互い の/の -0.998710 たけ/嶽 しぜん/自然 -0.994453 たたか/戦 う/う -0.918965 たたかい/闘い が/が -0.910729 ただし/ただし 、/、 -0.999313 ただちに/直ちに じけつ/自決 -0.935922 たち/達 と/と -0.910729 たちあげ/立ち上げ 、/、 -0.923143 たつじん/達人 で/で -0.991168 たて/立て られ/られ -0.857072 たて/縦 に/に -0.968841 たとえ/喩え る/る -0.999313 たの/頼 ま/ま -0.880528 たび/旅 を/を -0.794225 ため/ため 、/、 -1.895195 ため/ため たいえき/退役 -0.528932 ため/ため に/に -0.849921 たゆう/太夫 の/の -0.999313 たんじょう/誕生 び/日 -0.998710 たんぱく/タンパク しつ/質 -0.949089 たんぱく/淡白 -0.923143 たんれい/端麗 で/で -1.424492 だ/だ -1.340051 だ/だ が/が -1.593668 だ/だ とき/時 -1.177376 だ/だ の/の -0.996106 だ/出 あふりか/アフリカ -1.298561 だい/代 かんしょ/官所 -1.298561 だい/代 とうしゅ/当主 -1.472877 だい/大 そつ/卒 -1.472877 だい/大 の/野 -1.472877 だい/大 ひっと/ヒット -0.709716 だい/第 に/二 -1.770318 だい/第 18/18 -1.716547 だい/第 2/2 -1.754657 だい/第 6/6 -0.967289 だいかん/代官 ・/・ -0.998710 だいがく/大学 ほうせい/法政 -0.923143 だいしょうすけ/大賞典 で/で -0.959613 だいひょう/代表 さ/さ -0.999313 だいよう/代用 きょういん/教員 -0.880528 だしゃ/打者 を/を -0.404797 だっ/だっ た/た -0.920353 だっしゅつ/脱出 し/し -0.967289 だぶる/ダブル ・/・ -1.336166 だりつ/打率 は/は -0.547967 だりつ/打率 ./. -0.991168 だれ/誰 か/か -0.880528 だん/弾 を/を -0.999313 だんせい/弾性 は/波 -0.910729 ち/ち 、/、 -0.999313 ちいき/地域 しゃかい/社会 -0.999313 ちぇすと/チェスト ばすたー/バスター -0.967289 ちか/近 い/い -0.918965 ちから/力 が/が -0.987907 ちぎょう/知行 2/2 -0.999313 ちぐさ/千草 しまい/姉妹 -0.923143 ちちおや/父親 で/で -1.203673 ちゃく/着 -1.180289 ちゃく/着 と/と -0.923143 ちゃーと/チャート で/で -1.050127 ちゅう/中 に/に -1.039024 ちゅう/中 の/の -0.999313 ちゅうか/中華 じんみん/人民 -0.998710 ちゅうしゃ/駐車 じょう/場 -0.999313 ちゅうだん/中団 たいき/待機 -0.996106 ちゅうとう/中東 せんそう/戦争 -1.400259 ちょう/長 」/」 -1.471084 ちょう/長 きかん/期間 -1.458574 ちょう/長 じだい/時代 -0.967289 ちょうさ/調査 ・/・ -0.880528 ちょうし/調子 を/を -0.994453 ちょうせん/朝鮮 しょうねん/少年 -0.880528 ちようこ/蝶子 を/を -0.996106 ちんたい/賃貸 おふぃす/オフィス -0.849921 ちーむ/チーム の/の -0.226246 っ/っ た/た -0.523046 っ/っ て/て -0.936007 つ/つ -0.817119 つ/つ い/い -1.844953 つ/つ か/か -1.598247 つ/つ と/と -1.344297 つ/つ の/の -0.959613 つ/付 さ/さ -0.967289 つ/就 い/い -0.923143 つうさん/通算 で/で -0.998710 つうしん/通信 じぎょう/事業 -1.039024 つうじょう/通常 の/の -1.175259 つうじょう/通常 は/は -1.298561 つか/使 え/え -1.288935 つか/使 わ/わ -0.973530 つかい/つかい 」/」 -0.968841 つかえ/使え る/る -0.994453 つきあ/付き合 う/う -0.971961 つけ/着け て/て -0.910729 つつ/つつ 、/、 -0.967289 つづ/続 い/い -0.968841 つづけ/続け る/る -1.248633 つとめ/務め た/た -1.245683 つとめ/務め て/て -0.857072 つね/常 に/に -0.370705 つよ/強 く/く -1.261214 て/て 、/、 -0.463058 て/て い/い -2.806331 て/て いき/生き -2.806331 て/て いんよう/飲用 -1.152203 て/て お/お -2.806331 て/て おんなのこ/女の子 -2.786652 て/て き/き -2.806331 て/て ぎょらい/魚雷 -2.806331 て/て くる/くる -2.806331 て/て くれ/くれ -2.806331 て/て けんぞう/建造 -2.710451 て/て げんざい/現在 -2.806331 て/て こうせい/構成 -2.786652 て/て し/知 -2.806331 て/て しゅっこう/出航 -2.806331 て/て しんとう/浸透 -2.561108 て/て その/その -2.806331 て/て たたか/戦 -2.806331 て/て たて/立て -2.806331 て/て だいよう/代用 -2.806331 て/て だっしゅつ/脱出 -2.786652 て/て つか/使 -2.806331 て/て とうげん/桃源 -2.806331 て/て とうろく/登録 -2.806331 て/て どうろ/道路 -2.256092 て/て な/な -1.609488 て/て は/は -2.806331 て/て ひ/妃 -2.806331 て/て ふさわし/ふさわし -2.806331 て/て みの/美濃 -1.726294 て/て も/も -2.806331 て/て やよい/弥生 -1.933378 て/て やん/やん -0.880528 て/手 を/を -0.992808 てい/艇 3/3 -0.920353 ていきょう/提供 し/し -0.999313 ていど/程度 うごか/動か -1.811967 てき/的 けんきゅう/研究 -1.535446 てき/的 で/で -0.762015 てき/的 な/な -0.821692 てき/的 に/に -0.920353 てばな/手放 し/し -0.971961 てれ/照れ て/て -0.849921 てんし/天使 の/の -0.998710 てんしよう/天正 10/10 -0.999313 てんのう/天皇 はい/杯 -1.492866 で/で 、/、 -2.295462 で/で 「/「 -0.742803 で/で あ/あ -2.651069 で/で あいて/相手 -2.131021 で/で い/い -2.454645 で/で おこな/行 -2.651069 で/で かいふく/回復 -2.651069 で/で かつどう/活動 -2.651069 で/で からき/唐木 -2.651069 で/で きめ/決め -2.633193 で/で きろく/記録 -2.651069 で/で けいじ/刑事 -2.651069 で/で けいりょう/軽量 -2.651069 で/で こうし/講師 -2.651069 で/で しなりお/シナリオ -2.633193 で/で しよう/使用 -2.651069 で/で じょうえん/上演 -2.651069 で/で じょせい/女性 -2.651069 で/で せいせき/成績 -2.651069 で/で せんし/戦死 -2.651069 で/で そだ/育 -2.563308 で/で だりつ/打率 -2.633193 で/で どうぶつ/動物 -1.523886 で/で の/の -0.818315 で/で は/は -2.633193 で/で はいき/排気 -2.633193 で/で はつ/初 -2.651069 で/で ほくと/ホクト -2.651069 で/で ゆうしょう/優勝 -2.651069 で/で わしんとん/ワシントン -2.563308 で/で 4/4 -2.523988 で/で 9/9 -0.999313 でいりー/デイリー らんきんぐ/ランキング -1.236949 でき/でき な/な -1.239841 でき/でき る/る -0.949089 です/です -0.999313 でんげき/電撃 おん/オン -0.918965 でんれい/伝令 が/が -1.464534 と/と 、/、 -2.688878 と/と あかね/茜 -2.688878 と/と あわー/アワー -1.006389 と/と い/い -1.666615 と/と い/言 -2.688878 と/と いち/一 -2.688878 と/と いっしょ/一緒 -2.688878 と/と おおしま/大島 -2.688878 と/と かんちがい/勘違い -2.688878 と/と き/切 -2.688878 と/と けっこん/結婚 -2.126017 と/と さ/さ -2.688878 と/と さいかい/再会 -0.668358 と/と し/し -2.688878 と/と すこてぃあ/スコティア -2.194397 と/と する/する -2.688878 と/と せいむ/政務 -2.688878 と/と せんす/センス -2.688878 と/と そこく/祖国 -2.672438 と/と そるごー/ソルゴー -2.688878 と/と つきあ/付き合 -2.688878 と/と と/問 -0.932849 と/と な/な -1.595925 と/と の/の -2.672438 と/と はつね/初音 -2.293826 と/と も/も -0.994453 と/問 わ/わ -0.996106 とうきょう/とうきょう おふぃす/オフィス -1.292195 とうきょう/東京 おふぃす/オフィス -1.298561 とうきょう/東京 くるせいど/クルセイド -0.880528 とうげ/峠 を/を -0.994453 とうげん/桃源 しゃ/社 -0.880528 とうさつ/盗撮 を/を -0.999313 とうしゅ/当主 もうり/毛利 -1.272988 とうじ/当時 から/から -1.039024 とうじ/当時 の/の -0.949089 とうじょう/登場 -0.920353 とうちゃく/到着 し/し -0.978270 とうなーけん/とうなーけん )/) -0.923143 とうひょう/投票 で/で -0.920353 とうろく/登録 し/し -0.999313 とおざけ/遠ざけ かねず/かねず -0.857072 とき/とき に/に -0.348192 とき/時 に/に -0.923143 とくちょう/特徴 で/で -0.996106 とくに/とくに 8/8 -0.910729 ところ/ところ 、/、 -0.999313 とし/都市 かん/間 -0.981458 としあき/敏明 「/「 -0.998710 としょ/図書 しゅっぱん/出版 -0.999313 とっぷ/トップ 50/50 -0.910729 とつぜん/突然 、/、 -0.991168 ととのえ/整え られ/られ -0.971961 となえ/唱え て/て -0.999313 とまつ/塗抹 ぎむざ/ギムザ -0.857072 とも/とも に/に -0.849921 ともこ/智子 の/の -0.999313 とよみ/豊見 おや/親 -0.857072 とりしらべ/取り調べ に/に -0.935922 とりにだーど/トリニダード と/と -0.920353 とりもど/取り戻 し/し -0.999313 とりわけ/取り分け おおきな/大きな -0.923143 とれんとん/トレントン で/で -0.910729 とろふぉぞいと/トロフォゾイト 、/、 -0.918965 とんぼ/とんぼ が/が -0.857072 ど/度 に/に -0.998710 どいつ/ドイツ じん/人 -0.920353 どういん/動員 し/し -0.999313 どうちゅう/道中 ちゅうだん/中団 -1.150949 どうぶつ/動物 が/が -1.298561 どうぶつ/動物 びょういん/病院 -0.910729 どうろ/道路 、/、 -0.999313 どくしょう/独唱 かい/会 -0.923143 どくだん/独断 で/で -0.849921 どちゃく/土着 の/の -0.923143 どらま/ドラマ で/で -0.857072 どれん/ドレン に/に -0.998710 どーぱんと/ドーパント ふく/含 -0.713557 な/な い/い -2.542434 な/な いしょう/衣装 -2.542434 な/な うえ/上 -2.542434 な/な えいぞう/映像 -2.542434 な/な えぴそーど/エピソード -2.542434 な/な おにごっこ/鬼ごっこ -2.542434 な/な かいどう/街道 -1.241899 な/な かっ/かっ -2.542434 な/な かなか/かなか -2.310306 な/な く/く -2.069316 な/な さ/さ -2.451867 な/な しょうねん/少年 -2.542434 な/な たび/旅 -0.852915 な/な っ/っ -2.542434 な/な べすと/ベスト -2.451867 な/な もの/もの -1.499734 な/な り/り -1.571477 な/な る/る -0.849921 ない/内 の/の -0.999313 ないかく/内閣 ふ/府 -0.992808 ないそう/内装 など/など -0.999313 なおひろ/直弘 りゅうじ/龍治 -0.910729 なか/中 、/、 -0.999313 なかの/中野 です/です -0.918965 ながよし/長可 が/が -1.136990 ながら/ながら 、/、 -1.298561 ながら/ながら ものがたり/物語 -1.180289 なす/ナス と/と -1.039024 なす/ナス の/の -0.857072 なつば/夏場 に/に -1.401154 など/など 、/、 -1.423318 など/など が/が -1.271373 など/など に/に -0.688395 など/など の/の -0.999313 なな/七 ふしぎ/不思議 -1.175259 なまえ/名前 は/は -1.087288 なまえ/名前 を/を -0.984671 なん/何 ら/ら -0.998710 なんて/なんて かんがえ/考え -0.923143 なんぶ/南部 で/で -0.994453 なんぼくちょう/南北朝 じだい/時代 -0.857072 なーせる/ナーセル に/に -1.735589 に/に 、/、 -1.872722 に/に 「/「 -2.078505 に/に あ/あ -2.936165 に/に あた/あた -2.936165 に/に あつま/集ま -2.936165 に/に い/行 -2.936165 に/に いじゅう/移住 -2.936165 に/に いた/至 -2.119438 に/に いち/位置 -2.763798 に/に お/お -2.936165 に/に おおいた/大分 -2.125535 に/に おけ/おけ -2.585107 に/に おこな/行 -2.936165 に/に かけ/かけ -2.936165 に/に かつて/かつて -2.936165 に/に かわ/変わ -2.936165 に/に かんりょう/完了 -2.936165 に/に かんれん/関連 -2.936165 に/に きた/北 -2.936165 に/に きょうみ/興味 -2.936165 に/に きんむ/勤務 -2.936165 に/に くにのみや/久邇宮 -2.898175 に/に くび/首 -2.936165 に/に ごうりゅう/合流 -2.936165 に/に さんちょう/山頂 -1.595356 に/に し/し -2.936165 に/に しがん/志願 -2.936165 に/に してい/指定 -2.936165 に/に しはん/市販 -2.898175 に/に しゅつじょう/出場 -2.936165 に/に しょうきょく/消極 -2.936165 に/に じゅうぐん/従軍 -2.936165 に/に じょうしょう/上昇 -2.936165 に/に すぽーつ/スポーツ -2.936165 に/に せいこう/成功 -2.898175 に/に せいひん/製品 -2.936165 に/に せんねん/専念 -2.763798 に/に ぜん/全 -2.936165 に/に た/立 -1.990955 に/に たい/対 -2.898175 に/に たいへい/太平 -2.936165 に/に たとえ/喩え -2.936165 に/に たの/頼 -2.936165 に/に だいひょう/代表 -1.933613 に/に つ/つ -2.936165 に/に つ/就 -2.936165 に/に つけ/着け -2.936165 に/に てんのう/天皇 -2.898175 に/に とうきょう/東京 -2.936165 に/に とりわけ/取り分け -1.794907 に/に な/な -2.936165 に/に にゅうせん/入選 -1.043088 に/に は/は -2.936165 に/に はい/入 -2.936165 に/に はいぞく/配属 -2.936165 に/に はいふ/配布 -2.936165 に/に はいぼく/敗北 -2.936165 に/に はくい/白衣 -2.936165 に/に はんぱつ/反発 -2.898175 に/に ひと/ヒト -2.936165 に/に ふ/振 -2.936165 に/に ぶんげい/文芸 -2.936165 に/に へんじ/返事 -2.936165 に/に ほうしゅつ/放出 -2.936165 に/に ほんのう/本能 -2.936165 に/に ぼうだん/防弾 -2.898175 に/に みちの/美智乃 -2.936165 に/に みりょう/魅了 -2.936165 に/に むか/向か -2.898175 に/に むけ/向け -2.936165 に/に め/目 -1.505409 に/に も/も -2.936165 に/に やっと/やっと -1.157151 に/に よ/よ -2.125535 に/に よびだ/呼び出 -2.936165 に/に らんくいん/ランクイン -2.936165 に/に らーる/ラール -2.119438 に/に りま/りま -2.936165 に/に わた/亘 -2.936165 に/に わたり/渡り -1.581718 に/二 い/位 -1.581718 に/二 ごう/号 -0.673562 に/二 じ/次 -0.967289 にが/苦 い/い -0.910729 にく/肉 、/、 -0.999313 にしよどがわ/西淀川 く/区 -0.967289 にせんご/2005 ねん/年 -0.967289 にせんじゅういち/2011 ねん/年 -0.967289 にせんじゅうに/2012 ねん/年 -0.967289 にせんなな/2007 ねん/年 -1.435210 にち/日 から/から -1.472877 にち/日 くうはく/  -1.126204 にち/日 の/の -0.996106 にちろ/日露 せんそう/戦争 -0.999313 にっぽん/日本 しんじん/新人 -0.999313 にほん/日本 さっかー/サッカー -0.949089 にゅうせん/入選 -0.503263 にん/人 の/の -1.240203 にん/人 を/を -1.298561 にんき/人気 とうひょう/投票 -1.276131 にんき/人気 2/2 -0.959613 にんてい/認定 さ/さ -0.857072 にんむ/任務 に/に -0.999313 ねっと/ネット じょう/上 -1.713814 ねん/年 、/、 -2.277857 ねん/年 げんざい/現在 -2.239038 ねん/年 ご/後 -2.318941 ねん/年 せい/制 -0.907664 ねん/年 に/に -2.310930 ねん/年 まえ/前 -0.989335 ねん/年 (/( -0.714663 ねん/年 )/) -2.239038 ねん/年 3/3 -2.277857 ねん/年 6/6 -2.258014 ねん/年 9/9 -2.281158 の/の 「/「 -2.912179 の/の あ/ア -2.912179 の/の あいだ/間 -2.912179 の/の あこがれ/憧れ -2.912179 の/の あさ/朝 -2.068757 の/の い/い -2.912179 の/の いぇーがん/イェーガン -2.867414 の/の いち/位置 -2.912179 の/の いっしゅ/一種 -2.912179 の/の いのち/命 -2.912179 の/の いみ/意味 -2.867414 の/の いりょう/医療 -2.912179 の/の いんちょう/院長 -2.912179 の/の いんなー/インナー -2.912179 の/の うち/うち -2.638409 の/の えき/駅 -2.912179 の/の えきがく/疫学 -2.912179 の/の おそく/遅く -2.518130 の/の か/か -2.867414 の/の かれ/彼 -2.867414 の/の かんけい/関係 -2.867414 の/の かんとりー/カントリー -2.912179 の/の がいちゅう/害虫 -2.912179 の/の がいひ/外皮 -2.912179 の/の がいよう/概要 -2.912179 の/の きそ/基礎 -2.912179 の/の きょういく/教育 -2.912179 の/の きょうえん/共演 -2.912179 の/の きょしゅ/挙手 -2.867414 の/の くび/首 -2.912179 の/の くぶん/区分 -2.912179 の/の けんしゅつ/検出 -2.912179 の/の げいのう/芸能 -2.912179 の/の げっかん/月間 -2.912179 の/の げつれい/月例 -2.867414 の/の げんいん/原因 -2.912179 の/の こ/子 -2.912179 の/の こうい/行為 -2.912179 の/の こうしゃ/校舎 -2.912179 の/の ことな/異な -2.867414 の/の ころ/頃 -2.912179 の/の こんぴゅーた/コンピュータ -2.912179 の/の さしず/指図 -2.912179 の/の しかい/司会 -2.867414 の/の しぜん/自然 -2.912179 の/の しぞんと/シゾント -2.867414 の/の しつ/質 -2.867414 の/の しゅい/首位 -2.912179 の/の しゅうだん/集団 -2.912179 の/の しゅうちゃく/執着 -2.912179 の/の しゅうへい/州兵 -2.912179 の/の しょうじょ/少女 -2.912179 の/の しょうそく/消息 -2.912179 の/の しょくいん/職印 -2.912179 の/の しんき/新規 -2.912179 の/の じしん/地震 -2.912179 の/の じゅうげき/銃撃 -2.912179 の/の じょなさん/ジョナサン -2.912179 の/の じんせい/人生 -2.912179 の/の すいらい/水雷 -2.912179 の/の すえ/末 -2.912179 の/の せいじ/政治 -2.867414 の/の せいひん/製品 -2.912179 の/の せんもん/専門 -2.912179 の/の そうだん/相談 -2.468542 の/の その/その -2.638409 の/の たか/多賀 -2.912179 の/の たつじん/達人 -2.912179 の/の たんじょう/誕生 -2.574119 の/の だい/第 -2.912179 の/の ちいき/地域 -2.912179 の/の ちちおや/父親 -2.912179 の/の ちょうし/調子 -2.912179 の/の ちようこ/蝶子 -2.912179 の/の ちんたい/賃貸 -2.912179 の/の つうしん/通信 -2.912179 の/の つかい/つかい -1.709045 の/の で/で -2.867414 の/の とき/時 -2.912179 の/の どちゃく/土着 -2.068757 の/の な/な -2.912179 の/の ないそう/内装 -2.127846 の/の なまえ/名前 -1.587126 の/の は/は -2.867414 の/の はんざい/犯罪 -2.713898 の/の ばあい/場合 -2.912179 の/の ひと/一 -2.912179 の/の ひとり/1人 -2.912179 の/の ひろた/広食 -2.912179 の/の ふぃじかる/フィジカル -2.127846 の/の ふたり/二人 -2.120166 の/の ぶか/部下 -2.867414 の/の ぶたい/部隊 -2.912179 の/の ぶんせき/分析 -2.912179 の/の へん/変 -2.912179 の/の へんか/変化 -2.912179 の/の ほうしん/砲身 -2.912179 の/の ほくぶ/北部 -2.912179 の/の ぼいす/ボイス -2.867414 の/の まえ/前 -2.912179 の/の まと/的 -2.912179 の/の みんせい/民生 -2.912179 の/の めんどう/面倒 -2.088402 の/の よう/よう -1.994589 の/の ようかい/妖怪 -2.912179 の/の りくろ/陸路 -2.912179 の/の れきし/歴史 -2.424040 の/の 2/2 -2.912179 の/の 24/24 -2.912179 の/の 44/44 -2.120166 の/の 5/5 -0.999313 の/野 たけ/嶽 -0.973530 のいず/ノイズ 」/」 -0.994453 のう/農 がっこう/学校 -0.849921 のこり/残り の/の -0.999313 のび/伸び きれ/きれ -0.739096 は/は 、/、 -1.449719 は/は 「/「 -2.747098 は/は あいりっしゅ/アイリッシュ -2.747098 は/は あまーすと/アマースト -2.747098 は/は うなぎ/鰻 -2.747098 は/は おおつき/大槻 -2.747098 は/は かた/語 -2.747098 は/は けいごうきん/軽合金 -2.747098 は/は けつだん/決断 -2.747098 は/は こくさい/国際 -2.747098 は/は しょくばい/触媒 -2.747098 は/は しろ/白 -2.747098 は/は じぶん/自分 -2.747098 は/は じょし/女子 -2.747098 は/は せいふく/制服 -2.526227 は/は せかい/世界 -2.721342 は/は せるてぃっくす/セルティックス -2.747098 は/は ぜんいん/全員 -2.446021 は/は その/その -2.747098 は/は たえ/絶え -2.747098 は/は たかさか/高坂 -2.747098 は/は たんぱく/淡白 -1.854998 は/は だい/第 -2.747098 は/は だいかん/代官 -2.624678 は/は だりつ/打率 -2.747098 は/は ちゅうか/中華 -1.849311 は/は と/と -2.747098 は/は とりにだーど/トリニダード -2.747098 は/は どいつ/ドイツ -2.747098 は/は どうちゅう/道中 -1.628642 は/は な/な -2.747098 は/は なかの/中野 -2.747098 は/は にちろ/日露 -2.747098 は/は はんもと/版元 -2.747098 は/は ひきと/引き取 -2.747098 は/は ふめい/不明 -2.721342 は/は ぶか/部下 -2.747098 は/は ほうじん/法人 -2.747098 は/は ほっぽう/北方 -2.747098 は/は ほんらい/本来 -2.747098 は/は ぽーかー/ポーカー -2.747098 は/は まっしょう/末梢 -2.747098 は/は まんが/漫画 -2.747098 は/は めぐろ/目黒 -2.747098 は/は もと/元 -2.747098 は/は よくちょう/翌朝 -2.624678 は/は ./. -2.747098 は/は 14/14 -2.747098 は/は 1944/1944 -2.747098 は/は 300/300 -0.970398 は/張 っ/っ -0.933049 は/波 は/は -0.920353 はあく/把握 し/し -0.968841 はい/入 る/る -0.923143 はい/杯 で/で -0.372954 はいき/排気 がす/ガス -0.998710 はいしん/配信 がいしゃ/会社 -0.933049 はいせん/敗戦 は/は -0.959613 はいぞく/配属 さ/さ -0.959613 はいふ/配布 さ/さ -0.920353 はいぼく/敗北 し/し -0.935922 はいゆう/俳優 と/と -0.999313 はがー/ハガー および/及び -0.880528 はくい/白衣 を/を -0.362741 はじめ/始め と/と -0.999313 はせがわ/長谷川 しゅうじ/修二 -0.975104 はそん/破損 (/( -0.967289 はた/秦 ・/・ -0.910729 はだに/ハダニ 、/、 -0.920353 はっかく/発覚 し/し -0.920353 はっしゃ/発射 し/し -0.920353 はっぴょう/発表 し/し -0.346764 はつ/初 の/の -0.372954 はつね/初音 みく/ミク -0.992808 はるあき/春秋 じょくん/叙勲 -1.298561 はんざい/犯罪 きしゃ/記者 -1.298561 はんざい/犯罪 しょうせつ/小説 -0.849921 はんすう/半数 の/の -0.880528 はんぱつ/反発 を/を -0.880528 はんもと/版元 を/を -1.136990 ば/ば 、/、 -1.298561 ば/ば かんじゃ/患者 -0.933049 ば/場 は/は -1.401154 ばあい/場合 、/、 -1.271373 ばあい/場合 に/に -1.462975 ばあい/場合 は/は -0.758680 ばあい/場合 も/も -0.996106 ばくりょう/幕僚 ちょう/長 -0.880528 ばす/バス を/を -0.999313 ばすたー/バスター けいたい/形態 -0.933049 ばっく/バック は/は -0.857072 ばん/版 に/に -1.298561 ばん/番 て/手 -1.297359 ばん/番 にんき/人気 -0.918965 ばんぞく/蛮族 が/が -0.923143 ばんのう/万能 で/で -0.933049 ばーくれい/バークレイ は/は -0.998710 ばーぐ/バーグ へ/へ -0.935922 ひ/妃 と/と -0.849921 ひ/日 の/の -0.849921 ひ/比 の/の -0.996106 ひがしな/東那 けん/県 -0.994453 ひがしまつやま/東松山 えき/駅 -0.984671 ひきと/引き取 ら/ら -0.967289 ひっと/ヒット する/する -0.959613 ひてい/否定 さ/さ -1.297359 ひと/ヒト か/科 -1.039024 ひと/ヒト の/の -0.991168 ひと/一 つ/つ -0.923143 ひとり/1人 で/で -0.999313 ひめはな/ヒメハナ かめむし/カメムシ -0.978270 ひょう/票 )/) -0.362741 ひょうげん/表現 と/と -0.880528 ひよう/費用 を/を -0.999313 ひろし/寛 ほう/法 -0.999313 ひろし/汎 あらぶ/アラブ -0.999313 ひろた/広食 せい/性 -0.992808 ひろば/広場 など/など -0.880528 ひん/品 を/を -0.880528 び/日 を/を -0.918965 び/美 が/が -0.849921 びょういん/病院 の/の -0.849921 びるぼーど/ビルボード の/の -1.200161 ぴくる/ピクル に/に -0.503263 ぴくる/ピクル の/の -0.996106 ふ/府 しょう/賞 -0.984671 ふ/振 ら/ら -0.933049 ふぁすべんだー/ファスベンダー は/は -0.372954 ふぁー/ファー うぇい/ウェイ -0.935922 ふぃじかる/フィジカル と/と -0.880528 ふうけい/風景 を/を -0.999313 ふぇいす/フェイス はがー/ハガー -0.999313 ふぇーざー/フェーザー きかん/機関 -0.994453 ふぉっくす/フォックス しゃ/社 -0.849921 ふきん/付近 の/の -0.372954 ふく/含 む/む -0.984671 ふさわし/ふさわし く/く -0.849921 ふしぎ/不思議 の/の -0.999313 ふしん/不審 せん/船 -0.999313 ふたたび/再び わよ/和与 -1.039024 ふたり/二人 の/の -1.175259 ふたり/二人 は/は -0.918965 ふたり/2人 が/が -0.999313 ふなこし/船越 えいいちろう/英一郎 -0.999313 ふなばし/船橋 しゅうへん/周辺 -0.918965 ふみひこ/文彦 が/が -0.999313 ふみやす/文保 がんねん/元年 -0.996106 ふめい/不明 だっ/だっ -0.857072 ふるい/ふるい に/に -0.986286 ふるく/古く から/から -0.910729 ふん/分 、/、 -0.999313 ぶ/ぶ とし/都市 -0.978270 ぶ/部 )/) -1.267480 ぶか/部下 が/が -1.276856 ぶか/部下 で/で -1.306265 ぶか/部下 と/と -0.999313 ぶしゅう/武州 まつやま/松山 -0.920353 ぶそう/武装 し/し -1.150949 ぶたい/部隊 が/が -1.050127 ぶたい/部隊 に/に -0.994453 ぶよう/舞踊 がっこう/学校 -0.857072 ぶらざーず/ブラザーズ に/に -0.978270 ぶろー/ブロー )/) -0.999313 ぶんげい/文芸 としょ/図書 -0.923143 ぶんせき/分析 で/で -0.999313 ぷらちな/プラチナ にんてい/認定 -0.992808 ぷれてすと/プレテスト ご/後 -1.298561 へ/へ しんにゅう/侵入 -1.039024 へ/へ の/の -0.971961 へ/経 て/て -0.918965 へくたーる/ヘクタール が/が -0.880528 へん/変 を/を -0.880528 へんか/変化 を/を -0.880528 へんじ/返事 を/を -0.973530 べ/べ 」/」 -0.999313 べいぐん/米軍 きち/基地 -0.999313 べすと/ベスト せらー/セラー -0.880528 べんぐつそん/ベングツソン を/を -0.999313 ぺてぃ/ペティ ぐるー/グルー -0.653409 ぺーじ/頁 -1.357904 ぺーじ/頁 、/、 -1.523111 ぺーじ/頁 (/( -0.849921 ほう/法 の/の -0.849921 ほう/砲 の/の -0.918965 ほうこく/報告 が/が -0.959613 ほうしゅつ/放出 さ/さ -0.998710 ほうしょう/褒章 せいど/制度 -0.933049 ほうしん/砲身 は/は -0.998710 ほうじん/法人 むけ/向け -1.298561 ほうせい/法政 がっかい/学会 -1.288935 ほうせい/法政 けんきゅう/研究 -0.999313 ほくと/ホクト するたん/スルタン -0.857072 ほくぶ/北部 に/に -0.994453 ほしょく/捕食 しゃ/者 -0.999313 ほぜん/保全 りん/林 -0.857072 ほっぽう/北方 に/に -0.920353 ほどこ/施 し/し -0.999313 ほんのう/本能 じ/寺 -0.999313 ほんみょう/本名 あんな/アンナ -0.849921 ほんらい/本来 の/の -0.933049 ぼいす/ボイス は/は -1.292195 ぼうえい/防衛 しょう/省 -1.292195 ぼうえい/防衛 だい/大 -0.998710 ぼうご/防護 でき/でき -0.880528 ぼうだん/防弾 を/を -0.935922 ぼくし/牧師 と/と -0.857072 ぼこぼこ/ボコボコ に/に -0.999313 ぼっ/ぼっ こぼこ/こぼこ -0.367951 ぼっぱつ/勃発 する/する -0.967289 ぼびー/ボビー ・/・ -0.998710 ぽーかー/ポーカー ちゅう/中 -0.849921 ぽーとらんど/ポートランド の/の -0.992808 ま/ま れ/れ -0.967289 まいける/マイケル ・/・ -1.298561 まえ/前 ごろ/ごろ -1.050127 まえ/前 に/に -0.992808 まき/巻 3/3 -0.880528 まさと/正人 を/を -0.967289 まじ/まじ い/い -0.998710 まじえ/交え ながら/ながら -0.358325 また/また 、/、 -0.849921 まち/町 の/の -0.999313 まっしょう/末梢 けつ/血 -0.880528 まっする/マッスル を/を -0.999313 まっど/マッド さいえんてぃすと/サイエンティスト -0.857072 まつ/末 に/に -0.998710 まつい/松井 ぐん/軍 -0.994453 まつやま/松山 えき/駅 -1.463402 まで/まで お/お -1.126204 まで/まで の/の -1.471084 まで/まで ひと/ヒト -0.970398 まと/まと っ/っ -0.949089 まと/的 -0.987907 まにら/マニラ や/や -0.984671 まね/招 く/く -0.999313 まま/まま そうこう/走行 -0.967289 まりーあ/マリーア ・/・ -0.999313 まんが/まんが かれっじ/カレッジ -0.849921 まんが/漫画 の/の -0.967289 まんざい/漫才 する/する -0.849921 まーくるんど/マークルンド の/の -0.918965 まーけっと/マーケット が/が -0.968841 み/見 る/る -0.857072 み/身 に/に -1.050127 みく/ミク に/に -1.039024 みく/ミク の/の -1.150949 みちの/美智乃 が/が -1.050127 みちの/美智乃 に/に -0.973530 みっくみく/みっくみく 」/」 -0.857072 みの/美濃 に/に -0.959613 みりょう/魅了 さ/さ -0.857072 みりょく/魅力 に/に -0.999313 みんせい/民生 ひん/品 -1.203673 む/む -1.285698 む/む せかい/世界 -0.970398 むか/向か っ/っ -1.245683 むけ/向け て/て -1.039024 むけ/向け の/の -0.999313 むす/結 ぶ/ぶ -0.857072 むだ/無駄 に/に -0.918965 め/目 が/が -0.923143 めいぎ/名義 で/で -1.472877 めいじ/明治 まつ/末 -1.471084 めいじ/明治 34/34 -1.472877 めいじ/明治 40/40 -0.987907 めがね/眼鏡 や/や -0.999313 めぐろ/目黒 も/盛 -0.920353 めざ/目指 し/し -0.991168 めだ/目立 つ/つ -0.880528 めんどう/面倒 を/を -0.949089 めんばー/メンバー -1.570991 も/も 、/、 -1.398138 も/も あ/あ -2.306949 も/も いま/今 -2.247909 も/も おお/多 -2.169635 も/も おこな/行 -2.295242 も/も か/書 -2.306949 も/も かかわ/かかわ -2.306949 も/も かかわ/関わ -2.306949 も/も けいそう/係争 -2.306949 も/も けんとう/検討 -2.306949 も/も げんえき/現役 -2.306949 も/も せかんど/セカンド -2.306949 も/も そうだ/操舵 -2.146393 も/も その/その -2.306949 も/も ととのえ/整え -1.908461 も/も な/な -2.306949 も/も はっかく/発覚 -2.306949 も/も ばんのう/万能 -2.295242 も/も ふく/含 -2.306949 も/も ふたたび/再び -2.124331 も/も 2/2 -0.970398 も/持 っ/っ -0.999313 も/盛 とよみ/豊見 -0.976684 もう/網 も/も -0.999313 もうり/毛利 よんじゅういち/四一 -0.920353 もたら/もたら し/し -0.999313 もと/元 ろういん/老院 -1.340051 もの/もの が/が -1.386277 もの/もの と/と -1.378223 もの/もの は/は -1.245226 もの/もの を/を -0.857072 もの/者 に/に -0.933049 ものがたり/物語 は/は -0.880528 ものごと/物事 を/を -0.999313 もも/もも うら/裏 -0.949089 もよう/模様 -0.999313 もり/森 ながよし/長可 -1.890079 や/や あやし/怪し -1.885406 や/や えんじん/エンジン -1.890079 や/や おーすとらりあ/オーストラリア -1.890079 や/や くさかげろう/クサカゲロウ -1.890079 や/や なおひろ/直弘 -1.890079 や/や はだに/ハダニ -1.890079 や/や ふうけい/風景 -1.890079 や/や ろれーた/ロレータ -0.918965 やく/役 が/が -1.298561 やく/約 はんすう/半数 -1.297359 やく/約 5/5 -0.999313 やっと/やっと とうちゃく/到着 -0.994453 やよい/弥生 じだい/時代 -0.372862 やん/やん よ/よ -0.967289 ゆうしゅう/優秀 な/な -0.967289 ゆうしょう/優勝 する/する -0.998710 ゆうよ/猶予 きかん/期間 -0.849921 ゆうれい/ユウレイ の/の -0.731087 よ/よ っ/っ -1.007024 よ/よ り/り -1.119623 よ/よ る/る -2.015437 よ/よ れ/れ -1.899813 よ/よ (/( -1.918674 よ/よ )/) -0.372862 よ/呼 ん/ん -1.596048 よう/よう しじ/指示 -1.596048 よう/よう せっけい/設計 -1.351154 よう/よう で/で -1.481315 よう/よう な/な -1.292195 よう/洋 せんそう/戦争 -1.297359 よう/洋 ぶたい/部隊 -1.472877 ようかい/妖怪 じょ/序 -1.276856 ようかい/妖怪 で/で -1.306265 ようかい/妖怪 と/と -1.298561 ようし/容姿 たんれい/端麗 -1.158100 ようし/容姿 で/で -0.998710 よくちょう/翌朝 だい/代 -0.973530 よばい/夜這い 」/」 -0.366705 よびだ/呼び出 さ/さ -0.999313 よみ/読み きり/切り -0.998710 よろこ/喜 ん/ん -0.849921 よんじゅういち/四一 の/の -0.967289 よーろっぱ/ヨーロッパ ・/・ -1.926749 ら/ら か/か -1.986867 ら/ら ざる/ざる -0.930945 ら/ら ず/ず -1.982155 ら/ら せ/せ -0.926861 ら/ら れ/れ -1.446919 ら/ら を/を -0.857072 らいん/ライン に/に -0.857072 らずふぁーど/ラズファード に/に -1.432582 られ/られ 、/、 -0.832990 られ/られ た/た -1.643640 られ/られ て/て -1.624649 られ/られ な/な -1.630888 られ/られ る/る -0.923143 らんきんぐ/ランキング で/で -0.920353 らんくいん/ランクイン し/し -0.849921 らーる/ラール の/の -0.124514 り/り 、/、 -2.102850 り/り 「/「 -2.170018 り/り ぷらちな/プラチナ -0.999313 りくじょう/陸上 ばくりょう/幕僚 -0.880528 りくろ/陸路 を/を -0.999313 りつ/立 のう/農 -1.267480 りま/りま が/が -1.139815 りま/りま に/に -1.126204 りま/りま の/の -0.973530 りゅう/龍 」/」 -0.910729 りゅうじ/龍治 、/、 -0.935922 りょういき/領域 と/と -0.999313 りよん/リヨン こくりつ/国立 -0.920353 りりーす/リリース し/し -0.857072 りん/林 に/に -0.998710 りーぐ/リーグ しゅい/首位 -0.346580 る/る -2.384693 る/る 「/「 -2.719478 る/る あたり/あたり -2.536491 る/る か/か -1.898284 る/る が/が -2.719478 る/る きいろあざみうま/キイロアザミウマ -2.703071 る/る きゃらくたー/キャラクター -2.719478 る/る きんだい/近代 -2.638423 る/る ぎいん/議員 -2.719478 る/る くせ/癖 -2.719478 る/る くんしょう/勲章 -1.665146 る/る こと/こと -2.719478 る/る ごと/毎 -2.719478 る/る さいしょう/崔鍾 -2.719478 る/る ざいにち/在日 -2.601722 る/る しょうねん/少年 -2.719478 る/る じんぶつ/人物 -2.719478 る/る せき/赤 -2.601722 る/る ため/ため -2.719478 る/る だんせい/弾性 -1.548054 る/る と/と -2.567883 る/る など/など -1.650319 る/る に/に -2.719478 る/る ひろし/汎 -2.719478 る/る まんが/まんが -2.601722 る/る もの/もの -2.719478 る/る もよう/模様 -2.638423 る/る よう/よう -0.858520 れ/れ 、/、 -2.425084 れ/れ 「/「 -0.731674 れ/れ た/た -0.540372 れ/れ て/て -2.568490 れ/れ ば/ば -0.795470 れ/れ る/る -1.285698 れい/令 だい/第 -1.251604 れい/令 (/( -0.933049 れおん/レオン は/は -0.973530 れきし/歴史 」/」 -0.999313 れこーど/レコード きょうかい/協会 -0.999313 れっど/レッド うっど/ウッド -0.992808 れつ/列 だい/第 -0.976684 ればのん/レバノン も/も -0.999313 れんぽう/連邦 ぎかい/議会 -0.849921 ろういん/老院 の/の -0.998710 ろく/六 ばん/番 -0.999313 ろせん/路線 ばす/バス -0.857072 ろれーた/ロレータ に/に -0.976684 ろんぶん/論文 も/も -0.098614 わ/わ れ/れ -0.984671 わか/若 く/く -0.998710 わしんとん/ワシントン ぐん/軍 -0.999313 わずか/わずか いちよ/一代 -0.970398 わた/亘 っ/っ -0.849921 わたし/私 の/の -0.998710 わたり/渡り しょう/小 -0.935922 わたる/渉 と/と -0.918965 わよ/和与 が/が -0.880528 わんしょう/腕章 を/を -0.967289 わーなー/ワーナー ・/・ -2.835668 を/を あたえ/与え -2.835668 を/を あっか/悪化 -2.835668 を/を あらわ/表 -2.798337 を/を い/言 -2.835668 を/を いか/生か -2.835668 を/を いだ/抱 -2.798337 を/を いりょう/医療 -2.835668 を/を いわ/祝 -1.887884 を/を うけ/受け -2.835668 を/を うれし/うれし -2.835668 を/を うんえい/運営 -2.835668 を/を うんこう/運行 -2.835668 を/を え/得 -2.835668 を/を えん/演 -2.488993 を/を おこな/行 -2.835668 を/を おとずれ/訪れ -2.798337 を/を か/書 -2.798337 を/を かいさい/開催 -2.835668 を/を かえ/変え -1.887884 を/を かくとく/獲得 -2.835668 を/を かけ/懸け -2.798337 を/を かんがえ/考え -2.835668 を/を きせ/着せ -2.835668 を/を きちょう/基調 -2.016629 を/を きろく/記録 -2.835668 を/を くみあわせ/組み合わせ -2.835668 を/を くりかえ/繰り返 -2.798337 を/を けん/剣 -2.598595 を/を けんきゅう/研究 -2.835668 を/を こうせい/光成 -2.835668 を/を こえ/超え -2.835668 を/を さいよう/採用 -2.016629 を/を し/知 -2.835668 を/を しい/強い -2.835668 を/を しかけ/仕掛け -2.835668 を/を しき/指揮 -2.835668 を/を しきゅう/支給 -2.835668 を/を しめ/示 -2.798337 を/を しゅうりょう/終了 -2.835668 を/を しゅじん/主人 -2.835668 を/を しゅっぱつ/出発 -2.835668 を/を しょうかい/紹介 -2.835668 を/を しょく/食 -2.798337 を/を しよう/使用 -2.835668 を/を じっしょう/実証 -2.835668 を/を せつやく/節約 -2.835668 を/を せま/迫 -2.835668 を/を そうちゃく/装着 -2.835668 を/を そだて/育て -2.835668 を/を そつぎょう/卒業 -2.835668 を/を たいくつ/退屈 -2.835668 を/を たちあげ/立ち上げ -2.835668 を/を たて/縦 -2.665886 を/を ちょう/長 -2.835668 を/を ちょうさ/調査 -2.798337 を/を つうじょう/通常 -2.835668 を/を つかえ/使え -2.835668 を/を つづけ/続け -2.022583 を/を つとめ/務め -2.798337 を/を つよ/強 -2.835668 を/を ていきょう/提供 -2.835668 を/を でんれい/伝令 -2.835668 を/を となえ/唱え -2.835668 を/を とりもど/取り戻 -2.835668 を/を どういん/動員 -2.835668 を/を はあく/把握 -2.022583 を/を はじめ/始め -2.835668 を/を はっしゃ/発射 -2.835668 を/を へ/経 -2.835668 を/を ほどこ/施 -2.835668 を/を ぼうご/防護 -2.835668 を/を ぼくし/牧師 -2.835668 を/を まじえ/交え -2.835668 を/を まと/まと -2.835668 を/を まね/招 -2.835668 を/を み/見 -2.835668 を/を み/身 -2.835668 を/を むす/結 -2.835668 を/を むだ/無駄 -2.835668 を/を めざ/目指 -2.187163 を/を も/も -2.835668 を/を も/持 -2.022583 を/を よ/呼 -2.835668 を/を りりーす/リリース -0.547967 ん/ん だ/だ -1.317306 ん/ん で/で -2.306949 ・/・ あっぷ/アップ -2.247909 ・/・ あふりか/アフリカ -2.306949 ・/・ あぶどぅん/アブドゥン -2.306949 ・/・ あるばむ/アルバム -2.306949 ・/・ うえるず/ウエルズ -2.220220 ・/・ けんきゅう/研究 -2.306949 ・/・ こふん/古墳 -2.306949 ・/・ さんず/サンズ -2.306949 ・/・ しゅヴぇーげりん/シュヴェーゲリン -1.410145 ・/・ そりゅーしょん/ソリューション -2.306949 ・/・ たかはし/高橋 -2.306949 ・/・ ちゃーと/チャート -2.306949 ・/・ ふぁすべんだー/ファスベンダー -2.306949 ・/・ ぶしゅう/武州 -2.306949 ・/・ ぶよう/舞踊 -2.306949 ・/・ ぶらざーず/ブラザーズ -2.306949 ・/・ べんぐつそん/ベングツソン -2.306949 ・/・ ほうしょう/褒章 -2.306949 ・/・ まつい/松井 -2.306949 ・/・ まりーあ/マリーア -2.306949 ・/・ りーぐ/リーグ -1.298561 ー/ー 393/393 -1.288935 ー/ー 9/9 -2.270471 (/( あか/あか -2.260263 (/( えんじん/エンジン -2.270471 (/( げん/現 -2.270471 (/( こうりゃん/コウリャン -2.270471 (/( しょうがく/小学 -1.230829 (/( しょうわ/昭和 -2.270471 (/( しれい/司令 -2.270471 (/( せんきゅうひゃくきゅうじゅうはち/1998 -2.270471 (/( とうきょう/とうきょう -2.270471 (/( とうなーけん/とうなーけん -2.270471 (/( どーぱんと/ドーパント -2.260263 (/( ほうせい/法政 -2.270471 (/( ぼこぼこ/ボコボコ -2.270471 (/( みりょく/魅力 -1.368078 (/( めいじ/明治 -2.270471 (/( 1942/1942 -2.270471 (/( 537/537 -1.272590 )/) -1.217570 )/) 、/、 -1.308820 )/) 」/」 -2.116130 )/) こと/こと -1.724240 )/) で/で -0.849739 )/) に/に -1.964242 )/) ねん/年 -1.134232 )/) の/の -1.135378 )/) は/は -2.249295 )/) :/: -0.671030 ./. 3/3 -1.595360 ./. 34/34 -1.586978 ./. 4/4 -0.967289 0/0 ねん/年 -0.999313 000/000 いし/石 -1.298561 1/1 じ/時 -1.292195 1/1 4/4 -1.297359 10/10 か/日 -1.236949 10/10 ねん/年 -1.449077 12/12 がつ/月 -1.471084 12/12 だい/代 -1.471084 12/12 ばん/番 -0.998710 13/13 にち/日 -0.994453 14/14 い/位 -0.975104 17/17 (/( -0.999313 18/18 か/駆 -0.967289 1901/1901 ねん/年 -0.967289 1907/1907 ねん/年 -0.978270 1942/1942 )/) -0.967289 1944/1944 ねん/年 -0.367951 1956/1956 ねん/年 -1.449252 2/2 、/、 -1.853648 2/2 い/位 -1.885406 2/2 か/日 -1.890079 2/2 じかん/時間 -1.885406 2/2 ちゃく/着 -1.830433 2/2 つ/つ -1.890079 2/2 ど/度 -1.885406 2/2 ー/ー -0.967289 2000/2000 ねん/年 -0.999313 21/21 さい/歳 -0.996106 24/24 ./. -0.372862 26/26 にち/日 -1.401224 3/3 、/、 -1.722794 3/3 がつ/月 -1.740805 3/3 ごう/号 -1.768626 3/3 せき/隻 -1.768626 3/3 へくたーる/ヘクタール -1.765089 3/3 7/7 -0.999313 300/300 ちか/近 -0.967289 31/31 ねん/年 -1.236949 34/34 ねん/年 -1.288935 34/34 9/9 -0.996106 35/35 にん/人 -0.987907 39/39 2/2 -0.994453 393/393 ぺーじ/頁 -1.449077 4/4 がつ/月 -1.185966 4/4 を/を -1.471084 4/4 1/1 -0.967289 40/40 ねん/年 -0.999313 44/44 しあい/試合 -0.994453 45/45 しゃ/社 -1.249314 5/5 、/、 -1.472877 5/5 せいまご/世孫 -1.463402 5/5 にん/人 -0.998710 50/50 じぎょう/事業 -0.999313 5000/5000 0/0 -0.994453 533/533 ぺーじ/頁 -0.994453 536/536 ぺーじ/頁 -0.999313 537/537 ひょう/票 -0.999313 57/57 ふん/分 -0.546624 6/6 がつ/月 -1.463204 6/6 ごう/号 -0.967289 62/62 ねん/年 -1.297359 7/7 ちゃく/着 -1.285698 7/7 3/3 -0.999313 71/71 まき/巻 -0.546624 8/8 がつ/月 -1.472784 8/8 ー/ー -0.996106 800/800 にん/人 -1.577156 9/9 い/位 -1.564719 9/9 がつ/月 -1.577156 9/9 ぺーじ/頁 -1.245226 9/9 を/を -1.297359 :/: なす/ナス -1.298561 :/: ひがしまつやま/東松山 -1.298561 =/= なーせる/ナーセル -1.298561 =/= のいず/ノイズ \end\ libkkc-0.3.5/tests/data/models/text2/metadata.json000066400000000000000000000001561244473050600220440ustar00rootroot00000000000000{ "name": "text2", "description": "text based 2-gram dictionary (for testing)", "type": "text2" } libkkc-0.3.5/tests/data/models/text3/000077500000000000000000000000001244473050600173705ustar00rootroot00000000000000libkkc-0.3.5/tests/data/models/text3/data.arpa000066400000000000000000010642541244473050600211620ustar00rootroot00000000000000 \data\ ngram 1=1122 ngram 2=2341 ngram 3=2787 \1-grams: -1.850864 -99 -0.159946 -3.213074 ”/“ -0.035206 -1.591237 、/、 -0.065232 -2.290157 「/「 -0.035206 -2.138908 」/」 -0.205003 -2.767151 あ/あ -0.232227 -3.339621 あ/ア -0.035206 -3.339621 あいだ/間 -0.035206 -3.339621 あいて/相手 -0.035206 -3.339621 あいてむ/アイテム -0.035206 -3.339621 あいりっしゅ/アイリッシュ -0.035206 -3.339621 あいるらんど/アイルランド -0.035206 -3.339621 あお/青 -0.035206 -3.339621 あか/あか -0.035206 -3.339621 あかね/茜 -0.035206 -3.339621 あきひろ/空広 -0.035206 -3.339621 あこがれ/憧れ -0.035206 -3.339621 あさ/朝 -0.035206 -3.339621 あさくら/朝倉 -0.035206 -3.339621 あた/あた -0.035206 -3.339621 あたえ/与え -0.035206 -3.339621 あたり/あたり -0.035206 -3.339621 あっか/悪化 -0.035206 -3.339621 あっぷ/アップ -0.035206 -3.339621 あつま/集ま -0.035206 -2.892027 あと/後 -0.035206 -3.339621 あにか/アニカ -0.035206 -3.339621 あにめ/アニメ -0.035206 -2.892027 あふりか/アフリカ -0.035206 -3.339621 あぶどぅん/アブドゥン -0.035206 -3.339621 あぶらむし/アブラムシ -0.035206 -3.339621 あぷろーち/アプローチ -0.035206 -3.339621 あまーすと/アマースト -0.035206 -3.213074 あめりか/アメリカ -0.035206 -3.339621 あやし/怪し -0.035206 -3.339621 あらぶ/アラブ -0.035206 -3.339621 あらわ/表 -0.035206 -3.339621 ある/ある -0.035206 -3.339621 あるばむ/アルバム -0.035206 -3.339621 あわー/アワー -0.035206 -3.339621 あんな/アンナ -0.035206 -2.047146 い/い -0.136900 -2.767151 い/位 -0.035206 -3.339621 い/行 -0.035206 -3.213074 い/言 -0.035206 -3.339621 いぇーがん/イェーガン -0.035206 -3.339621 いか/生か -0.035206 -3.339621 いがい/以外 -0.035206 -3.339621 いき/生き -0.035206 -3.339621 いぎりす/イギリス -0.035206 -3.339621 いく/いく -0.035206 -3.339621 いし/石 -0.035206 -3.339621 いしょう/衣装 -0.035206 -3.339621 いじ/意地 -0.035206 -3.339621 いじゅう/移住 -0.035206 -3.339621 いた/至 -0.035206 -3.339621 いたりあ/イタリア -0.035206 -3.339621 いだ/抱 -0.035206 -3.339621 いち/一 -0.035206 -3.213074 いち/位置 -0.035206 -3.339621 いちよ/一代 -0.035206 -3.339621 いっしゅ/一種 -0.035206 -3.339621 いっしょ/一緒 -0.035206 -3.339621 いってい/一定 -0.035206 -3.339621 いのち/命 -0.035206 -3.339621 いま/今 -0.035206 -3.339621 いみ/意味 -0.035206 -3.213074 いりょう/医療 -0.035206 -3.339621 いわ/祝 -0.035206 -3.339621 いわゆる/いわゆる -0.035206 -3.339621 いん/員 -0.035206 -3.213074 いんたい/引退 -0.035206 -3.339621 いんちょう/院長 -0.035206 -3.339621 いんなー/インナー -0.035206 -3.339621 いんよう/飲用 -0.035206 -2.767151 う/う -0.035206 -3.339621 うぃーくりーらんきんぐ/ウィークリーランキング -0.035206 -3.339621 うぇい/ウェイ -0.035206 -3.339621 うぇすたん/ウェスタン -0.035206 -3.339621 うえ/うえ -0.035206 -3.339621 うえ/上 -0.035206 -3.339621 うえるず/ウエルズ -0.035206 -3.339621 うかがえ/伺え -0.035206 -3.339621 うけ/受け -0.035206 -3.339621 うごか/動か -0.035206 -3.339621 うち/うち -0.035206 -3.339621 うちとみ/内冨 -0.035206 -3.339621 うちのめ/打ちのめ -0.035206 -3.339621 うっど/ウッド -0.035206 -3.339621 うつ/移 -0.035206 -3.339621 うなぎ/鰻 -0.035206 -3.339621 うみず/海津 -0.035206 -3.339621 うら/裏 -0.035206 -3.339621 うれし/うれし -0.035206 -3.339621 うんえい/運営 -0.035206 -3.339621 うんこう/運行 -0.035206 -3.339621 え/え -0.035206 -3.339621 え/得 -0.035206 -3.339621 えいいちろう/英一郎 -0.035206 -3.339621 えいが/映画 -0.035206 -3.339621 えいきょう/影響 -0.035206 -3.339621 えいじゃっくす/エイジャックス -0.035206 -3.339621 えいせい/衛生 -0.035206 -3.339621 えいぞう/映像 -0.035206 -3.339621 えいだっく/エイダック -0.035206 -2.767151 えき/駅 -0.035206 -3.339621 えきがく/疫学 -0.035206 -3.339621 えぎ/榎木 -0.035206 -3.339621 えさ/餌 -0.035206 -3.339621 えぴそーど/エピソード -0.035206 -3.339621 えら/選 -0.035206 -3.339621 えん/演 -0.035206 -3.339621 えんげき/演劇 -0.035206 -3.213074 えんじん/エンジン -0.035206 -3.339621 えんだん/縁談 -0.035206 -2.892027 お/お -0.035206 -3.339621 お/逐 -0.035206 -3.339621 おう/王 -0.035206 -3.339621 おうごん/黄金 -0.035206 -2.892027 おお/多 -0.191600 -3.339621 おおいた/大分 -0.035206 -3.339621 おおきな/大きな -0.035206 -3.339621 おおく/多く -0.035206 -3.339621 おおさか/大阪 -0.035206 -3.339621 おおしま/大島 -0.035206 -3.339621 おおつき/大槻 -0.035206 -3.339621 おぐら/小倉 -0.035206 -3.339621 おけ/おけ -0.035206 -2.591123 おこな/行 -0.206847 -3.339621 おそく/遅く -0.035206 -3.339621 おとずれ/訪れ -0.035206 -3.339621 おにごっこ/鬼ごっこ -0.035206 -2.892027 おふぃす/オフィス -0.035206 -3.339621 おも/思 -0.035206 -3.339621 おや/親 -0.035206 -3.339621 および/および -0.035206 -3.339621 および/及び -0.035206 -3.213074 おりこん/オリコン -0.035206 -3.339621 おりじんきー/オリジンキー -0.035206 -3.339621 おわ/終わ -0.035206 -3.339621 おん/オン -0.035206 -3.339621 おんがく/音楽 -0.035206 -3.339621 おんせん/温泉 -0.035206 -3.339621 おんど/温度 -0.035206 -3.339621 おんなのこ/女の子 -0.035206 -3.339621 おーすとらりあ/オーストラリア -0.035206 -2.591123 か/か -0.191600 -3.339621 か/化 -0.035206 -3.339621 か/家 -0.035206 -3.213074 か/日 -0.297697 -3.213074 か/書 -0.035206 -3.213074 か/科 -0.035206 -3.339621 か/駆 -0.035206 -3.339621 かい/会 -0.035206 -3.339621 かいきょう/海峡 -0.035206 -3.213074 かいさい/開催 -0.035206 -3.213074 かいしゃ/会社 -0.035206 -3.339621 かいしゅう/改修 -0.035206 -3.339621 かいどう/街道 -0.035206 -3.339621 かいふく/回復 -0.035206 -3.339621 かえ/変え -0.035206 -3.339621 かかわ/かかわ -0.035206 -3.339621 かかわ/関わ -0.035206 -3.339621 かがく/科学 -0.035206 -3.339621 かくち/各地 -0.035206 -3.339621 かくとく/獲得 -0.035206 -3.339621 かけ/かけ -0.035206 -3.339621 かけ/懸け -0.035206 -3.339621 かけい/家系 -0.035206 -3.339621 かげ/影 -0.035206 -3.339621 かさい/火災 -0.035206 -3.339621 かず/数 -0.035206 -3.339621 かせぎ/稼ぎ -0.035206 -3.339621 かせつ/仮説 -0.035206 -3.339621 かた/語 -0.035206 -3.339621 かっ/かっ -0.035206 -3.339621 かつて/かつて -0.035206 -3.339621 かつどう/活動 -0.035206 -3.339621 かなか/かなか -0.035206 -3.339621 かねず/かねず -0.035206 -3.339621 かのう/可能 -0.035206 -3.339621 かぶしき/株式 -0.035206 -3.339621 かみのうがね/上納金 -0.035206 -3.339621 かめむし/カメムシ -0.035206 -2.415074 から/から -0.035206 -3.339621 からき/唐木 -0.035206 -3.213074 かれ/彼 -0.035206 -3.339621 かれっじ/カレッジ -0.035206 -3.339621 かろう/家老 -0.035206 -3.339621 かわ/変わ -0.035206 -3.339621 かわいらし/可愛らし -0.035206 -3.339621 かん/間 -0.035206 -3.339621 かん/館 -0.035206 -3.213074 かんがえ/考え -0.035206 -3.339621 かんきょう/環境 -0.035206 -3.213074 かんけい/関係 -0.035206 -3.213074 かんこく/韓国 -0.297697 -3.339621 かんさい/関西 -0.035206 -3.339621 かんしょ/官所 -0.035206 -3.339621 かんじゃ/患者 -0.035206 -3.339621 かんたい/艦隊 -0.035206 -3.339621 かんちがい/勘違い -0.035206 -3.213074 かんとりー/カントリー -0.035206 -3.339621 かんめい/艦名 -0.035206 -3.339621 かんりょう/完了 -0.035206 -3.339621 かんれん/関連 -0.035206 -1.636994 が/が -0.116514 -3.213074 がいこく/外国 -0.297697 -3.213074 がいしゃ/会社 -0.035206 -3.339621 がいちゅう/害虫 -0.035206 -3.339621 がいひ/外皮 -0.035206 -3.339621 がいよう/概要 -0.035206 -3.339621 がくえん/学園 -0.035206 -3.339621 がくせい/学生 -0.035206 -3.339621 がす/ガス -0.035206 -3.339621 がっかい/学会 -0.035206 -2.767151 がっこう/学校 -0.035206 -2.591123 がつ/月 -0.146915 -3.339621 がまーる/ガマール -0.035206 -3.339621 がめとさいと/ガメトサイト -0.035206 -3.339621 がんつ/ガンツ -0.035206 -3.339621 がんねん/元年 -0.035206 -3.339621 がーでぃあん/ガーディアン -0.035206 -3.213074 き/き -0.035206 -3.339621 き/切 -0.035206 -3.339621 きいろあざみうま/キイロアザミウマ -0.035206 -3.213074 きかん/期間 -0.035206 -3.339621 きかん/機関 -0.035206 -2.892027 きけん/危険 -0.035206 -3.339621 きしゃ/記者 -0.035206 -3.339621 きじゅん/基準 -0.035206 -3.339621 きせ/着せ -0.035206 -3.339621 きそ/基礎 -0.035206 -3.339621 きた/北 -0.035206 -3.339621 きち/基地 -0.035206 -3.339621 きちょう/基調 -0.035206 -3.339621 きつりん/吉林 -0.035206 -3.339621 きめ/決め -0.035206 -3.213074 きゃらくたー/キャラクター -0.035206 -3.339621 きゅうしゅう/九州 -0.035206 -3.339621 きょういく/教育 -0.035206 -3.339621 きょういん/教員 -0.035206 -3.339621 きょうえん/共演 -0.035206 -3.339621 きょうかい/協会 -0.035206 -3.339621 きょうみ/興味 -0.035206 -3.339621 きょうわ/共和 -0.035206 -3.339621 きょく/局 -0.035206 -3.339621 きょくたん/極端 -0.035206 -3.339621 きょしゅ/挙手 -0.035206 -3.339621 きり/切り -0.035206 -3.339621 きれ/きれ -0.035206 -3.213074 きろく/記録 -0.035206 -3.339621 きん/金 -0.035206 -3.339621 きんだい/近代 -0.035206 -3.339621 きんむ/勤務 -0.035206 -2.892027 ぎいん/議員 -0.035206 -3.339621 ぎかい/議会 -0.035206 -3.339621 ぎむざ/ギムザ -0.035206 -3.339621 ぎょうむ/業務 -0.035206 -3.339621 ぎょらい/魚雷 -0.035206 -2.369325 く/く -0.106401 -3.339621 く/区 -0.035206 -3.339621 く/食 -0.035206 -3.339621 くうはく/  -0.035206 -3.339621 くさかげろう/クサカゲロウ -0.035206 -3.339621 くせ/癖 -0.035206 -3.339621 くにのみや/久邇宮 -0.035206 -3.213074 くび/首 -0.035206 -3.339621 くぶん/区分 -0.035206 -3.339621 くみあわせ/組み合わせ -0.035206 -3.339621 くりかえ/繰り返 -0.035206 -3.339621 くる/くる -0.035206 -3.339621 くるせいど/クルセイド -0.035206 -3.339621 くれ/くれ -0.035206 -3.339621 くれない/紅 -0.035206 -3.339621 くろす/クロス -0.035206 -3.339621 くん/勲 -0.035206 -3.339621 くんしょう/勲章 -0.035206 -3.339621 ぐるー/グルー -0.035206 -3.213074 ぐん/軍 -0.035206 -3.339621 ぐんぶ/軍部 -0.035206 -3.213074 けい/計 -0.035206 -3.339621 けいけん/経験 -0.035206 -3.339621 けいごうきん/軽合金 -0.035206 -3.339621 けいしき/形式 -0.035206 -3.339621 けいじ/刑事 -0.035206 -3.339621 けいそう/係争 -0.035206 -3.339621 けいたい/形態 -0.035206 -3.339621 けいば/競馬 -0.035206 -3.339621 けいりょう/軽量 -0.035206 -3.339621 けっきゅう/血球 -0.035206 -3.339621 けっこん/結婚 -0.035206 -3.339621 けっせい/結成 -0.035206 -3.339621 けつ/血 -0.035206 -3.339621 けつだん/決断 -0.035206 -3.213074 けん/剣 -0.035206 -2.892027 けん/県 -0.035206 -2.767151 けんきゅう/研究 -0.035206 -3.339621 けんさく/検索 -0.035206 -3.339621 けんしゅつ/検出 -0.035206 -3.339621 けんぞう/建造 -0.035206 -3.339621 けんとう/検討 -0.035206 -3.339621 げいのう/芸能 -0.035206 -3.339621 げっかん/月間 -0.035206 -3.339621 げつれい/月例 -0.035206 -3.339621 げん/現 -0.035206 -3.213074 げんいん/原因 -0.035206 -3.339621 げんえき/現役 -0.035206 -2.892027 げんざい/現在 -0.035206 -3.339621 こ/子 -0.035206 -3.339621 こう/公 -0.035206 -3.339621 こうい/行為 -0.035206 -3.339621 こうえん/公園 -0.035206 -3.339621 こうし/講師 -0.035206 -3.339621 こうしゃ/校舎 -0.035206 -3.339621 こうせい/光成 -0.035206 -3.339621 こうせい/構成 -0.035206 -3.339621 こうぞう/構造 -0.035206 -3.339621 こうち/高知 -0.035206 -3.213074 こうつう/交通 -0.035206 -3.339621 こうでら/国府 -0.035206 -3.339621 こうとう/高等 -0.035206 -3.339621 こうふく/降伏 -0.035206 -3.339621 こうめい/孝明 -0.035206 -3.339621 こうりゃん/コウリャン -0.035206 -3.339621 こうれい/高齢 -0.035206 -3.339621 こえ/超え -0.035206 -3.339621 こく/国 -0.035206 -3.339621 こくさい/国際 -0.035206 -3.339621 こくりつ/国立 -0.035206 -3.339621 こしゅう/湖州 -0.035206 -2.415074 こと/こと -0.271030 -3.213074 こと/事 -0.297697 -3.339621 ことな/異な -0.035206 -3.339621 ことば/言葉 -0.035206 -3.339621 こども/子供 -0.035206 -3.213074 この/この -0.035206 -3.339621 こふん/古墳 -0.035206 -3.339621 こぼこ/こぼこ -0.035206 -3.339621 こみっく/コミック -0.035206 -3.213074 これ/これ -0.191600 -3.213074 ころ/頃 -0.035206 -3.339621 こんこーど/コンコード -0.035206 -3.339621 こんてんつ/コンテンツ -0.035206 -3.339621 こんぴゅーた/コンピュータ -0.035206 -3.339621 こーひー/コーヒー -0.035206 -2.670279 ご/後 -0.035206 -2.767151 ごう/号 -0.146915 -3.339621 ごうだつ/強奪 -0.035206 -3.339621 ごうりゅう/合流 -0.035206 -3.339621 ごと/毎 -0.035206 -3.339621 ごろ/ごろ -0.035206 -1.954399 さ/さ -0.954080 -3.339621 さい/歳 -0.035206 -3.339621 さいあく/最悪 -0.035206 -3.339621 さいえんてぃすと/サイエンティスト -0.035206 -3.339621 さいかい/再会 -0.035206 -3.213074 さいしゅう/最終 -0.035206 -3.339621 さいしょ/最初 -0.035206 -3.339621 さいしょう/崔鍾 -0.035206 -3.339621 さいしん/最新 -0.035206 -3.339621 さいと/サイト -0.035206 -3.339621 さいよう/採用 -0.035206 -3.213074 さくひん/作品 -0.035206 -3.339621 さしず/指図 -0.035206 -3.339621 さっかー/サッカー -0.035206 -3.339621 さるがばば/猿ヶ馬場 -0.035206 -3.339621 さんか/参加 -0.035206 -3.339621 さんず/サンズ -0.035206 -3.339621 さんせい/賛成 -0.035206 -3.339621 さんちょう/山頂 -0.035206 -3.339621 さんでー/サンデー -0.035206 -3.339621 ざいにち/在日 -0.035206 -3.213074 ざざーぐ/ザザーグ -0.035206 -3.339621 ざる/ざる -0.035206 -1.645111 し/し -0.610244 -3.339621 し/史 -0.035206 -3.339621 し/市 -0.035206 -3.213074 し/知 -0.035206 -3.339621 しあい/試合 -0.035206 -3.339621 しい/強い -0.035206 -3.339621 しいき/市域 -0.035206 -3.339621 しかい/司会 -0.035206 -3.339621 しかけ/仕掛け -0.035206 -3.339621 しかし/しかし -0.035206 -3.339621 しがん/志願 -0.035206 -3.339621 しき/指揮 -0.035206 -3.339621 しきゅう/支給 -0.035206 -3.339621 しじ/指示 -0.035206 -3.339621 しすてむ/システム -0.035206 -3.213074 しぜん/自然 -0.035206 -3.339621 しぞんと/シゾント -0.035206 -3.339621 しっこう/執行 -0.035206 -3.339621 しつ/室 -0.035206 -3.213074 しつ/質 -0.297697 -3.339621 してい/姉弟 -0.035206 -3.339621 してい/指定 -0.035206 -3.339621 しどう/指導 -0.035206 -3.339621 しなりお/シナリオ -0.035206 -3.339621 しはん/市販 -0.035206 -3.339621 しひょう/指標 -0.035206 -3.339621 しほう/司法 -0.035206 -3.339621 しぼう/死亡 -0.035206 -3.339621 しまい/姉妹 -0.035206 -3.339621 しまだ/島田 -0.035206 -3.339621 しまなか/島中 -0.035206 -3.339621 しめ/示 -0.035206 -2.767151 しゃ/社 -0.146915 -2.767151 しゃ/者 -0.191600 -3.339621 しゃかい/社会 -0.035206 -3.339621 しゃべ/喋 -0.035206 -3.339621 しゃりょう/車両 -0.035206 -3.339621 しゃんはい/上海 -0.035206 -3.213074 しゅ/主 -0.035206 -3.213074 しゅい/首位 -0.035206 -3.339621 しゅうかん/週刊 -0.035206 -3.339621 しゅうじ/修二 -0.035206 -3.339621 しゅうだん/集団 -0.035206 -3.339621 しゅうちゃく/執着 -0.035206 -3.339621 しゅうへい/州兵 -0.035206 -3.339621 しゅうへん/周辺 -0.035206 -3.339621 しゅうり/修理 -0.035206 -3.213074 しゅうりょう/終了 -0.035206 -3.339621 しゅぎ/主義 -0.035206 -3.339621 しゅじん/主人 -0.035206 -3.339621 しゅっこう/出航 -0.035206 -3.339621 しゅっぱつ/出発 -0.035206 -3.213074 しゅっぱん/出版 -0.035206 -3.213074 しゅつじょう/出場 -0.035206 -3.339621 しゅよう/主要 -0.035206 -3.339621 しゅりゅう/手榴 -0.035206 -3.339621 しゅヴぇーげりん/シュヴェーゲリン -0.035206 -3.213074 しょう/小 -0.035206 -2.892027 しょう/省 -0.035206 -2.892027 しょう/賞 -0.035206 -3.339621 しょうかい/紹介 -0.035206 -3.339621 しょうがく/小学 -0.035206 -3.339621 しょうきょく/消極 -0.035206 -3.339621 しょうじょ/少女 -0.035206 -3.339621 しょうせつ/小説 -0.035206 -3.339621 しょうそく/消息 -0.035206 -2.767151 しょうねん/少年 -0.146915 -3.339621 しょうめん/正面 -0.035206 -3.339621 しょうわ/昭和 -0.035206 -3.339621 しょく/植 -0.035206 -3.339621 しょく/食 -0.035206 -3.339621 しょくいん/職印 -0.035206 -3.339621 しょくばい/触媒 -0.035206 -3.339621 しょけい/処刑 -0.035206 -3.339621 しょっく/ショック -0.035206 -3.213074 しよう/使用 -0.035206 -3.339621 しらせ/報せ -0.035206 -3.339621 しれい/司令 -0.035206 -3.339621 しろ/白 -0.035206 -3.339621 しろう/四郎 -0.035206 -3.339621 しんかい/晋海 -0.035206 -3.339621 しんき/新規 -0.035206 -3.339621 しんけん/真剣 -0.035206 -3.339621 しんしゅつ/進出 -0.035206 -3.339621 しんじん/新人 -0.035206 -3.339621 しんすけ/紳助 -0.035206 -3.339621 しんだん/診断 -0.035206 -3.339621 しんとう/浸透 -0.035206 -3.339621 しんにゅう/侵入 -0.035206 -3.339621 しんりゃく/侵略 -0.035206 -3.339621 しんわ/神話 -0.035206 -3.213074 しーずん/シーズン -0.035206 -3.339621 じ/じ -0.035206 -3.339621 じ/寺 -0.035206 -3.339621 じ/時 -0.035206 -3.339621 じ/次 -0.035206 -3.339621 じかん/時間 -0.035206 -3.213074 じぎょう/事業 -0.297697 -3.339621 じけつ/自決 -0.035206 -3.339621 じしん/地震 -0.035206 -2.767151 じだい/時代 -0.154221 -3.339621 じっしょう/実証 -0.035206 -3.339621 じてん/時点 -0.035206 -3.339621 じぶん/自分 -0.035206 -3.339621 じゅう/中 -0.035206 -3.339621 じゅう/十 -0.035206 -3.339621 じゅうぐん/従軍 -0.035206 -3.339621 じゅうげき/銃撃 -0.035206 -3.339621 じゅうし/銃士 -0.035206 -3.213074 じゅうじ/従事 -0.297697 -3.339621 じょ/序 -0.035206 -3.339621 じょう/上 -0.035206 -3.213074 じょう/城 -0.035206 -3.213074 じょう/場 -0.035206 -3.339621 じょうえん/上演 -0.035206 -3.339621 じょうしょう/上昇 -0.035206 -3.339621 じょうほう/情報 -0.035206 -2.670279 じょくん/叙勲 -0.127666 -3.339621 じょし/女子 -0.035206 -3.339621 じょせい/女性 -0.035206 -3.339621 じょなさん/ジョナサン -0.035206 -3.213074 じん/人 -0.035206 -3.339621 じんせい/人生 -0.035206 -3.339621 じんぶつ/人物 -0.035206 -3.339621 じんみん/人民 -0.035206 -2.892027 す/す -0.035206 -3.339621 すいらい/水雷 -0.035206 -3.339621 すう/数 -0.035206 -3.339621 すえ/末 -0.035206 -3.339621 すき/好き -0.035206 -3.213074 すきー/スキー -0.035206 -3.339621 すこてぃあ/スコティア -0.035206 -3.339621 すご/凄 -0.035206 -3.339621 すたんど/スタンド -0.035206 -3.339621 すぽーつ/スポーツ -0.035206 -2.047146 する/する -0.177472 -3.339621 するたん/スルタン -0.035206 -3.213074 ず/ず -0.035206 -3.213074 せ/せ -0.035206 -3.339621 せい/制 -0.035206 -3.339621 せい/性 -0.035206 -3.339621 せい/生 -0.035206 -3.339621 せいかつ/生活 -0.035206 -3.339621 せいこう/成功 -0.035206 -3.339621 せいじ/政治 -0.035206 -3.339621 せいせき/成績 -0.035206 -3.339621 せいちょう/政庁 -0.035206 -3.339621 せいと/生徒 -0.035206 -3.213074 せいど/制度 -0.297697 -3.213074 せいひん/製品 -0.297697 -3.339621 せいび/整備 -0.035206 -3.339621 せいふく/制服 -0.035206 -3.339621 せいまご/世孫 -0.035206 -3.339621 せいむ/政務 -0.035206 -2.670279 せかい/世界 -0.035206 -3.339621 せかんど/セカンド -0.035206 -3.339621 せき/赤 -0.035206 -3.339621 せき/隻 -0.035206 -3.339621 せっけい/設計 -0.035206 -3.339621 せっこう/浙江 -0.035206 -3.339621 せっち/設置 -0.035206 -3.213074 せつ/説 -0.035206 -3.339621 せつやく/節約 -0.035206 -3.339621 せの/瀬乃 -0.035206 -3.339621 せま/迫 -0.035206 -3.339621 せらー/セラー -0.035206 -3.213074 せるてぃっくす/セルティックス -0.035206 -2.892027 せん/戦 -0.035206 -3.339621 せん/船 -0.035206 -3.339621 せんきゅうひゃくきゅうじゅうきゅう/1999 -0.035206 -3.339621 せんきゅうひゃくきゅうじゅうはち/1998 -0.035206 -3.339621 せんきゅうひゃくはちじゅうなな/1987 -0.035206 -3.339621 せんきゅうひゃくはちじゅうはち/1988 -0.035206 -3.339621 せんし/戦死 -0.035206 -3.339621 せんしゅ/選手 -0.035206 -3.339621 せんしょく/染色 -0.035206 -3.339621 せんす/センス -0.035206 -2.892027 せんそう/戦争 -0.035206 -3.339621 せんたい/船体 -0.035206 -3.339621 せんとう/先頭 -0.035206 -3.339621 せんとう/戦闘 -0.035206 -3.339621 せんない/船内 -0.035206 -3.339621 せんねん/専念 -0.035206 -3.339621 せんもん/専門 -0.035206 -3.339621 せんれつ/鮮烈 -0.035206 -2.892027 ぜん/全 -0.035206 -3.339621 ぜんいん/全員 -0.035206 -3.339621 ぜんこう/全校 -0.035206 -3.339621 そうこう/走行 -0.035206 -3.339621 そうだ/操舵 -0.035206 -3.339621 そうだん/相談 -0.035206 -3.339621 そうちゃく/装着 -0.035206 -3.339621 そうは/争覇 -0.035206 -3.339621 そうび/装備 -0.035206 -3.339621 そこく/祖国 -0.035206 -3.339621 そして/そして -0.035206 -3.339621 そだ/育 -0.035206 -3.339621 そだて/育て -0.035206 -3.339621 そつ/卒 -0.035206 -3.339621 そつぎょう/卒業 -0.035206 -2.524195 その/その -0.072588 -3.339621 そらも/空燃 -0.035206 -3.339621 そりゅーしょん/ソリューション -0.035206 -3.339621 そるがむ/ソルガム -0.035206 -3.213074 そるごー/ソルゴー -0.035206 -3.339621 それ/それ -0.035206 -3.339621 そんざい/存在 -0.035206 -3.339621 ぞうちく/増築 -0.035206 -2.138908 た/た -0.189238 -3.339621 た/立 -0.035206 -3.339621 たい/対 -0.035206 -3.213074 たい/隊 -0.035206 -3.339621 たいい/大尉 -0.035206 -3.339621 たいえき/退役 -0.035206 -3.339621 たいき/待機 -0.035206 -3.339621 たいくつ/退屈 -0.035206 -3.339621 たいせん/大戦 -0.035206 -3.339621 たいぷ/タイプ -0.035206 -3.213074 たいへい/太平 -0.297697 -3.339621 たえ/絶え -0.035206 -2.767151 たか/多賀 -0.154221 -3.339621 たかおう/多嘉王 -0.035206 -3.339621 たかくら/高倉 -0.035206 -3.339621 たかさか/高坂 -0.035206 -3.339621 たかはし/高橋 -0.035206 -3.213074 たがい/互い -0.035206 -3.339621 たけ/嶽 -0.035206 -3.339621 たたか/戦 -0.035206 -3.339621 たたかい/闘い -0.035206 -3.339621 ただし/ただし -0.035206 -3.339621 ただちに/直ちに -0.035206 -3.339621 たち/達 -0.035206 -3.339621 たちあげ/立ち上げ -0.035206 -3.339621 たつじん/達人 -0.035206 -3.339621 たて/立て -0.035206 -3.339621 たて/縦 -0.035206 -3.339621 たとえ/喩え -0.035206 -3.339621 たの/頼 -0.035206 -3.339621 たび/旅 -0.035206 -2.767151 ため/ため -0.206847 -3.339621 たゆう/太夫 -0.035206 -3.339621 たんじょう/誕生 -0.035206 -3.339621 たんぱく/タンパク -0.035206 -3.339621 たんぱく/淡白 -0.035206 -3.339621 たんれい/端麗 -0.035206 -2.892027 だ/だ -0.035206 -3.339621 だ/出 -0.035206 -3.213074 だい/代 -0.035206 -2.892027 だい/大 -0.035206 -2.670279 だい/第 -0.110823 -3.339621 だいかん/代官 -0.035206 -3.339621 だいがく/大学 -0.035206 -3.339621 だいしょうすけ/大賞典 -0.035206 -3.339621 だいひょう/代表 -0.035206 -3.339621 だいよう/代用 -0.035206 -3.339621 だしゃ/打者 -0.035206 -2.892027 だっ/だっ -0.202441 -3.339621 だっしゅつ/脱出 -0.035206 -3.339621 だぶる/ダブル -0.035206 -2.892027 だりつ/打率 -0.191600 -3.339621 だれ/誰 -0.035206 -3.339621 だん/弾 -0.035206 -3.339621 だんせい/弾性 -0.035206 -3.339621 ち/ち -0.035206 -3.339621 ちいき/地域 -0.035206 -3.339621 ちぇすと/チェスト -0.035206 -3.339621 ちか/近 -0.035206 -3.339621 ちから/力 -0.035206 -3.339621 ちぎょう/知行 -0.035206 -3.339621 ちぐさ/千草 -0.035206 -3.339621 ちちおや/父親 -0.035206 -3.213074 ちゃく/着 -0.035206 -3.339621 ちゃーと/チャート -0.035206 -3.213074 ちゅう/中 -0.035206 -3.339621 ちゅうか/中華 -0.035206 -3.339621 ちゅうしゃ/駐車 -0.035206 -3.339621 ちゅうだん/中団 -0.035206 -3.339621 ちゅうとう/中東 -0.035206 -2.892027 ちょう/長 -0.035206 -3.339621 ちょうさ/調査 -0.035206 -3.339621 ちょうし/調子 -0.035206 -3.339621 ちょうせん/朝鮮 -0.035206 -3.339621 ちようこ/蝶子 -0.035206 -3.339621 ちんたい/賃貸 -0.035206 -3.339621 ちーむ/チーム -0.035206 -2.090608 っ/っ -0.746509 -2.591123 つ/つ -0.106401 -3.339621 つ/付 -0.035206 -3.339621 つ/就 -0.035206 -3.339621 つうさん/通算 -0.035206 -3.339621 つうしん/通信 -0.035206 -3.213074 つうじょう/通常 -0.035206 -3.213074 つか/使 -0.035206 -3.339621 つかい/つかい -0.035206 -3.339621 つかえ/使え -0.035206 -3.339621 つきあ/付き合 -0.035206 -3.339621 つけ/着け -0.035206 -3.339621 つつ/つつ -0.035206 -3.339621 つづ/続 -0.035206 -3.339621 つづけ/続け -0.035206 -3.339621 つとめ/務め -0.035206 -3.339621 つね/常 -0.035206 -3.213074 つよ/強 -0.297697 -2.114087 て/て -0.182760 -3.339621 て/手 -0.035206 -3.339621 てい/艇 -0.035206 -3.339621 ていきょう/提供 -0.035206 -3.339621 ていど/程度 -0.035206 -2.524195 てき/的 -0.169848 -3.339621 てばな/手放 -0.035206 -3.339621 てれ/照れ -0.035206 -3.339621 てんし/天使 -0.035206 -3.339621 てんしよう/天正 -0.035206 -3.339621 てんのう/天皇 -0.035206 -1.661816 で/で -0.209065 -3.339621 でいりー/デイリー -0.035206 -3.213074 でき/でき -0.035206 -3.339621 です/です -0.035206 -3.339621 でんげき/電撃 -0.035206 -3.339621 でんれい/伝令 -0.035206 -1.746134 と/と -0.258398 -3.339621 と/問 -0.035206 -3.339621 とうきょう/とうきょう -0.035206 -3.213074 とうきょう/東京 -0.035206 -3.339621 とうげ/峠 -0.035206 -3.339621 とうげん/桃源 -0.035206 -3.339621 とうさつ/盗撮 -0.035206 -3.339621 とうしゅ/当主 -0.035206 -3.339621 とうじ/当時 -0.035206 -3.339621 とうじょう/登場 -0.035206 -3.339621 とうちゃく/到着 -0.035206 -3.339621 とうなーけん/とうなーけん -0.035206 -3.339621 とうひょう/投票 -0.035206 -3.339621 とうろく/登録 -0.035206 -3.339621 とおざけ/遠ざけ -0.035206 -3.339621 とき/とき -0.035206 -3.213074 とき/時 -0.297697 -3.339621 とくちょう/特徴 -0.035206 -3.339621 とくに/とくに -0.035206 -3.339621 ところ/ところ -0.035206 -3.339621 とし/都市 -0.035206 -3.339621 としあき/敏明 -0.035206 -3.339621 としょ/図書 -0.035206 -3.339621 とっぷ/トップ -0.035206 -3.339621 とつぜん/突然 -0.035206 -3.339621 ととのえ/整え -0.035206 -3.339621 となえ/唱え -0.035206 -3.339621 とまつ/塗抹 -0.035206 -3.339621 とも/とも -0.035206 -3.339621 ともこ/智子 -0.035206 -3.339621 とよみ/豊見 -0.035206 -3.339621 とりしらべ/取り調べ -0.035206 -3.339621 とりにだーど/トリニダード -0.035206 -3.339621 とりもど/取り戻 -0.035206 -3.339621 とりわけ/取り分け -0.035206 -3.339621 とれんとん/トレントン -0.035206 -3.339621 とろふぉぞいと/トロフォゾイト -0.035206 -3.339621 とんぼ/とんぼ -0.035206 -3.339621 ど/度 -0.035206 -3.339621 どいつ/ドイツ -0.035206 -3.339621 どういん/動員 -0.035206 -3.339621 どうちゅう/道中 -0.035206 -3.213074 どうぶつ/動物 -0.035206 -3.339621 どうろ/道路 -0.035206 -3.339621 どくしょう/独唱 -0.035206 -3.339621 どくだん/独断 -0.035206 -3.339621 どちゃく/土着 -0.035206 -3.339621 どらま/ドラマ -0.035206 -3.339621 どれん/ドレン -0.035206 -3.339621 どーぱんと/ドーパント -0.035206 -2.047146 な/な -0.169037 -3.339621 ない/内 -0.035206 -3.339621 ないかく/内閣 -0.035206 -3.339621 ないそう/内装 -0.035206 -3.339621 なおひろ/直弘 -0.035206 -3.339621 なか/中 -0.035206 -3.339621 なかの/中野 -0.035206 -3.339621 ながよし/長可 -0.035206 -3.213074 ながら/ながら -0.035206 -3.213074 なす/ナス -0.035206 -3.339621 なつば/夏場 -0.035206 -2.670279 など/など -0.122156 -3.339621 なな/七 -0.035206 -3.339621 なまえ/名前 -0.035206 -3.339621 なん/何 -0.035206 -3.339621 なんて/なんて -0.035206 -3.339621 なんぶ/南部 -0.035206 -3.339621 なんぼくちょう/南北朝 -0.035206 -3.339621 なーせる/ナーセル -0.035206 -1.360794 に/に -0.155465 -3.213074 に/二 -0.035206 -3.339621 にが/苦 -0.035206 -3.339621 にく/肉 -0.035206 -3.339621 にしよどがわ/西淀川 -0.035206 -3.339621 にせんご/2005 -0.035206 -3.339621 にせんじゅういち/2011 -0.035206 -3.339621 にせんじゅうに/2012 -0.035206 -3.339621 にせんなな/2007 -0.035206 -3.213074 にち/日 -0.035206 -3.339621 にちろ/日露 -0.035206 -3.339621 にっぽん/日本 -0.035206 -3.339621 にほん/日本 -0.035206 -3.339621 にゅうせん/入選 -0.035206 -2.892027 にん/人 -0.191600 -3.213074 にんき/人気 -0.035206 -3.339621 にんてい/認定 -0.035206 -3.339621 にんむ/任務 -0.035206 -3.339621 ねっと/ネット -0.035206 -2.047146 ねん/年 -0.227683 -1.335971 の/の -0.059223 -3.339621 の/野 -0.035206 -3.339621 のいず/ノイズ -0.035206 -3.339621 のう/農 -0.035206 -3.339621 のこり/残り -0.035206 -3.339621 のび/伸び -0.035206 -1.725931 は/は -0.123151 -3.339621 は/張 -0.035206 -3.339621 は/波 -0.035206 -3.339621 はあく/把握 -0.035206 -3.339621 はい/入 -0.035206 -3.339621 はい/杯 -0.035206 -3.213074 はいき/排気 -0.297697 -3.339621 はいしん/配信 -0.035206 -3.339621 はいせん/敗戦 -0.035206 -3.339621 はいぞく/配属 -0.035206 -3.339621 はいふ/配布 -0.035206 -3.339621 はいぼく/敗北 -0.035206 -3.339621 はいゆう/俳優 -0.035206 -3.339621 はがー/ハガー -0.035206 -3.339621 はくい/白衣 -0.035206 -3.339621 はじめ/始め -0.035206 -3.339621 はせがわ/長谷川 -0.035206 -3.339621 はそん/破損 -0.035206 -3.339621 はた/秦 -0.035206 -3.339621 はだに/ハダニ -0.035206 -3.339621 はっかく/発覚 -0.035206 -3.339621 はっしゃ/発射 -0.035206 -3.339621 はっぴょう/発表 -0.035206 -3.213074 はつ/初 -0.297697 -3.213074 はつね/初音 -0.297697 -3.339621 はるあき/春秋 -0.035206 -3.213074 はんざい/犯罪 -0.035206 -3.339621 はんすう/半数 -0.035206 -3.339621 はんぱつ/反発 -0.035206 -3.339621 はんもと/版元 -0.035206 -3.213074 ば/ば -0.035206 -3.339621 ば/場 -0.035206 -2.892027 ばあい/場合 -0.035206 -3.339621 ばくりょう/幕僚 -0.035206 -3.339621 ばす/バス -0.035206 -3.339621 ばすたー/バスター -0.035206 -3.339621 ばっく/バック -0.035206 -3.339621 ばん/版 -0.035206 -3.213074 ばん/番 -0.035206 -3.339621 ばんぞく/蛮族 -0.035206 -3.339621 ばんのう/万能 -0.035206 -3.339621 ばーくれい/バークレイ -0.035206 -3.339621 ばーぐ/バーグ -0.035206 -3.339621 ひ/妃 -0.035206 -3.339621 ひ/日 -0.035206 -3.339621 ひ/比 -0.035206 -3.339621 ひがしな/東那 -0.035206 -3.339621 ひがしまつやま/東松山 -0.035206 -3.339621 ひきと/引き取 -0.035206 -3.339621 ひっと/ヒット -0.035206 -3.339621 ひてい/否定 -0.035206 -3.213074 ひと/ヒト -0.035206 -3.339621 ひと/一 -0.035206 -3.339621 ひとり/1人 -0.035206 -3.339621 ひめはな/ヒメハナ -0.035206 -3.339621 ひょう/票 -0.035206 -3.213074 ひょうげん/表現 -0.297697 -3.339621 ひよう/費用 -0.035206 -3.339621 ひろし/寛 -0.035206 -3.339621 ひろし/汎 -0.035206 -3.339621 ひろた/広食 -0.035206 -3.339621 ひろば/広場 -0.035206 -3.339621 ひん/品 -0.035206 -3.339621 び/日 -0.035206 -3.339621 び/美 -0.035206 -3.339621 びょういん/病院 -0.035206 -3.339621 びるぼーど/ビルボード -0.035206 -3.213074 ぴくる/ピクル -0.035206 -3.339621 ふ/府 -0.035206 -3.339621 ふ/振 -0.035206 -3.339621 ふぁすべんだー/ファスベンダー -0.035206 -3.213074 ふぁー/ファー -0.297697 -3.339621 ふぃじかる/フィジカル -0.035206 -3.339621 ふうけい/風景 -0.035206 -3.339621 ふぇいす/フェイス -0.035206 -3.339621 ふぇーざー/フェーザー -0.035206 -3.339621 ふぉっくす/フォックス -0.035206 -3.339621 ふきん/付近 -0.035206 -3.213074 ふく/含 -0.297697 -3.339621 ふさわし/ふさわし -0.035206 -3.339621 ふしぎ/不思議 -0.035206 -3.339621 ふしん/不審 -0.035206 -3.339621 ふたたび/再び -0.035206 -3.339621 ふたり/二人 -0.035206 -3.339621 ふたり/2人 -0.035206 -3.339621 ふなこし/船越 -0.035206 -3.339621 ふなばし/船橋 -0.035206 -3.339621 ふみひこ/文彦 -0.035206 -3.339621 ふみやす/文保 -0.035206 -3.339621 ふめい/不明 -0.035206 -3.339621 ふるい/ふるい -0.035206 -3.339621 ふるく/古く -0.035206 -3.339621 ふん/分 -0.035206 -3.339621 ぶ/ぶ -0.035206 -3.339621 ぶ/部 -0.035206 -3.213074 ぶか/部下 -0.035206 -3.339621 ぶしゅう/武州 -0.035206 -3.339621 ぶそう/武装 -0.035206 -3.213074 ぶたい/部隊 -0.035206 -3.339621 ぶよう/舞踊 -0.035206 -3.339621 ぶらざーず/ブラザーズ -0.035206 -3.339621 ぶろー/ブロー -0.035206 -3.339621 ぶんげい/文芸 -0.035206 -3.339621 ぶんせき/分析 -0.035206 -3.339621 ぷらちな/プラチナ -0.035206 -3.339621 ぷれてすと/プレテスト -0.035206 -3.213074 へ/へ -0.035206 -3.339621 へ/経 -0.035206 -3.339621 へくたーる/ヘクタール -0.035206 -3.339621 へん/変 -0.035206 -3.339621 へんか/変化 -0.035206 -3.339621 へんじ/返事 -0.035206 -3.339621 べ/べ -0.035206 -3.339621 べいぐん/米軍 -0.035206 -3.339621 べすと/ベスト -0.035206 -3.339621 べんぐつそん/ベングツソン -0.035206 -3.339621 ぺてぃ/ペティ -0.035206 -2.767151 ぺーじ/頁 -0.146915 -3.339621 ほう/法 -0.035206 -3.339621 ほう/砲 -0.035206 -3.339621 ほうこく/報告 -0.035206 -3.339621 ほうしゅつ/放出 -0.035206 -3.339621 ほうしょう/褒章 -0.035206 -3.339621 ほうしん/砲身 -0.035206 -3.339621 ほうじん/法人 -0.035206 -3.213074 ほうせい/法政 -0.035206 -3.339621 ほくと/ホクト -0.035206 -3.339621 ほくぶ/北部 -0.035206 -3.339621 ほしょく/捕食 -0.035206 -3.339621 ほぜん/保全 -0.035206 -3.339621 ほっぽう/北方 -0.035206 -3.339621 ほどこ/施 -0.035206 -3.339621 ほんのう/本能 -0.035206 -3.339621 ほんみょう/本名 -0.035206 -3.339621 ほんらい/本来 -0.035206 -3.339621 ぼいす/ボイス -0.035206 -3.213074 ぼうえい/防衛 -0.035206 -3.339621 ぼうご/防護 -0.035206 -3.339621 ぼうだん/防弾 -0.035206 -3.339621 ぼくし/牧師 -0.035206 -3.339621 ぼこぼこ/ボコボコ -0.035206 -3.339621 ぼっ/ぼっ -0.035206 -3.339621 ぼっぱつ/勃発 -0.035206 -3.339621 ぼびー/ボビー -0.035206 -3.339621 ぽーかー/ポーカー -0.035206 -3.339621 ぽーとらんど/ポートランド -0.035206 -3.339621 ま/ま -0.035206 -3.339621 まいける/マイケル -0.035206 -3.213074 まえ/前 -0.035206 -3.339621 まき/巻 -0.035206 -3.339621 まさと/正人 -0.035206 -3.339621 まじ/まじ -0.035206 -3.339621 まじえ/交え -0.035206 -3.339621 また/また -0.035206 -3.339621 まち/町 -0.035206 -3.339621 まっしょう/末梢 -0.035206 -3.339621 まっする/マッスル -0.035206 -3.339621 まっど/マッド -0.035206 -3.339621 まつ/末 -0.035206 -3.339621 まつい/松井 -0.035206 -3.339621 まつやま/松山 -0.035206 -3.213074 まで/まで -0.035206 -3.339621 まと/まと -0.035206 -3.339621 まと/的 -0.035206 -3.339621 まにら/マニラ -0.035206 -3.339621 まね/招 -0.035206 -3.339621 まま/まま -0.035206 -3.339621 まりーあ/マリーア -0.035206 -3.339621 まんが/まんが -0.035206 -3.339621 まんが/漫画 -0.035206 -3.339621 まんざい/漫才 -0.035206 -3.339621 まーくるんど/マークルンド -0.035206 -3.339621 まーけっと/マーケット -0.035206 -3.339621 み/見 -0.035206 -3.339621 み/身 -0.035206 -3.339621 みく/ミク -0.035206 -3.213074 みちの/美智乃 -0.035206 -3.339621 みっくみく/みっくみく -0.035206 -3.339621 みの/美濃 -0.035206 -3.339621 みりょう/魅了 -0.035206 -3.339621 みりょく/魅力 -0.035206 -3.339621 みんせい/民生 -0.035206 -3.339621 む/む -0.035206 -3.339621 むか/向か -0.035206 -3.213074 むけ/向け -0.035206 -3.339621 むす/結 -0.035206 -3.339621 むだ/無駄 -0.035206 -3.339621 め/目 -0.035206 -3.339621 めいぎ/名義 -0.035206 -3.213074 めいじ/明治 -0.035206 -3.339621 めがね/眼鏡 -0.035206 -3.339621 めぐろ/目黒 -0.035206 -3.339621 めざ/目指 -0.035206 -3.339621 めだ/目立 -0.035206 -3.339621 めんどう/面倒 -0.035206 -3.339621 めんばー/メンバー -0.035206 -2.193259 も/も -0.035206 -3.339621 も/持 -0.035206 -3.339621 も/盛 -0.035206 -3.339621 もう/網 -0.035206 -3.339621 もうり/毛利 -0.035206 -3.339621 もたら/もたら -0.035206 -3.339621 もと/元 -0.035206 -2.767151 もの/もの -0.035206 -3.339621 もの/者 -0.035206 -3.339621 ものがたり/物語 -0.035206 -3.339621 ものごと/物事 -0.035206 -3.339621 もも/もも -0.035206 -3.339621 もよう/模様 -0.035206 -3.339621 もり/森 -0.035206 -2.466216 や/や -0.035206 -3.339621 やく/役 -0.035206 -3.213074 やく/約 -0.035206 -3.339621 やっと/やっと -0.035206 -3.339621 やよい/弥生 -0.035206 -3.339621 やん/やん -0.035206 -3.339621 ゆうしゅう/優秀 -0.035206 -3.339621 ゆうしょう/優勝 -0.035206 -3.339621 ゆうよ/猶予 -0.035206 -3.339621 ゆうれい/ユウレイ -0.035206 -3.213074 よ/よ -0.035206 -3.339621 よ/呼 -0.035206 -2.892027 よう/よう -0.035206 -3.339621 よう/洋 -0.035206 -3.339621 ようかい/妖怪 -0.035206 -3.213074 ようし/容姿 -0.035206 -3.339621 よくちょう/翌朝 -0.035206 -3.339621 よばい/夜這い -0.035206 -3.339621 よびだ/呼び出 -0.035206 -3.339621 よみ/読み -0.035206 -3.339621 よろこ/喜 -0.035206 -3.339621 よんじゅういち/四一 -0.035206 -3.339621 よーろっぱ/ヨーロッパ -0.035206 -2.369325 ら/ら -0.127666 -3.339621 らいん/ライン -0.035206 -3.339621 らずふぁーど/ラズファード -0.035206 -2.591123 られ/られ -0.106401 -3.339621 らんきんぐ/ランキング -0.035206 -3.339621 らんくいん/ランクイン -0.035206 -3.339621 らーる/ラール -0.035206 -2.767151 り/り -0.206847 -3.339621 りくじょう/陸上 -0.035206 -3.339621 りくろ/陸路 -0.035206 -3.339621 りつ/立 -0.035206 -3.213074 りま/りま -0.035206 -3.339621 りゅう/龍 -0.035206 -3.339621 りゅうじ/龍治 -0.035206 -3.339621 りょういき/領域 -0.035206 -3.339621 りよん/リヨン -0.035206 -3.339621 りりーす/リリース -0.035206 -3.339621 りん/林 -0.035206 -3.339621 りーぐ/リーグ -0.035206 -2.068333 る/る -0.144176 -2.670279 れ/れ -0.174235 -3.213074 れい/令 -0.035206 -3.339621 れおん/レオン -0.035206 -3.339621 れきし/歴史 -0.035206 -3.339621 れこーど/レコード -0.035206 -3.339621 れっど/レッド -0.035206 -3.339621 れつ/列 -0.035206 -3.339621 ればのん/レバノン -0.035206 -3.339621 れんぽう/連邦 -0.035206 -3.339621 ろういん/老院 -0.035206 -3.339621 ろく/六 -0.035206 -3.339621 ろせん/路線 -0.035206 -3.339621 ろれーた/ロレータ -0.035206 -3.339621 ろんぶん/論文 -0.035206 -2.767151 わ/わ -0.327380 -3.339621 わか/若 -0.035206 -3.339621 わしんとん/ワシントン -0.035206 -3.339621 わずか/わずか -0.035206 -3.339621 わた/亘 -0.035206 -3.339621 わたし/私 -0.035206 -3.339621 わたり/渡り -0.035206 -3.339621 わたる/渉 -0.035206 -3.339621 わよ/和与 -0.035206 -3.339621 わんしょう/腕章 -0.035206 -3.339621 わーなー/ワーナー -0.035206 -1.450314 を/を -0.066440 -3.213074 ん/ん -0.035206 -2.047146 ・/・ -0.035206 -3.213074 ー/ー -0.035206 -2.165234 (/( -0.057666 -2.223219 )/) -0.181950 -2.892027 ./. -0.146915 -3.339621 0/0 -0.035206 -3.339621 000/000 -0.035206 -3.213074 1/1 -0.035206 -3.213074 10/10 -0.035206 -3.213074 12/12 -0.035206 -3.339621 13/13 -0.035206 -3.339621 14/14 -0.035206 -3.339621 17/17 -0.035206 -3.339621 18/18 -0.035206 -3.339621 1901/1901 -0.035206 -3.339621 1907/1907 -0.035206 -3.339621 1942/1942 -0.035206 -3.339621 1944/1944 -0.035206 -3.339621 1956/1956 -0.035206 -2.466216 2/2 -0.035206 -3.339621 2000/2000 -0.035206 -3.339621 21/21 -0.035206 -3.339621 24/24 -0.035206 -3.339621 26/26 -0.035206 -2.670279 3/3 -0.035206 -3.339621 300/300 -0.035206 -3.339621 31/31 -0.035206 -3.213074 34/34 -0.035206 -3.339621 35/35 -0.035206 -3.339621 39/39 -0.035206 -3.339621 393/393 -0.035206 -2.892027 4/4 -0.035206 -3.339621 40/40 -0.035206 -3.339621 44/44 -0.035206 -3.339621 45/45 -0.035206 -3.213074 5/5 -0.035206 -3.339621 50/50 -0.035206 -3.339621 5000/5000 -0.035206 -3.339621 533/533 -0.035206 -3.339621 536/536 -0.035206 -3.339621 537/537 -0.035206 -3.339621 57/57 -0.035206 -2.892027 6/6 -0.191600 -3.339621 62/62 -0.035206 -3.213074 7/7 -0.035206 -3.339621 71/71 -0.035206 -2.892027 8/8 -0.191600 -3.339621 800/800 -0.035206 -2.767151 9/9 -0.035206 -3.213074 :/: -0.035206 -3.213074 =/= -0.035206 \2-grams: -0.583800 -0.074524 -2.377146 「/「 -0.021934 -3.015277 あきひろ/空広 -0.021934 -3.015277 あさくら/朝倉 -0.021934 -2.813579 あと/後 -0.021934 -3.015277 あにめ/アニメ -0.021934 -3.015277 いってい/一定 -0.021934 -2.969596 いんたい/引退 -0.021934 -3.015277 おうごん/黄金 -0.021934 -3.015277 おおさか/大阪 -0.021934 -3.015277 おぐら/小倉 -0.021934 -2.969596 おりこん/オリコン -0.021934 -3.015277 かみのうがね/上納金 -0.021934 -2.969596 かれ/彼 -0.021934 -2.969596 かんこく/韓国 -0.021934 -3.015277 かんさい/関西 -0.021934 -3.015277 かんめい/艦名 -0.021934 -2.969596 がいこく/外国 -0.021934 -3.015277 がくえん/学園 -0.021934 -3.015277 く/食 -0.021934 -3.015277 ぐんぶ/軍部 -0.021934 -2.969596 けい/計 -0.021934 -2.969596 けん/剣 -0.021934 -2.813579 げんざい/現在 -0.021934 -2.969596 この/この -0.021934 -2.969596 これ/これ -0.021934 -3.015277 こーひー/コーヒー -0.021934 -3.015277 さいしょ/最初 -0.021934 -3.015277 しいき/市域 -0.021934 -3.015277 しかし/しかし -0.021934 -3.015277 しまだ/島田 -0.021934 -3.015277 しゃんはい/上海 -0.021934 -2.969596 しゅ/主 -0.021934 -3.015277 しゅうり/修理 -0.021934 -2.813579 しょう/賞 -0.021934 -3.015277 しょけい/処刑 -0.021934 -3.015277 しんだん/診断 -0.021934 -2.672185 じょくん/叙勲 -0.021934 -3.015277 すき/好き -0.021934 -2.969596 すきー/スキー -0.021934 -3.015277 せんきゅうひゃくきゅうじゅうきゅう/1999 -0.021934 -3.015277 せんきゅうひゃくはちじゅうなな/1987 -0.021934 -3.015277 せんきゅうひゃくはちじゅうはち/1988 -0.021934 -3.015277 せんたい/船体 -0.021934 -2.813579 ぜん/全 -0.021934 -3.015277 そして/そして -0.021934 -2.565693 その/その -0.114249 -3.015277 ただし/ただし -0.021934 -3.015277 だ/出 -0.021934 -2.672185 だい/第 -0.021934 -3.015277 ちぎょう/知行 -0.021934 -3.015277 ちぐさ/千草 -0.021934 -3.015277 てんしよう/天正 -0.021934 -1.803459 で/で -0.021934 -2.969596 とうきょう/東京 -0.021934 -3.015277 とりしらべ/取り調べ -0.021934 -3.015277 とんぼ/とんぼ -0.021934 -2.969596 なす/ナス -0.021934 -3.015277 なな/七 -0.021934 -3.015277 にしよどがわ/西淀川 -0.021934 -3.015277 にせんじゅういち/2011 -0.021934 -3.015277 にせんなな/2007 -0.021934 -2.969596 はんざい/犯罪 -0.021934 -3.015277 ばーくれい/バークレイ -0.021934 -3.015277 ひがしな/東那 -0.021934 -3.015277 びるぼーど/ビルボード -0.021934 -2.969596 ぴくる/ピクル -0.021934 -3.015277 ふぇいす/フェイス -0.021934 -3.015277 ふぇーざー/フェーザー -0.021934 -3.015277 ぷれてすと/プレテスト -0.021934 -3.015277 ほんみょう/本名 -0.021934 -2.969596 ぼうえい/防衛 -0.021934 -3.015277 ぼびー/ボビー -0.021934 -3.015277 また/また -0.231635 -3.015277 まち/町 -0.021934 -2.969596 めいじ/明治 -0.021934 -2.969596 ようし/容姿 -0.021934 -3.015277 よーろっぱ/ヨーロッパ -0.021934 -3.015277 れっど/レッド -0.021934 -3.015277 ろく/六 -0.021934 -3.015277 わか/若 -0.021934 -3.015277 わたし/私 -0.021934 -2.969596 1/1 -0.021934 -2.969596 12/12 -0.021934 -3.015277 1901/1901 -0.021934 -3.015277 1907/1907 -0.021934 -2.520867 2/2 -0.021934 -3.015277 2000/2000 -0.021934 -3.015277 21/21 -0.021934 -1.404995 ”/“ だぶる/ダブル -0.021934 -1.144915 ”/“ を/を -0.021934 -2.072572 、/、 あいてむ/アイテム -0.021934 -2.988535 、/、 あぶらむし/アブラムシ -0.021934 -2.935570 、/、 あめりか/アメリカ -0.021934 -2.988535 、/、 ある/ある -0.021934 -2.072572 、/、 いぎりす/イギリス -0.021934 -2.988535 、/、 いく/いく -0.021934 -2.988535 、/、 いたりあ/イタリア -0.021934 -2.988535 、/、 いわゆる/いわゆる -0.021934 -2.935570 、/、 いんたい/引退 -0.021934 -2.988535 、/、 うちとみ/内冨 -0.021934 -2.988535 、/、 えいが/映画 -0.021934 -2.988535 、/、 えいだっく/エイダック -0.021934 -2.988535 、/、 えぎ/榎木 -0.021934 -2.988535 、/、 おおく/多く -0.021934 -2.935570 、/、 おりこん/オリコン -0.021934 -2.988535 、/、 おんせん/温泉 -0.021934 -2.935570 、/、 かいしゃ/会社 -0.021934 -2.988535 、/、 かいしゅう/改修 -0.021934 -2.988535 、/、 かげ/影 -0.021934 -2.935570 、/、 がいこく/外国 -0.021934 -2.988535 、/、 がまーる/ガマール -0.021934 -2.988535 、/、 がめとさいと/ガメトサイト -0.021934 -2.988535 、/、 がーでぃあん/ガーディアン -0.021934 -2.760328 、/、 きけん/危険 -0.021934 -2.988535 、/、 きゅうしゅう/九州 -0.021934 -2.988535 、/、 くろす/クロス -0.021934 -2.988535 、/、 けっせい/結成 -0.021934 -2.935570 、/、 こうつう/交通 -0.021934 -2.988535 、/、 こうれい/高齢 -0.021934 -2.988535 、/、 こども/子供 -0.021934 -2.065790 、/、 この/この -0.021934 -2.988535 、/、 こみっく/コミック -0.021934 -2.065790 、/、 これ/これ -0.021934 -2.988535 、/、 こんこーど/コンコード -0.021934 -2.988535 、/、 さいあく/最悪 -0.021934 -2.935570 、/、 さいしゅう/最終 -0.021934 -2.988535 、/、 さいしん/最新 -0.021934 -2.935570 、/、 ざざーぐ/ザザーグ -0.021934 -2.988535 、/、 しっこう/執行 -0.021934 -2.988535 、/、 してい/姉弟 -0.021934 -2.988535 、/、 しぼう/死亡 -0.021934 -2.988535 、/、 しゃりょう/車両 -0.021934 -2.988535 、/、 しゅりゅう/手榴 -0.021934 -2.988535 、/、 しんわ/神話 -0.021934 -2.935570 、/、 しーずん/シーズン -0.021934 -2.988535 、/、 じゅう/十 -0.021934 -2.988535 、/、 すう/数 -0.021934 -2.988535 、/、 すご/凄 -0.021934 -2.607009 、/、 せかい/世界 -0.021934 -2.988535 、/、 せっこう/浙江 -0.021934 -2.935570 、/、 せるてぃっくす/セルティックス -0.021934 -2.760328 、/、 せん/戦 -0.021934 -2.988535 、/、 せんとう/戦闘 -0.021934 -2.988535 、/、 せんない/船内 -0.021934 -1.933261 、/、 その/その -0.021934 -2.988535 、/、 そらも/空燃 -0.021934 -2.988535 、/、 そるがむ/ソルガム -0.021934 -2.935570 、/、 そるごー/ソルゴー -0.021934 -2.072572 、/、 それ/それ -0.231635 -2.988535 、/、 ぞうちく/増築 -0.021934 -2.988535 、/、 たいい/大尉 -0.021934 -2.935570 、/、 たがい/互い -0.021934 -2.760328 、/、 だい/大 -0.021934 -2.988535 、/、 ちゅうしゃ/駐車 -0.021934 -2.988535 、/、 ちょうせん/朝鮮 -0.021934 -2.935570 、/、 つうじょう/通常 -0.021934 -2.988535 、/、 つづ/続 -0.021934 -2.988535 、/、 てれ/照れ -0.021934 -2.988535 、/、 でんげき/電撃 -0.021934 -2.988535 、/、 とうさつ/盗撮 -0.021934 -2.072572 、/、 とうじ/当時 -0.021934 -2.988535 、/、 とくに/とくに -0.021934 -2.988535 、/、 とつぜん/突然 -0.021934 -2.988535 、/、 とも/とも -0.021934 -2.988535 、/、 とろふぉぞいと/トロフォゾイト -0.021934 -2.988535 、/、 どれん/ドレン -0.021934 -2.988535 、/、 ないかく/内閣 -0.021934 -2.988535 、/、 なん/何 -0.021934 -2.988535 、/、 なんぼくちょう/南北朝 -0.021934 -2.988535 、/、 にく/肉 -0.021934 -2.988535 、/、 にせんご/2005 -0.021934 -2.988535 、/、 にせんじゅうに/2012 -0.021934 -2.988535 、/、 ねっと/ネット -0.021934 -2.988535 、/、 のこり/残り -0.021934 -2.935570 、/、 はいき/排気 -0.021934 -2.935570 、/、 はつね/初音 -0.021934 -2.988535 、/、 はるあき/春秋 -0.021934 -2.988535 、/、 ばんぞく/蛮族 -0.021934 -2.988535 、/、 ひろば/広場 -0.021934 -2.065790 、/、 ぴくる/ピクル -0.231635 -2.988535 、/、 ふなばし/船橋 -0.021934 -2.988535 、/、 ぶそう/武装 -0.021934 -2.988535 、/、 ぺてぃ/ペティ -0.021934 -2.988535 、/、 ぽーとらんど/ポートランド -0.021934 -2.988535 、/、 まさと/正人 -0.021934 -2.988535 、/、 まにら/マニラ -0.021934 -2.988535 、/、 めがね/眼鏡 -0.021934 -2.988535 、/、 ものごと/物事 -0.021934 -2.988535 、/、 もも/もも -0.021934 -2.935570 、/、 やく/約 -0.021934 -2.935570 、/、 りま/りま -0.021934 -2.988535 、/、 りよん/リヨン -0.021934 -2.988535 、/、 ればのん/レバノン -0.021934 -2.988535 、/、 れんぽう/連邦 -0.021934 -2.988535 、/、 わたる/渉 -0.021934 -2.988535 、/、 わーなー/ワーナー -0.021934 -2.988535 、/、 000/000 -0.021934 -2.935570 、/、 12/12 -0.021934 -2.072572 、/、 1956/1956 -0.231635 -2.988535 、/、 39/39 -0.021934 -2.988535 、/、 5000/5000 -0.021934 -2.760328 、/、 6/6 -0.021934 -2.988535 、/、 800/800 -0.021934 -2.323506 「/「 あお/青 -0.021934 -2.323506 「/「 うちのめ/打ちのめ -0.021934 -2.323506 「/「 えさ/餌 -0.021934 -2.323506 「/「 おりじんきー/オリジンキー -0.021934 -2.323506 「/「 かがく/科学 -0.021934 -2.310645 「/「 かんこく/韓国 -0.021934 -2.323506 「/「 くれない/紅 -0.021934 -2.323506 「/「 しゅうかん/週刊 -0.021934 -2.200924 「/「 せかい/世界 -0.021934 -2.323506 「/「 せの/瀬乃 -0.021934 -2.228981 「/「 たか/多賀 -0.021934 -2.323506 「/「 だれ/誰 -0.021934 -2.323506 「/「 てんし/天使 -0.021934 -2.310645 「/「 ぼうえい/防衛 -0.021934 -2.323506 「/「 ぼっ/ぼっ -0.021934 -2.323506 「/「 まんざい/漫才 -0.021934 -2.323506 「/「 みっくみく/みっくみく -0.021934 -2.323506 「/「 よばい/夜這い -0.021934 -2.172349 」/」 こと/こと -0.021934 -1.746789 」/」 で/で -0.021934 -0.619872 」/」 と/と -0.269957 -1.501647 」/」 に/に -0.021934 -1.076221 」/」 の/の -0.021934 -1.074630 」/」 を/を -0.021934 -2.066036 」/」 (/( -0.021934 -2.093851 」/」 )/) -0.021934 -2.336177 」/」 536/536 -0.021934 -2.290244 」/」 8/8 -0.021934 -0.840216 あ/あ っ/っ -0.387375 -1.969205 あ/あ り/り -0.231635 -0.569083 あ/あ る/る -0.224432 -1.064796 あ/ア ・/・ -0.021934 -0.919339 あいだ/間 の/の -0.021934 -1.074841 あいて/相手 (/( -0.021934 -1.255877 あいてむ/アイテム と/と -0.021934 -1.088970 あいてむ/アイテム の/の -0.021934 -1.106299 あいりっしゅ/アイリッシュ はいゆう/俳優 -0.021934 -1.008965 あいるらんど/アイルランド で/で -0.021934 -1.064796 あお/青 い/い -0.021934 -1.078925 あか/あか )/) -0.021934 -0.919339 あかね/茜 の/の -0.021934 -1.021365 あきひろ/空広 は/は -0.021934 -0.919339 あこがれ/憧れ の/の -0.021934 -0.927948 あさ/朝 に/に -0.021934 -1.106299 あさくら/朝倉 か/家 -0.021934 -1.066787 あた/あた る/る -0.021934 -0.993525 あたえ/与え 、/、 -0.021934 -1.008965 あたり/あたり で/で -0.021934 -1.054978 あっか/悪化 さ/さ -0.021934 -1.105508 あっぷ/アップ ”/“ -0.021934 -1.068786 あつま/集ま っ/っ -0.021934 -1.179570 あと/後 に/に -0.021934 -1.164321 あと/後 の/の -0.021934 -1.496686 あと/後 も/も -0.021934 -1.064796 あにか/アニカ ・/・ -0.021934 -1.106299 あにめ/アニメ ばん/版 -0.021934 -1.576422 あふりか/アフリカ かんけい/関係 -0.021934 -1.576422 あふりか/アフリカ せつ/説 -0.021934 -1.231728 あふりか/アフリカ を/を -0.021934 -1.105508 あぶどぅん/アブドゥン =/= -0.021934 -0.956394 あぶらむし/アブラムシ を/を -0.021934 -1.106299 あぷろーち/アプローチ なんぶ/南部 -0.021934 -1.106299 あまーすと/アマースト ばーぐ/バーグ -0.021934 -1.375868 あめりか/アメリカ や/や -0.021934 -1.404995 あめりか/アメリカ れこーど/レコード -0.021934 -1.064796 あやし/怪し い/い -0.021934 -1.106299 あらぶ/アラブ しゅぎ/主義 -0.021934 -1.102101 あらわ/表 す/す -0.021934 -1.106299 ある/ある ていど/程度 -0.021934 -1.105508 あるばむ/アルバム ”/“ -0.021934 -1.106299 あわー/アワー ばっく/バック -0.021934 -1.064796 あんな/アンナ ・/・ -0.021934 -1.895544 い/い -0.231635 -1.675013 い/い 、/、 -0.021934 -2.111690 い/い 」/」 -0.021934 -2.557968 い/い いじ/意地 -0.021934 -1.491383 い/い う/う -0.021934 -1.715248 い/い が/が -0.021934 -2.255658 い/い く/く -0.021934 -2.557968 い/い けいけん/経験 -0.021934 -2.280756 い/い こと/こと -0.021934 -2.557968 い/い そうび/装備 -0.021934 -1.439995 い/い た/た -0.129197 -2.434083 い/い ため/ため -0.021934 -2.557968 い/い たんぱく/タンパク -0.021934 -2.557968 い/い ちから/力 -0.021934 -2.078018 い/い っ/っ -0.231635 -0.871957 い/い て/て -0.168988 -2.557968 い/い なか/中 -0.021934 -1.442558 い/い の/の -0.021934 -2.557968 い/い まま/まま -0.021934 -2.434083 い/い もの/もの -0.021934 -2.557968 い/い もの/者 -0.021934 -2.540599 い/い ようし/容姿 -0.021934 -2.557968 い/い りゅう/龍 -0.021934 -1.428953 い/い る/る -0.487950 -1.365505 い/位 、/、 -0.021934 -1.224420 い/位 に/に -0.021934 -1.207543 い/位 の/の -0.021934 -1.282649 い/位 を/を -0.021934 -1.087210 い/行 く/く -0.021934 -1.333309 い/言 っ/っ -0.021934 -1.392439 い/言 わ/わ -0.436321 -0.919339 いぇーがん/イェーガン の/の -0.021934 -1.005486 いか/生か し/し -0.021934 -0.927948 いがい/以外 に/に -0.021934 -1.070795 いき/生き て/て -0.021934 -1.404995 いぎりす/イギリス かいきょう/海峡 -0.021934 -1.228976 いぎりす/イギリス で/で -0.021934 -1.095656 いく/いく つ/つ -0.021934 -1.041595 いし/石 -0.021934 -0.956394 いしょう/衣装 を/を -0.021934 -1.003757 いじ/意地 が/が -0.021934 -1.005486 いじゅう/移住 し/し -0.021934 -1.066787 いた/至 る/る -0.021934 -0.919339 いたりあ/イタリア の/の -0.021934 -1.105508 いだ/抱 き/き -0.021934 -1.099942 いち/一 ごう/号 -0.021934 -1.326000 いち/位置 する/する -0.231635 -1.101754 いち/位置 に/に -0.021934 -1.008965 いちよ/一代 で/で -0.021934 -1.078925 いっしゅ/一種 )/) -0.021934 -0.927948 いっしょ/一緒 に/に -0.021934 -0.919339 いってい/一定 の/の -0.021934 -0.956394 いのち/命 を/を -0.021934 -1.064796 いま/今 い/い -0.021934 -1.041595 いみ/意味 -0.021934 -1.371822 いりょう/医療 から/から -0.021934 -1.403423 いりょう/医療 じゅうじ/従事 -0.021934 -1.068786 いわ/祝 っ/っ -0.021934 -1.106299 いわゆる/いわゆる まっど/マッド -0.021934 -1.021365 いん/員 は/は -0.021934 -1.388237 いんたい/引退 ご/後 -0.021934 -1.326000 いんたい/引退 する/する -0.021934 -1.041595 いんちょう/院長 -0.021934 -1.106299 いんなー/インナー まっする/マッスル -0.021934 -1.005486 いんよう/飲用 し/し -0.021934 -1.697271 う/う -0.021934 -2.124899 う/う かせつ/仮説 -0.021934 -1.973685 う/う こと/こと -0.021934 -2.124899 う/う ことば/言葉 -0.021934 -2.124899 う/う しらせ/報せ -0.021934 -2.116713 う/う せつ/説 -0.021934 -2.062726 う/う たか/多賀 -0.021934 -2.043397 う/う など/など -0.021934 -2.124899 う/う なんて/なんて -0.021934 -2.124899 う/う はた/秦 -0.021934 -2.116713 う/う ひょうげん/表現 -0.021934 -1.008965 うぃーくりーらんきんぐ/ウィークリーランキング で/で -0.021934 -1.088970 うぇい/ウェイ の/の -0.021934 -1.249753 うぇい/ウェイ は/は -0.021934 -1.106299 うぇすたん/ウェスタン あぷろーち/アプローチ -0.021934 -1.008965 うえ/うえ で/で -0.021934 -0.927948 うえ/上 に/に -0.021934 -1.102101 うえるず/ウエルズ だっ/だっ -0.021934 -1.066787 うかがえ/伺え る/る -0.021934 -1.340743 うけ/受け た/た -0.021934 -1.337010 うけ/受け て/て -0.021934 -1.102101 うごか/動か す/す -0.021934 -1.106299 うち/うち 45/45 -0.021934 -1.106299 うちとみ/内冨 ひろし/寛 -0.021934 -1.054978 うちのめ/打ちのめ さ/さ -0.021934 -1.105508 うっど/ウッド こうつう/交通 -0.021934 -1.066787 うつ/移 る/る -0.021934 -0.993525 うなぎ/鰻 、/、 -0.021934 -1.105508 うみず/海津 じょう/城 -0.021934 -0.919339 うら/裏 の/の -0.021934 -1.087210 うれし/うれし く/く -0.021934 -1.064796 うんえい/運営 する/する -0.021934 -1.005486 うんこう/運行 し/し -0.021934 -1.105508 え/え ば/ば -0.021934 -1.064796 え/得 な/な -0.021934 -0.993525 えいいちろう/英一郎 、/、 -0.021934 -1.106299 えいが/映画 ふぉっくす/フォックス -0.021934 -0.956394 えいきょう/影響 を/を -0.021934 -0.927948 えいじゃっくす/エイジャックス に/に -0.021934 -1.403423 えいせい/衛生 か/科 -0.021934 -1.404995 えいせい/衛生 わんしょう/腕章 -0.021934 -1.106299 えいぞう/映像 び/美 -0.021934 -1.008965 えいだっく/エイダック で/で -0.021934 -1.389996 えき/駅 が/が -0.021934 -1.556902 えき/駅 ・/・ -0.021934 -1.588886 えき/駅 (/( -0.021934 -1.602370 えき/駅 )/) -0.021934 -1.093529 えきがく/疫学 てき/的 -0.021934 -1.106299 えぎ/榎木 こうめい/孝明 -0.021934 -1.072813 えさ/餌 」/」 -0.021934 -0.956394 えぴそーど/エピソード を/を -0.021934 -1.106299 えら/選 べ/べ -0.021934 -1.106299 えん/演 じ/じ -0.021934 -1.003757 えんげき/演劇 が/が -0.021934 -1.404995 えんじん/エンジン はそん/破損 -0.021934 -1.404995 えんじん/エンジン ぶろー/ブロー -0.021934 -0.927948 えんだん/縁談 に/に -0.021934 -1.465613 お/お い/い -0.021934 -1.576422 お/お たがい/互い -0.021934 -1.560162 お/お り/り -0.804298 -1.105508 お/逐 しょう/小 -0.021934 -1.106299 おう/王 そうは/争覇 -0.021934 -1.106299 おうごん/黄金 じゅうし/銃士 -0.021934 -1.498575 おお/多 い/い -0.021934 -0.476887 おお/多 く/く -0.021934 -1.102101 おおいた/大分 けん/県 -0.021934 -1.106299 おおきな/大きな しょっく/ショック -0.021934 -0.919339 おおく/多く の/の -0.021934 -1.106299 おおさか/大阪 がんつ/ガンツ -0.021934 -1.106299 おおしま/大島 ともこ/智子 -0.021934 -1.106299 おおつき/大槻 ふみひこ/文彦 -0.021934 -1.106299 おぐら/小倉 だいしょうすけ/大賞典 -0.021934 -1.066787 おけ/おけ る/る -0.021934 -1.852647 おこな/行 う/う -0.021934 -1.744265 おこな/行 っ/っ -0.021934 -0.450975 おこな/行 わ/わ -0.561260 -1.102101 おそく/遅く だっ/だっ -0.021934 -1.072813 おとずれ/訪れ た/た -0.021934 -0.956394 おにごっこ/鬼ごっこ を/を -0.021934 -1.578765 おふぃす/オフィス かぶしき/株式 -0.021934 -1.578765 おふぃす/オフィス けんさく/検索 -0.021934 -1.502088 おふぃす/オフィス )/) -0.021934 -1.064796 おも/思 い/い -0.021934 -0.919339 おや/親 の/の -0.021934 -1.106299 および/および うぇすたん/ウェスタン -0.021934 -1.106299 および/及び ちぇすと/チェスト -0.021934 -1.404995 おりこん/オリコン うぃーくりーらんきんぐ/ウィークリーランキング -0.021934 -1.404995 おりこん/オリコン でいりー/デイリー -0.021934 -1.105508 おりじんきー/オリジンキー =/= -0.021934 -1.087210 おわ/終わ ら/ら -0.021934 -1.106299 おん/オン らいん/ライン -0.021934 -1.064796 おんがく/音楽 ・/・ -0.021934 -1.041595 おんせん/温泉 -0.021934 -1.220366 おんど/温度 が/が -0.021934 -1.144915 おんど/温度 を/を -0.021934 -0.927948 おんなのこ/女の子 に/に -0.021934 -0.956394 おーすとらりあ/オーストラリア を/を -0.021934 -1.877059 か/か えら/選 -0.021934 -1.873813 か/か かいしゃ/会社 -0.021934 -0.752213 か/か と/と -0.021934 -0.709831 か/か の/の -0.021934 -1.005486 か/化 し/し -0.021934 -1.106299 か/家 かろう/家老 -0.021934 -0.285585 か/日 に/に -0.021934 -1.326000 か/書 い/い -0.021934 -1.367813 か/書 く/く -0.021934 -1.403423 か/科 たい/隊 -0.021934 -1.403423 か/科 どうぶつ/動物 -0.021934 -1.106299 か/駆 お/逐 -0.021934 -1.072813 かい/会 」/」 -0.021934 -1.106299 かいきょう/海峡 および/および -0.021934 -1.308249 かいさい/開催 さ/さ -0.021934 -1.223217 かいさい/開催 し/し -0.021934 -1.404995 かいしゃ/会社 うつ/移 -0.021934 -1.101754 かいしゃ/会社 に/に -0.021934 -0.993525 かいしゅう/改修 、/、 -0.021934 -1.024974 かいどう/街道 と/と -0.021934 -0.927948 かいふく/回復 に/に -0.021934 -1.070795 かえ/変え て/て -0.021934 -1.087210 かかわ/かかわ ら/ら -0.021934 -1.087210 かかわ/関わ ら/ら -0.021934 -1.093529 かがく/科学 てき/的 -0.021934 -0.927948 かくち/各地 に/に -0.021934 -1.223217 かくとく/獲得 し/し -0.021934 -1.326000 かくとく/獲得 する/する -0.021934 -1.095656 かけ/かけ られ/られ -0.021934 -1.072813 かけ/懸け た/た -0.021934 -1.021365 かけい/家系 は/は -0.021934 -0.919339 かげ/影 の/の -0.021934 -0.956394 かさい/火災 を/を -0.021934 -1.102101 かず/数 おお/多 -0.021934 -1.106299 かせぎ/稼ぎ れおん/レオン -0.021934 -1.003757 かせつ/仮説 が/が -0.021934 -1.087210 かた/語 ら/ら -0.021934 -1.072813 かっ/かっ た/た -0.114249 -1.106299 かつて/かつて そんざい/存在 -0.021934 -1.005486 かつどう/活動 し/し -0.021934 -1.105508 かなか/かなか しゅつじょう/出場 -0.021934 -1.102101 かねず/かねず きけん/危険 -0.021934 -0.919339 かのう/可能 の/の -0.021934 -1.105508 かぶしき/株式 がいしゃ/会社 -0.021934 -1.106299 かみのうがね/上納金 ごうだつ/強奪 -0.021934 -1.091413 かめむし/カメムシ や/や -0.021934 -1.502770 から/から 、/、 -0.021934 -2.085732 から/から あいるらんど/アイルランド -0.021934 -2.085732 から/から かず/数 -0.021934 -2.078247 から/から しゅっぱん/出版 -0.021934 -2.085732 から/から しゅよう/主要 -0.021934 -2.078247 から/から しーずん/シーズン -0.021934 -2.085732 から/から ただちに/直ちに -0.021934 -2.085732 から/から とおざけ/遠ざけ -0.021934 -1.298180 から/から の/の -0.021934 -2.085732 から/から のび/伸び -0.021934 -1.021365 からき/唐木 は/は -0.021934 -1.088970 かれ/彼 の/の -0.021934 -1.367813 かれ/彼 ら/ら -0.021934 -0.927948 かれっじ/カレッジ に/に -0.021934 -1.041595 かろう/家老 -0.021934 -1.068786 かわ/変わ っ/っ -0.021934 -1.064796 かわいらし/可愛らし い/い -0.021934 -1.106299 かん/間 ろせん/路線 -0.021934 -1.078925 かん/館 )/) -0.021934 -1.337010 かんがえ/考え て/て -0.021934 -1.384074 かんがえ/考え られ/られ -0.021934 -1.106299 かんきょう/環境 ほぜん/保全 -0.021934 -1.404995 かんけい/関係 し/史 -0.021934 -1.144915 かんけい/関係 を/を -0.021934 -0.285585 かんこく/韓国 に/に -0.231635 -0.927948 かんさい/関西 に/に -0.021934 -0.956394 かんしょ/官所 を/を -0.021934 -0.956394 かんじゃ/患者 を/を -0.021934 -0.927948 かんたい/艦隊 に/に -0.021934 -1.005486 かんちがい/勘違い し/し -0.021934 -1.403423 かんとりー/カントリー すきー/スキー -0.021934 -1.326000 かんとりー/カントリー ・/・ -0.021934 -1.021365 かんめい/艦名 は/は -0.021934 -1.005486 かんりょう/完了 し/し -0.021934 -1.005486 かんれん/関連 し/し -0.021934 -0.961044 が/が 、/、 -0.021934 -2.276833 が/が 「/「 -0.021934 -1.251779 が/が あ/あ -0.387375 -2.629558 が/が あふりか/アフリカ -0.021934 -2.765501 が/が うかがえ/伺え -0.021934 -2.765501 が/が えいじゃっくす/エイジャックス -0.021934 -2.765501 が/が えんだん/縁談 -0.021934 -2.629558 が/が おお/多 -0.021934 -2.478003 が/が おこな/行 -0.021934 -2.765501 が/が おわ/終わ -0.021934 -2.736537 が/が かいさい/開催 -0.021934 -2.765501 が/が かのう/可能 -0.021934 -2.765501 が/が きょくたん/極端 -0.021934 -2.765501 が/が こうふく/降伏 -0.021934 -2.006141 が/が さ/さ -0.021934 -2.765501 が/が さるがばば/猿ヶ馬場 -0.021934 -2.736537 が/が ざざーぐ/ザザーグ -0.021934 -2.765501 が/が しまなか/島中 -0.021934 -2.765501 が/が しんけん/真剣 -0.021934 -2.765501 が/が しんしゅつ/進出 -0.021934 -2.765501 が/が しんりゃく/侵略 -0.021934 -2.765501 が/が せいかつ/生活 -0.021934 -2.765501 が/が せいび/整備 -0.021934 -2.765501 が/が せっち/設置 -0.021934 -2.765501 が/が せんとう/先頭 -0.021934 -2.572958 が/が たか/多賀 -0.021934 -2.765501 が/が つ/付 -0.021934 -2.736537 が/が つか/使 -0.021934 -2.736537 が/が つよ/強 -0.021934 -2.765501 が/が てばな/手放 -0.021934 -2.765501 が/が とうじょう/登場 -0.021934 -2.765501 が/が とくちょう/特徴 -0.021934 -2.765501 が/が とれんとん/トレントン -0.021934 -1.614949 が/が な/な -0.021934 -2.736537 が/が に/二 -0.021934 -2.765501 が/が にほん/日本 -0.021934 -2.765501 が/が は/張 -0.021934 -2.736537 が/が ふぁー/ファー -0.021934 -2.765501 が/が ふるい/ふるい -0.021934 -2.765501 が/が ふるく/古く -0.021934 -1.750593 が/が ぼっぱつ/勃発 -0.231635 -2.765501 が/が めだ/目立 -0.021934 -2.765501 が/が もたら/もたら -0.021934 -2.765501 が/が ゆうれい/ユウレイ -0.021934 -2.765501 が/が わずか/わずか -0.021934 -0.304119 がいこく/外国 じん/人 -0.021934 -1.284555 がいしゃ/会社 -0.021934 -1.344509 がいしゃ/会社 (/( -0.021934 -1.008965 がいちゅう/害虫 で/で -0.021934 -1.021365 がいひ/外皮 は/は -0.021934 -0.993525 がいよう/概要 、/、 -0.021934 -0.927948 がくえん/学園 に/に -0.021934 -0.919339 がくせい/学生 の/の -0.021934 -1.106299 がす/ガス おんど/温度 -0.021934 -0.993525 がっかい/学会 、/、 -0.021934 -1.402780 がっこう/学校 で/で -0.021934 -1.207543 がっこう/学校 の/の -0.021934 -1.698290 がっこう/学校 へ/へ -0.021934 -1.282649 がっこう/学校 を/を -0.021934 -0.809379 がつ/月 に/に -0.021934 -1.370313 がつ/月 の/の -0.021934 -1.992683 がつ/月 10/10 -0.021934 -1.997420 がつ/月 13/13 -0.021934 -1.914693 がつ/月 2/2 -0.021934 -0.905309 がつ/月 26/26 -0.231635 -1.064796 がまーる/ガマール ・/・ -0.021934 -0.919339 がめとさいと/ガメトサイト の/の -0.021934 -1.106299 がんつ/ガンツ ちーむ/チーム -0.021934 -0.927948 がんねん/元年 に/に -0.021934 -1.106299 がーでぃあん/ガーディアン たち/達 -0.021934 -1.203644 き/き 、/、 -0.021934 -1.340743 き/き た/た -0.021934 -1.068786 き/切 っ/っ -0.021934 -1.091413 きいろあざみうま/キイロアザミウマ や/や -0.021934 -1.403423 きかん/期間 ちゅう/中 -0.021934 -1.101754 きかん/期間 に/に -0.021934 -1.106299 きかん/機関 ほう/砲 -0.021934 -1.578765 きけん/危険 ぎょうむ/業務 -0.021934 -1.566420 きけん/危険 だ/だ -0.021934 -1.465613 きけん/危険 な/な -0.021934 -1.106299 きしゃ/記者 あにか/アニカ -0.021934 -0.919339 きじゅん/基準 の/の -0.021934 -1.095656 きせ/着せ られ/られ -0.021934 -1.024974 きそ/基礎 と/と -0.021934 -1.105508 きた/北 たいへい/太平 -0.021934 -0.927948 きち/基地 に/に -0.021934 -1.024974 きちょう/基調 と/と -0.021934 -1.102101 きつりん/吉林 しょう/省 -0.021934 -1.072813 きめ/決め た/た -0.021934 -1.220366 きゃらくたー/キャラクター が/が -0.021934 -1.403423 きゃらくたー/キャラクター にんき/人気 -0.021934 -1.106299 きゅうしゅう/九州 だいがく/大学 -0.021934 -0.956394 きょういく/教育 を/を -0.021934 -1.024974 きょういん/教員 と/と -0.021934 -1.003757 きょうえん/共演 が/が -0.021934 -0.927948 きょうかい/協会 に/に -0.021934 -0.956394 きょうみ/興味 を/を -0.021934 -1.106299 きょうわ/共和 こく/国 -0.021934 -1.041595 きょく/局 -0.021934 -0.927948 きょくたん/極端 に/に -0.021934 -1.005486 きょしゅ/挙手 し/し -0.021934 -1.106299 きり/切り けいしき/形式 -0.021934 -1.105508 きれ/きれ ず/ず -0.021934 -1.308249 きろく/記録 さ/さ -0.021934 -1.223217 きろく/記録 し/し -0.021934 -1.106299 きん/金 かせぎ/稼ぎ -0.021934 -1.093529 きんだい/近代 てき/的 -0.021934 -0.993525 きんむ/勤務 、/、 -0.021934 -1.179570 ぎいん/議員 に/に -0.021934 -1.164321 ぎいん/議員 の/の -0.021934 -1.496686 ぎいん/議員 も/も -0.021934 -1.102101 ぎかい/議会 ぎいん/議員 -0.021934 -1.106299 ぎむざ/ギムザ せんしょく/染色 -0.021934 -1.105508 ぎょうむ/業務 じゅうじ/従事 -0.021934 -0.956394 ぎょらい/魚雷 を/を -0.021934 -1.756393 く/く -0.021934 -2.070806 く/く おこな/行 -0.021934 -2.164499 く/く おも/思 -0.021934 -2.164499 く/く かわいらし/可愛らし -0.021934 -2.022339 く/く こと/こと -0.021934 -1.869319 く/く する/する -0.021934 -2.164499 く/く どくだん/独断 -0.021934 -1.047144 く/く な/な -0.021934 -1.077301 く/く ばあい/場合 -0.231635 -2.164499 く/く ふなこし/船越 -0.021934 -0.919339 く/区 の/の -0.021934 -1.064796 く/食 い/い -0.021934 -1.106299 くうはく/  こうち/高知 -0.021934 -1.097794 くさかげろう/クサカゲロウ など/など -0.021934 -1.003757 くせ/癖 が/が -0.021934 -1.106299 くにのみや/久邇宮 たかおう/多嘉王 -0.021934 -1.088970 くび/首 の/の -0.021934 -1.144915 くび/首 を/を -0.021934 -1.003757 くぶん/区分 が/が -0.021934 -1.072813 くみあわせ/組み合わせ た/た -0.021934 -1.005486 くりかえ/繰り返 し/し -0.021934 -1.041595 くる/くる -0.021934 -0.956394 くるせいど/クルセイド を/を -0.021934 -1.070795 くれ/くれ て/て -0.021934 -1.074841 くれない/紅 (/( -0.021934 -1.105508 くろす/クロス かんとりー/カントリー -0.021934 -1.106299 くん/勲 きょく/局 -0.021934 -1.064796 くんしょう/勲章 ・/・ -0.021934 -1.003757 ぐるー/グルー が/が -0.021934 -1.404995 ぐん/軍 たゆう/太夫 -0.021934 -1.101754 ぐん/軍 に/に -0.021934 -1.074841 ぐんぶ/軍部 (/( -0.021934 -1.228976 けい/計 で/で -0.021934 -1.404995 けい/計 35/35 -0.021934 -0.956394 けいけん/経験 を/を -0.021934 -1.008965 けいごうきん/軽合金 で/で -0.021934 -1.008965 けいしき/形式 で/で -0.021934 -1.106299 けいじ/刑事 やく/役 -0.021934 -1.003757 けいそう/係争 が/が -0.021934 -0.919339 けいたい/形態 の/の -0.021934 -1.105508 けいば/競馬 じょう/場 -0.021934 -1.106299 けいりょう/軽量 か/化 -0.021934 -1.106299 けっきゅう/血球 ない/内 -0.021934 -1.005486 けっこん/結婚 し/し -0.021934 -1.024974 けっせい/結成 と/と -0.021934 -1.106299 けつ/血 とまつ/塗抹 -0.021934 -0.956394 けつだん/決断 を/を -0.021934 -1.101754 けん/剣 に/に -0.021934 -1.088970 けん/剣 の/の -0.021934 -1.409434 けん/県 -0.021934 -1.578765 けん/県 りつ/立 -0.021934 -1.491351 けん/県 (/( -0.021934 -1.389996 けんきゅう/研究 が/が -0.021934 -1.394216 けんきゅう/研究 し/し -0.021934 -1.701395 けんきゅう/研究 りょういき/領域 -0.021934 -1.701395 けんきゅう/研究 71/71 -0.021934 -1.106299 けんさく/検索 さいと/サイト -0.021934 -0.927948 けんしゅつ/検出 に/に -0.021934 -1.106299 けんぞう/建造 ひよう/費用 -0.021934 -1.054978 けんとう/検討 さ/さ -0.021934 -1.106299 げいのう/芸能 じょうほう/情報 -0.021934 -1.102101 げっかん/月間 だりつ/打率 -0.021934 -1.102101 げつれい/月例 しょう/賞 -0.021934 -1.105508 げん/現 :/: -0.021934 -1.228976 げんいん/原因 で/で -0.021934 -1.255877 げんいん/原因 と/と -0.021934 -0.919339 げんえき/現役 の/の -0.021934 -1.224420 げんざい/現在 に/に -0.021934 -1.434160 げんざい/現在 は/は -0.021934 -1.698290 げんざい/現在 ふぁー/ファー -0.021934 -1.595576 げんざい/現在 も/も -0.021934 -1.021365 こ/子 は/は -0.021934 -1.024974 こう/公 と/と -0.021934 -0.927948 こうい/行為 に/に -0.021934 -1.024974 こうえん/公園 と/と -0.021934 -0.956394 こうし/講師 を/を -0.021934 -1.024974 こうしゃ/校舎 と/と -0.021934 -0.927948 こうせい/光成 に/に -0.021934 -1.054978 こうせい/構成 さ/さ -0.021934 -0.956394 こうぞう/構造 を/を -0.021934 -1.106299 こうち/高知 けいば/競馬 -0.021934 -1.404995 こうつう/交通 しすてむ/システム -0.021934 -1.404995 こうつう/交通 もう/網 -0.021934 -1.076878 こうでら/国府 も/も -0.021934 -1.106299 こうとう/高等 おんがく/音楽 -0.021934 -1.106299 こうふく/降伏 さんせい/賛成 -0.021934 -1.024974 こうめい/孝明 と/と -0.021934 -0.993525 こうりゃん/コウリャン 、/、 -0.021934 -1.099942 こうれい/高齢 しゃ/者 -0.021934 -1.070795 こえ/超え て/て -0.021934 -1.106299 こく/国 きつりん/吉林 -0.021934 -1.093529 こくさい/国際 てき/的 -0.021934 -1.106299 こくりつ/国立 こうとう/高等 -0.021934 -0.927948 こしゅう/湖州 に/に -0.021934 -1.079683 こと/こと が/が -0.021934 -1.539012 こと/こと に/に -0.021934 -1.518857 こと/こと の/の -0.021934 -1.805981 こと/こと は/は -0.021934 -2.236045 こと/こと はっぴょう/発表 -0.021934 -2.045988 こと/こと も/も -0.021934 -0.415049 こと/こと を/を -0.021934 -0.294333 こと/事 が/が -0.021934 -1.068786 ことな/異な っ/っ -0.021934 -1.021365 ことば/言葉 は/は -0.021934 -0.919339 こども/子供 の/の -0.021934 -1.638034 この/この こと/こと -0.021934 -1.701395 この/この たたかい/闘い -0.021934 -1.701395 この/この とき/とき -0.021934 -1.701395 この/この はいせん/敗戦 -0.021934 -1.099942 こふん/古墳 じだい/時代 -0.021934 -0.927948 こぼこ/こぼこ に/に -0.021934 -1.106299 こみっく/コミック まーけっと/マーケット -0.021934 -1.580871 これ/これ いがい/以外 -0.021934 -0.445155 これ/これ に/に -0.021934 -1.304600 ころ/頃 、/、 -0.021934 -1.530155 ころ/頃 から/から -0.021934 -1.578765 ころ/頃 はせがわ/長谷川 -0.021934 -1.021365 こんこーど/コンコード は/は -0.021934 -1.106299 こんてんつ/コンテンツ はいしん/配信 -0.021934 -1.105508 こんぴゅーた/コンピュータ きゃらくたー/キャラクター -0.021934 -0.956394 こーひー/コーヒー を/を -0.021934 -1.436366 ご/後 、/、 -0.021934 -1.872904 ご/後 しょうめん/正面 -0.021934 -1.274440 ご/後 に/に -0.021934 -1.255548 ご/後 の/の -0.021934 -1.518409 ご/後 は/は -0.021934 -1.872904 ご/後 らずふぁーど/ラズファード -0.021934 -0.604848 ごう/号 せい/生 -0.021934 -1.624679 ごう/号 )/) -0.021934 -1.703489 ごう/号 533/533 -0.021934 -1.021365 ごうだつ/強奪 は/は -0.021934 -1.005486 ごうりゅう/合流 し/し -0.021934 -0.927948 ごと/毎 に/に -0.021934 -0.927948 ごろ/ごろ に/に -0.021934 -1.417559 さ/さ せ/せ -0.021934 -0.070111 さ/さ れ/れ -0.670012 -0.919339 さい/歳 の/の -0.021934 -0.919339 さいあく/最悪 の/の -0.021934 -1.106299 さいえんてぃすと/サイエンティスト たいぷ/タイプ -0.021934 -1.005486 さいかい/再会 し/し -0.021934 -1.396683 さいしゅう/最終 せん/戦 -0.021934 -1.379952 さいしゅう/最終 てき/的 -0.021934 -0.927948 さいしょ/最初 に/に -0.021934 -1.106299 さいしょう/崔鍾 しょく/植 -0.021934 -0.919339 さいしん/最新 の/の -0.021934 -0.956394 さいと/サイト を/を -0.021934 -1.005486 さいよう/採用 し/し -0.021934 -1.255877 さくひん/作品 と/と -0.021934 -1.404995 さくひん/作品 よみ/読み -0.021934 -1.008965 さしず/指図 で/で -0.021934 -0.956394 さっかー/サッカー を/を -0.021934 -1.106299 さるがばば/猿ヶ馬場 とうげ/峠 -0.021934 -1.106299 さんか/参加 めんばー/メンバー -0.021934 -0.956394 さんず/サンズ を/を -0.021934 -0.927948 さんせい/賛成 に/に -0.021934 -1.106299 さんちょう/山頂 ふきん/付近 -0.021934 -1.072813 さんでー/サンデー 」/」 -0.021934 -1.106299 ざいにち/在日 べいぐん/米軍 -0.021934 -1.255877 ざざーぐ/ザザーグ と/と -0.021934 -1.249753 ざざーぐ/ザザーグ は/は -0.021934 -0.956394 ざる/ざる を/を -0.021934 -0.779243 し/し 、/、 -0.021934 -0.472137 し/し た/た -0.169098 -2.774518 し/し だい/大 -0.021934 -2.830230 し/し つつ/つつ -0.021934 -0.634470 し/し て/て -0.185074 -1.661337 し/し な/な -0.436321 -2.830230 し/し にんむ/任務 -0.021934 -2.819217 し/し はつ/初 -0.021934 -2.819217 し/し やく/約 -0.021934 -2.830230 し/し よろこ/喜 -0.021934 -2.774518 し/し 8/8 -0.021934 -1.041595 し/史 -0.021934 -1.021365 し/市 は/は -0.021934 -1.333309 し/知 っ/っ -0.231635 -1.367813 し/知 ら/ら -0.021934 -1.008965 しあい/試合 で/で -0.021934 -1.095656 しい/強い られ/られ -0.021934 -0.927948 しいき/市域 に/に -0.021934 -1.008965 しかい/司会 で/で -0.021934 -1.066787 しかけ/仕掛け る/る -0.021934 -1.436366 しかし/しかし 、/、 -0.021934 -1.872904 しかし/しかし しんかい/晋海 -0.021934 -1.803109 しかし/しかし その/その -0.021934 -1.868304 しかし/しかし ながら/ながら -0.021934 -1.872904 しかし/しかし なつば/夏場 -0.021934 -1.868304 しかし/しかし みちの/美智乃 -0.021934 -1.064796 しがん/志願 する/する -0.021934 -1.064796 しき/指揮 する/する -0.021934 -1.064796 しきゅう/支給 する/する -0.021934 -1.003757 しじ/指示 が/が -0.021934 -1.021365 しすてむ/システム は/は -0.021934 -1.404995 しぜん/自然 こうえん/公園 -0.021934 -1.375868 しぜん/自然 や/や -0.021934 -0.993525 しぞんと/シゾント 、/、 -0.021934 -1.106299 しっこう/執行 ゆうよ/猶予 -0.021934 -0.956394 しつ/室 を/を -0.021934 -0.285585 しつ/質 に/に -0.021934 -0.919339 してい/姉弟 の/の -0.021934 -1.054978 してい/指定 さ/さ -0.021934 -1.076878 しどう/指導 も/も -0.021934 -0.956394 しなりお/シナリオ を/を -0.021934 -0.919339 しはん/市販 の/の -0.021934 -0.919339 しひょう/指標 の/の -0.021934 -1.403423 しほう/司法 せいど/制度 -0.021934 -1.088970 しほう/司法 の/の -0.021934 -1.097794 しぼう/死亡 じょくん/叙勲 -0.021934 -0.919339 しまい/姉妹 の/の -0.021934 -1.106299 しまだ/島田 しんすけ/紳助 -0.021934 -1.008965 しまなか/島中 で/で -0.021934 -1.102101 しめ/示 す/す -0.021934 -1.423182 しゃ/社 、/、 -0.021934 -0.600646 しゃ/社 から/から -0.021934 -1.444737 しゃ/社 が/が -0.021934 -0.744193 しゃ/者 が/が -0.021934 -0.777916 しゃ/者 じょくん/叙勲 -0.231635 -1.387145 しゃ/者 に/に -0.021934 -1.370025 しゃ/者 の/の -0.021934 -0.956394 しゃかい/社会 を/を -0.021934 -1.068786 しゃべ/喋 っ/っ -0.021934 -1.106299 しゃりょう/車両 かさい/火災 -0.021934 -1.106299 しゃんはい/上海 どくしょう/独唱 -0.021934 -1.255877 しゅ/主 と/と -0.021934 -1.404995 しゅ/主 もり/森 -0.021934 -1.404995 しゅい/首位 だしゃ/打者 -0.021934 -1.144915 しゅい/首位 を/を -0.021934 -1.099942 しゅうかん/週刊 しょうねん/少年 -0.021934 -1.106299 しゅうじ/修二 めいぎ/名義 -0.021934 -1.003757 しゅうだん/集団 が/が -0.021934 -0.919339 しゅうちゃく/執着 の/の -0.021934 -1.024974 しゅうへい/州兵 と/と -0.021934 -0.927948 しゅうへん/周辺 に/に -0.021934 -1.021365 しゅうり/修理 は/は -0.021934 -1.388237 しゅうりょう/終了 ご/後 -0.021934 -1.223217 しゅうりょう/終了 し/し -0.021934 -1.003757 しゅぎ/主義 が/が -0.021934 -1.106299 しゅじん/主人 こう/公 -0.021934 -0.993525 しゅっこう/出航 、/、 -0.021934 -1.005486 しゅっぱつ/出発 し/し -0.021934 -1.308249 しゅっぱん/出版 さ/さ -0.021934 -1.392439 しゅっぱん/出版 しゃ/社 -0.021934 -1.223217 しゅつじょう/出場 し/し -0.021934 -1.403423 しゅつじょう/出場 でき/でき -0.021934 -1.064796 しゅよう/主要 な/な -0.021934 -1.106299 しゅりゅう/手榴 だん/弾 -0.021934 -1.041595 しゅヴぇーげりん/シュヴェーゲリン -0.021934 -1.404995 しょう/小 かんたい/艦隊 -0.021934 -1.392439 しょう/小 がっこう/学校 -0.021934 -1.578765 しょう/省 こしゅう/湖州 -0.021934 -1.179570 しょう/省 に/に -0.021934 -1.578765 しょう/省 りくじょう/陸上 -0.021934 -1.578765 しょう/賞 きん/金 -0.021934 -1.578765 しょう/賞 くん/勲 -0.021934 -1.336812 しょう/賞 で/で -0.021934 -1.064796 しょうかい/紹介 する/する -0.021934 -1.106299 しょうがく/小学 かん/館 -0.021934 -1.093529 しょうきょく/消極 てき/的 -0.021934 -1.041595 しょうじょ/少女 -0.021934 -1.021365 しょうせつ/小説 は/は -0.021934 -1.021365 しょうそく/消息 は/は -0.021934 -1.703489 しょうねん/少年 さんでー/サンデー -0.021934 -0.604848 しょうねん/少年 しほう/司法 -0.021934 -1.701075 しょうねん/少年 れい/令 -0.021934 -1.106299 しょうめん/正面 すたんど/スタンド -0.021934 -1.578765 しょうわ/昭和 17/17 -0.021934 -1.578765 しょうわ/昭和 31/31 -0.021934 -1.578765 しょうわ/昭和 62/62 -0.021934 -1.083048 しょく/植 「/「 -0.021934 -1.064796 しょく/食 する/する -0.021934 -1.003757 しょくいん/職印 が/が -0.021934 -1.091413 しょくばい/触媒 や/や -0.021934 -0.919339 しょけい/処刑 の/の -0.021934 -0.956394 しょっく/ショック を/を -0.021934 -1.308249 しよう/使用 さ/さ -0.021934 -1.223217 しよう/使用 し/し -0.021934 -0.956394 しらせ/報せ を/を -0.021934 -1.106299 しれい/司令 ぶ/部 -0.021934 -1.064796 しろ/白 い/い -0.021934 -0.927948 しろう/四郎 に/に -0.021934 -1.003757 しんかい/晋海 が/が -0.021934 -1.106299 しんき/新規 さんか/参加 -0.021934 -0.927948 しんけん/真剣 に/に -0.021934 -1.005486 しんしゅつ/進出 し/し -0.021934 -1.106299 しんじん/新人 おう/王 -0.021934 -1.024974 しんすけ/紳助 と/と -0.021934 -1.021365 しんだん/診断 は/は -0.021934 -1.005486 しんとう/浸透 し/し -0.021934 -1.005486 しんにゅう/侵入 し/し -0.021934 -1.005486 しんりゃく/侵略 し/し -0.021934 -1.093529 しんわ/神話 てき/的 -0.021934 -1.403423 しーずん/シーズン さいしゅう/最終 -0.021934 -1.404995 しーずん/シーズン つうさん/通算 -0.021934 -1.072813 じ/じ た/た -0.021934 -0.919339 じ/寺 の/の -0.021934 -1.106299 じ/時 57/57 -0.021934 -1.388237 じ/次 せかい/世界 -0.021934 -1.404995 じ/次 ちゅうとう/中東 -0.021934 -1.106299 じかん/時間 どらま/ドラマ -0.021934 -0.303636 じぎょう/事業 しゃ/者 -0.021934 -1.064796 じけつ/自決 する/する -0.021934 -1.105508 じしん/地震 けい/計 -0.021934 -0.506153 じだい/時代 の/の -0.021934 -1.589113 じだい/時代 ・/・ -0.021934 -1.064796 じっしょう/実証 する/する -0.021934 -1.008965 じてん/時点 で/で -0.021934 -0.956394 じぶん/自分 を/を -0.021934 -0.919339 じゅう/中 の/の -0.021934 -1.106299 じゅう/十 しろう/四郎 -0.021934 -1.064796 じゅうぐん/従軍 する/する -0.021934 -0.956394 じゅうげき/銃撃 を/を -0.021934 -1.105508 じゅうし/銃士 たい/隊 -0.021934 -0.303636 じゅうじ/従事 しゃ/者 -0.021934 -1.106299 じょ/序 れつ/列 -0.021934 -1.008965 じょう/上 で/で -0.021934 -1.582298 じょう/城 」/」 -0.021934 -1.698290 じょう/城 しゅ/主 -0.021934 -1.701395 じょう/城 せいちょう/政庁 -0.021934 -1.282649 じょう/城 を/を -0.021934 -1.203644 じょう/場 、/、 -0.021934 -1.228976 じょう/場 で/で -0.021934 -1.054978 じょうえん/上演 さ/さ -0.021934 -1.005486 じょうしょう/上昇 し/し -0.021934 -0.956394 じょうほう/情報 を/を -0.021934 -0.615019 じょくん/叙勲 、/、 -0.021934 -1.301395 じょくん/叙勲 の/の -0.021934 -1.528968 じょくん/叙勲 は/は -0.021934 -1.106299 じょし/女子 がくせい/学生 -0.021934 -0.927948 じょせい/女性 に/に -0.021934 -1.064796 じょなさん/ジョナサン ・/・ -0.021934 -1.553992 じん/人 じょくん/叙勲 -0.021934 -1.566420 じん/人 だ/だ -0.021934 -1.535993 じん/人 や/や -0.021934 -0.956394 じんせい/人生 を/を -0.021934 -1.008965 じんぶつ/人物 で/で -0.021934 -1.106299 じんみん/人民 きょうわ/共和 -0.021934 -1.576422 す/す こと/事 -0.021934 -1.578765 す/す しひょう/指標 -0.021934 -1.576422 す/す ひょうげん/表現 -0.021934 -1.106299 すいらい/水雷 てい/艇 -0.021934 -1.064796 すう/数 ねん/年 -0.021934 -0.993525 すえ/末 、/、 -0.021934 -1.064796 すき/好き な/な -0.021934 -1.404995 すきー/スキー しどう/指導 -0.021934 -1.101754 すきー/スキー に/に -0.021934 -0.919339 すこてぃあ/スコティア の/の -0.021934 -1.106299 すご/凄 まじ/まじ -0.021934 -0.927948 すたんど/スタンド に/に -0.021934 -1.076878 すぽーつ/スポーツ も/も -0.021934 -0.596759 する/する -0.862290 -2.068831 する/する 」/」 -0.021934 -2.266666 する/する か/か -0.021934 -2.203195 する/する から/から -0.021934 -1.720386 する/する が/が -0.021934 -2.341028 する/する ぎいん/議員 -0.021934 -2.203195 する/する こと/こと -0.021934 -2.396641 する/する こんてんつ/コンテンツ -0.021934 -2.396641 する/する ぜんこう/全校 -0.021934 -1.315261 する/する ため/ため -0.021934 -1.806008 する/する と/と -0.231635 -1.463859 する/する の/の -0.021934 -2.396641 する/する ひめはな/ヒメハナ -0.021934 -2.341028 する/する よう/よう -0.021934 -1.003757 するたん/スルタン が/が -0.021934 -1.365505 ず/ず 、/、 -0.021934 -1.701395 ず/ず つね/常 -0.021934 -1.701395 ず/ず ふみやす/文保 -0.021934 -1.698290 ず/ず 7/7 -0.021934 -1.486080 せ/せ た/た -0.021934 -1.480872 せ/せ て/て -0.021934 -1.470640 せ/せ る/る -0.021934 -1.105508 せい/制 れい/令 -0.021934 -1.106299 せい/性 ほしょく/捕食 -0.021934 -1.255877 せい/生 と/と -0.021934 -1.088970 せい/生 の/の -0.021934 -1.106299 せいかつ/生活 かんきょう/環境 -0.021934 -1.054978 せいこう/成功 さ/さ -0.021934 -1.106299 せいじ/政治 こうぞう/構造 -0.021934 -1.106299 せいせき/成績 ゆうしゅう/優秀 -0.021934 -0.919339 せいちょう/政庁 の/の -0.021934 -0.919339 せいと/生徒 の/の -0.021934 -0.284504 せいど/制度 の/の -0.021934 -0.300450 せいひん/製品 ・/・ -0.231635 -1.054978 せいび/整備 さ/さ -0.021934 -1.003757 せいふく/制服 が/が -0.021934 -0.927948 せいまご/世孫 に/に -0.021934 -0.927948 せいむ/政務 に/に -0.021934 -1.796008 せかい/世界 かくち/各地 -0.021934 -1.796008 せかい/世界 きじゅん/基準 -0.021934 -1.796008 せかい/世界 じゅう/中 -0.021934 -1.796008 せかい/世界 たいせん/大戦 -0.021934 -1.796008 せかい/世界 とっぷ/トップ -0.021934 -1.064796 せかんど/セカンド ・/・ -0.021934 -1.106299 せき/赤 けっきゅう/血球 -0.021934 -1.003757 せき/隻 が/が -0.021934 -1.054978 せっけい/設計 さ/さ -0.021934 -1.102101 せっこう/浙江 しょう/省 -0.021934 -1.054978 せっち/設置 さ/さ -0.021934 -1.101754 せつ/説 に/に -0.021934 -1.144915 せつ/説 を/を -0.021934 -1.005486 せつやく/節約 し/し -0.021934 -1.072813 せの/瀬乃 」/」 -0.021934 -1.087210 せま/迫 ら/ら -0.021934 -1.105508 せらー/セラー さくひん/作品 -0.021934 -1.255877 せるてぃっくす/セルティックス と/と -0.021934 -1.101754 せるてぃっくす/セルティックス に/に -0.021934 -1.475726 せん/戦 っ/っ -0.021934 -1.179570 せん/戦 に/に -0.021934 -1.576422 せん/戦 まで/まで -0.021934 -1.089306 せん/船 から/から -0.021934 -1.064796 せんきゅうひゃくきゅうじゅうきゅう/1999 ねん/年 -0.021934 -1.064796 せんきゅうひゃくきゅうじゅうはち/1998 ねん/年 -0.021934 -1.064796 せんきゅうひゃくはちじゅうなな/1987 ねん/年 -0.021934 -1.064796 せんきゅうひゃくはちじゅうはち/1988 ねん/年 -0.021934 -1.005486 せんし/戦死 し/し -0.021934 -0.956394 せんしゅ/選手 を/を -0.021934 -0.927948 せんしょく/染色 に/に -0.021934 -0.956394 せんす/センス を/を -0.021934 -1.325807 せんそう/戦争 が/が -0.021934 -1.336812 せんそう/戦争 で/で -0.021934 -1.179570 せんそう/戦争 に/に -0.021934 -1.021365 せんたい/船体 は/は -0.021934 -0.927948 せんとう/先頭 に/に -0.021934 -1.105508 せんとう/戦闘 しゅうりょう/終了 -0.021934 -0.919339 せんない/船内 の/の -0.021934 -1.064796 せんねん/専念 する/する -0.021934 -1.099942 せんもん/専門 がっこう/学校 -0.021934 -1.064796 せんれつ/鮮烈 な/な -0.021934 -1.576422 ぜん/全 さくひん/作品 -0.021934 -1.578765 ぜん/全 にっぽん/日本 -0.021934 -1.578765 ぜん/全 ひてい/否定 -0.021934 -1.003757 ぜんいん/全員 が/が -0.021934 -1.106299 ぜんこう/全校 せいと/生徒 -0.021934 -0.956394 そうこう/走行 を/を -0.021934 -1.106299 そうだ/操舵 しつ/室 -0.021934 -1.064796 そうだん/相談 な/な -0.021934 -1.064796 そうちゃく/装着 する/する -0.021934 -1.102101 そうは/争覇 せん/戦 -0.021934 -0.956394 そうび/装備 を/を -0.021934 -1.024974 そこく/祖国 と/と -0.021934 -0.993525 そして/そして 、/、 -0.021934 -1.106299 そだ/育 ち/ち -0.021934 -1.066787 そだて/育て る/る -0.021934 -1.041595 そつ/卒 -0.021934 -1.005486 そつぎょう/卒業 し/し -0.021934 -2.088112 その/その あと/後 -0.021934 -2.126918 その/その うえ/うえ -0.021934 -2.126918 その/その えいきょう/影響 -0.021934 -2.126918 その/その かけい/家系 -0.021934 -1.042265 その/その ころ/頃 -0.021934 -2.051266 その/その ご/後 -0.021934 -2.126918 その/その じてん/時点 -0.021934 -2.126918 その/その にが/苦 -0.021934 -2.126918 その/その ば/場 -0.021934 -2.126918 その/その ひ/日 -0.021934 -1.106299 そらも/空燃 ひ/比 -0.021934 -0.956394 そりゅーしょん/ソリューション を/を -0.021934 -0.919339 そるがむ/ソルガム の/の -0.021934 -1.101754 そるごー/ソルゴー に/に -0.021934 -1.344509 そるごー/ソルゴー (/( -0.021934 -1.105508 それ/それ まで/まで -0.021934 -1.005486 そんざい/存在 し/し -0.021934 -0.956394 ぞうちく/増築 を/を -0.021934 -0.757223 た/た -1.464349 -1.460680 た/た 、/、 -0.021934 -2.324983 た/た 「/「 -0.021934 -2.213737 た/た 」/」 -0.021934 -2.648762 た/た あと/後 -0.021934 -2.741900 た/た あめりか/アメリカ -0.021934 -2.766582 た/た うみず/海津 -0.021934 -1.736657 た/た えいせい/衛生 -0.021934 -2.766582 た/た えんげき/演劇 -0.021934 -1.452934 た/た が/が -0.436321 -2.648762 た/た きけん/危険 -0.021934 -2.648762 た/た けん/県 -0.021934 -2.741900 た/た げんいん/原因 -0.021934 -1.641883 た/た こと/こと -0.094149 -2.741900 た/た こと/事 -0.021934 -2.766582 た/た し/市 -0.021934 -2.766582 た/た せんしゅ/選手 -0.021934 -2.766582 た/た せんれつ/鮮烈 -0.021934 -2.648762 た/た ぜん/全 -0.021934 -2.766582 た/た たかくら/高倉 -0.021934 -1.669016 た/た ため/ため -0.290465 -1.495842 た/た と/と -0.436321 -2.766582 た/た ところ/ところ -0.021934 -1.319835 た/た の/の -0.149965 -2.648762 た/た ばあい/場合 -0.021934 -2.766582 た/た ふしん/不審 -0.021934 -2.766582 た/た ふたり/2人 -0.021934 -2.766582 た/た ほうこく/報告 -0.021934 -2.766582 た/た まいける/マイケル -0.021934 -2.766582 た/た まーくるんど/マークルンド -0.021934 -2.598359 た/た もの/もの -0.021934 -2.766582 た/た ろんぶん/論文 -0.021934 -1.648536 た/た (/( -0.021934 -1.095656 た/立 つ/つ -0.021934 -1.005486 たい/対 し/し -0.436321 -1.404995 たい/隊 いん/員 -0.021934 -1.396683 たい/隊 ちょう/長 -0.021934 -0.919339 たいい/大尉 の/の -0.021934 -1.064796 たいえき/退役 する/する -0.021934 -1.089306 たいき/待機 から/から -0.021934 -1.064796 たいくつ/退屈 な/な -0.021934 -1.003757 たいせん/大戦 が/が -0.021934 -0.919339 たいぷ/タイプ の/の -0.021934 -0.304187 たいへい/太平 よう/洋 -0.021934 -1.072813 たえ/絶え た/た -0.021934 -1.703609 たか/多賀 こうでら/国府 -0.021934 -0.553054 たか/多賀 じょう/城 -0.021934 -1.024974 たかおう/多嘉王 と/と -0.021934 -1.106299 たかくら/高倉 としあき/敏明 -0.021934 -1.099942 たかさか/高坂 えき/駅 -0.021934 -1.074841 たかはし/高橋 (/( -0.021934 -1.404995 たがい/互い しゃべ/喋 -0.021934 -1.088970 たがい/互い の/の -0.021934 -1.105508 たけ/嶽 しぜん/自然 -0.021934 -1.099942 たたか/戦 う/う -0.021934 -1.003757 たたかい/闘い が/が -0.021934 -0.993525 ただし/ただし 、/、 -0.021934 -1.106299 ただちに/直ちに じけつ/自決 -0.021934 -1.024974 たち/達 と/と -0.021934 -0.993525 たちあげ/立ち上げ 、/、 -0.021934 -1.008965 たつじん/達人 で/で -0.021934 -1.095656 たて/立て られ/られ -0.021934 -0.927948 たて/縦 に/に -0.021934 -1.066787 たとえ/喩え る/る -0.021934 -1.106299 たの/頼 ま/ま -0.021934 -0.956394 たび/旅 を/を -0.021934 -1.539149 ため/ため 、/、 -0.021934 -1.877391 ため/ため たいえき/退役 -0.021934 -0.420196 ため/ため に/に -0.021934 -0.919339 たゆう/太夫 の/の -0.021934 -1.106299 たんじょう/誕生 び/日 -0.021934 -1.105508 たんぱく/タンパク しつ/質 -0.021934 -1.041595 たんぱく/淡白 -0.021934 -1.008965 たんれい/端麗 で/で -0.021934 -1.488566 だ/だ -0.021934 -1.389996 だ/だ が/が -0.021934 -1.698290 だ/だ とき/時 -0.021934 -1.207543 だ/だ の/の -0.021934 -1.102101 だ/出 あふりか/アフリカ -0.021934 -1.404995 だい/代 かんしょ/官所 -0.021934 -1.404995 だい/代 とうしゅ/当主 -0.021934 -1.578765 だい/大 そつ/卒 -0.021934 -1.578765 だい/大 の/野 -0.021934 -1.578765 だい/大 ひっと/ヒット -0.021934 -0.728707 だい/第 に/二 -0.149965 -1.875095 だい/第 18/18 -0.021934 -1.806149 だい/第 2/2 -0.021934 -1.854763 だい/第 6/6 -0.021934 -1.064796 だいかん/代官 ・/・ -0.021934 -1.105508 だいがく/大学 ほうせい/法政 -0.021934 -1.008965 だいしょうすけ/大賞典 で/で -0.021934 -1.054978 だいひょう/代表 さ/さ -0.021934 -1.106299 だいよう/代用 きょういん/教員 -0.021934 -0.956394 だしゃ/打者 を/を -0.021934 -0.423502 だっ/だっ た/た -0.436321 -1.005486 だっしゅつ/脱出 し/し -0.021934 -1.064796 だぶる/ダブル ・/・ -0.021934 -1.419681 だりつ/打率 は/は -0.021934 -0.479399 だりつ/打率 ./. -0.021934 -1.095656 だれ/誰 か/か -0.021934 -0.956394 だん/弾 を/を -0.021934 -1.106299 だんせい/弾性 は/波 -0.021934 -0.993525 ち/ち 、/、 -0.021934 -1.106299 ちいき/地域 しゃかい/社会 -0.021934 -1.106299 ちぇすと/チェスト ばすたー/バスター -0.021934 -1.064796 ちか/近 い/い -0.021934 -1.003757 ちから/力 が/が -0.021934 -1.091413 ちぎょう/知行 2/2 -0.021934 -1.106299 ちぐさ/千草 しまい/姉妹 -0.021934 -1.008965 ちちおや/父親 で/で -0.021934 -1.284555 ちゃく/着 -0.021934 -1.255877 ちゃく/着 と/と -0.021934 -1.008965 ちゃーと/チャート で/で -0.021934 -1.101754 ちゅう/中 に/に -0.021934 -1.088970 ちゅう/中 の/の -0.021934 -1.106299 ちゅうか/中華 じんみん/人民 -0.021934 -1.105508 ちゅうしゃ/駐車 じょう/場 -0.021934 -1.106299 ちゅうだん/中団 たいき/待機 -0.021934 -1.102101 ちゅうとう/中東 せんそう/戦争 -0.021934 -1.486080 ちょう/長 」/」 -0.021934 -1.576422 ちょう/長 きかん/期間 -0.021934 -1.560162 ちょう/長 じだい/時代 -0.021934 -1.064796 ちょうさ/調査 ・/・ -0.021934 -0.956394 ちょうし/調子 を/を -0.021934 -1.099942 ちょうせん/朝鮮 しょうねん/少年 -0.021934 -0.956394 ちようこ/蝶子 を/を -0.021934 -1.102101 ちんたい/賃貸 おふぃす/オフィス -0.021934 -0.919339 ちーむ/チーム の/の -0.021934 -0.275136 っ/っ た/た -0.255199 -0.533578 っ/っ て/て -0.094418 -0.753461 つ/つ -0.231635 -1.698976 つ/つ い/い -0.436321 -1.824357 つ/つ か/か -0.021934 -1.568298 つ/つ と/と -0.021934 -1.309026 つ/つ の/の -0.021934 -1.054978 つ/付 さ/さ -0.021934 -1.064796 つ/就 い/い -0.021934 -1.008965 つうさん/通算 で/で -0.021934 -1.105508 つうしん/通信 じぎょう/事業 -0.021934 -1.088970 つうじょう/通常 の/の -0.021934 -1.249753 つうじょう/通常 は/は -0.021934 -1.404995 つか/使 え/え -0.021934 -1.392439 つか/使 わ/わ -0.021934 -1.072813 つかい/つかい 」/」 -0.021934 -1.066787 つかえ/使え る/る -0.021934 -1.099942 つきあ/付き合 う/う -0.021934 -1.070795 つけ/着け て/て -0.021934 -0.993525 つつ/つつ 、/、 -0.021934 -1.064796 つづ/続 い/い -0.021934 -1.066787 つづけ/続け る/る -0.021934 -1.340743 つとめ/務め た/た -0.021934 -1.337010 つとめ/務め て/て -0.021934 -0.927948 つね/常 に/に -0.021934 -0.302509 つよ/強 く/く -0.021934 -1.108134 て/て 、/、 -0.021934 -0.782355 て/て い/い -0.709408 -2.738226 て/て いき/生き -0.021934 -2.738226 て/て いんよう/飲用 -0.021934 -1.372982 て/て お/お -0.804298 -2.738226 て/て おんなのこ/女の子 -0.021934 -2.714724 て/て き/き -0.021934 -2.738226 て/て ぎょらい/魚雷 -0.021934 -2.738226 て/て くる/くる -0.021934 -2.738226 て/て くれ/くれ -0.021934 -2.738226 て/て けんぞう/建造 -0.021934 -2.625505 て/て げんざい/現在 -0.021934 -2.738226 て/て こうせい/構成 -0.021934 -2.714724 て/て し/知 -0.021934 -2.738226 て/て しゅっこう/出航 -0.021934 -2.738226 て/て しんとう/浸透 -0.021934 -2.457128 て/て その/その -0.021934 -2.738226 て/て たたか/戦 -0.021934 -2.738226 て/て たて/立て -0.021934 -2.738226 て/て だいよう/代用 -0.021934 -2.738226 て/て だっしゅつ/脱出 -0.021934 -2.714724 て/て つか/使 -0.021934 -2.738226 て/て とうげん/桃源 -0.021934 -2.738226 て/て とうろく/登録 -0.021934 -2.738226 て/て どうろ/道路 -0.021934 -2.129800 て/て な/な -0.021934 -1.497620 て/て は/は -0.436321 -2.738226 て/て ひ/妃 -0.021934 -2.738226 て/て ふさわし/ふさわし -0.021934 -2.738226 て/て みの/美濃 -0.021934 -1.625915 て/て も/も -0.021934 -2.738226 て/て やよい/弥生 -0.021934 -2.738226 て/て やん/やん -0.231635 -0.956394 て/手 を/を -0.021934 -1.097794 てい/艇 3/3 -0.021934 -1.005486 ていきょう/提供 し/し -0.021934 -1.106299 ていど/程度 うごか/動か -0.021934 -1.910802 てき/的 けんきゅう/研究 -0.021934 -1.587399 てき/的 で/で -0.021934 -0.780562 てき/的 な/な -0.021934 -0.766433 てき/的 に/に -0.021934 -1.005486 てばな/手放 し/し -0.021934 -1.070795 てれ/照れ て/て -0.021934 -0.919339 てんし/天使 の/の -0.021934 -1.105508 てんしよう/天正 10/10 -0.021934 -1.106299 てんのう/天皇 はい/杯 -0.021934 -1.452291 で/で 、/、 -0.021934 -2.328387 で/で 「/「 -0.021934 -0.745125 で/で あ/あ -0.513729 -2.742442 で/で あいて/相手 -0.021934 -2.150558 で/で い/い -0.021934 -2.507099 で/で おこな/行 -0.021934 -2.742442 で/で かいふく/回復 -0.021934 -2.742442 で/で かつどう/活動 -0.021934 -2.742442 で/で からき/唐木 -0.021934 -2.742442 で/で きめ/決め -0.021934 -2.720076 で/で きろく/記録 -0.021934 -2.742442 で/で けいじ/刑事 -0.021934 -2.742442 で/で けいりょう/軽量 -0.021934 -2.742442 で/で こうし/講師 -0.021934 -2.742442 で/で しなりお/シナリオ -0.021934 -2.720076 で/で しよう/使用 -0.021934 -2.742442 で/で じょうえん/上演 -0.021934 -2.742442 で/で じょせい/女性 -0.021934 -2.742442 で/で せいせき/成績 -0.021934 -2.742442 で/で せんし/戦死 -0.021934 -2.742442 で/で そだ/育 -0.021934 -2.634673 で/で だりつ/打率 -0.021934 -2.720076 で/で どうぶつ/動物 -0.021934 -1.522378 で/で の/の -0.021934 -0.820511 で/で は/は -0.060564 -2.720076 で/で はいき/排気 -0.021934 -2.720076 で/で はつ/初 -0.021934 -2.742442 で/で ほくと/ホクト -0.021934 -2.742442 で/で ゆうしょう/優勝 -0.021934 -2.742442 で/で わしんとん/ワシントン -0.021934 -2.634673 で/で 4/4 -0.021934 -2.587859 で/で 9/9 -0.021934 -1.106299 でいりー/デイリー らんきんぐ/ランキング -0.021934 -1.326000 でき/でき な/な -0.021934 -1.329639 でき/でき る/る -0.021934 -1.041595 です/です -0.021934 -1.106299 でんげき/電撃 おん/オン -0.021934 -1.003757 でんれい/伝令 が/が -0.021934 -1.463591 と/と 、/、 -0.021934 -2.734837 と/と あかね/茜 -0.021934 -2.734837 と/と あわー/アワー -0.021934 -1.556592 と/と い/い -0.804298 -1.686373 と/と い/言 -0.436321 -2.734837 と/と いち/一 -0.021934 -2.734837 と/と いっしょ/一緒 -0.021934 -2.734837 と/と おおしま/大島 -0.021934 -2.734837 と/と かんちがい/勘違い -0.021934 -2.734837 と/と き/切 -0.021934 -2.734837 と/と けっこん/結婚 -0.021934 -2.112637 と/と さ/さ -0.021934 -2.734837 と/と さいかい/再会 -0.021934 -0.620911 と/と し/し -0.772113 -2.734837 と/と すこてぃあ/スコティア -0.021934 -2.184594 と/と する/する -0.021934 -2.734837 と/と せいむ/政務 -0.021934 -2.734837 と/と せんす/センス -0.021934 -2.734837 と/と そこく/祖国 -0.021934 -2.715158 と/と そるごー/ソルゴー -0.021934 -2.734837 と/と つきあ/付き合 -0.021934 -2.734837 と/と と/問 -0.021934 -0.886725 と/と な/な -0.425969 -1.568061 と/と の/の -0.021934 -2.715158 と/と はつね/初音 -0.021934 -2.290413 と/と も/も -0.021934 -1.099942 と/問 わ/わ -0.021934 -1.102101 とうきょう/とうきょう おふぃす/オフィス -0.021934 -1.396683 とうきょう/東京 おふぃす/オフィス -0.021934 -1.404995 とうきょう/東京 くるせいど/クルセイド -0.021934 -0.956394 とうげ/峠 を/を -0.021934 -1.099942 とうげん/桃源 しゃ/社 -0.021934 -0.956394 とうさつ/盗撮 を/を -0.021934 -1.106299 とうしゅ/当主 もうり/毛利 -0.021934 -1.371822 とうじ/当時 から/から -0.021934 -1.088970 とうじ/当時 の/の -0.021934 -1.041595 とうじょう/登場 -0.021934 -1.005486 とうちゃく/到着 し/し -0.021934 -1.078925 とうなーけん/とうなーけん )/) -0.021934 -1.008965 とうひょう/投票 で/で -0.021934 -1.005486 とうろく/登録 し/し -0.021934 -1.106299 とおざけ/遠ざけ かねず/かねず -0.021934 -0.927948 とき/とき に/に -0.021934 -0.285585 とき/時 に/に -0.021934 -1.008965 とくちょう/特徴 で/で -0.021934 -1.102101 とくに/とくに 8/8 -0.021934 -0.993525 ところ/ところ 、/、 -0.021934 -1.106299 とし/都市 かん/間 -0.021934 -1.083048 としあき/敏明 「/「 -0.021934 -1.105508 としょ/図書 しゅっぱん/出版 -0.021934 -1.106299 とっぷ/トップ 50/50 -0.021934 -0.993525 とつぜん/突然 、/、 -0.021934 -1.095656 ととのえ/整え られ/られ -0.021934 -1.070795 となえ/唱え て/て -0.021934 -1.106299 とまつ/塗抹 ぎむざ/ギムザ -0.021934 -0.927948 とも/とも に/に -0.021934 -0.919339 ともこ/智子 の/の -0.021934 -1.106299 とよみ/豊見 おや/親 -0.021934 -0.927948 とりしらべ/取り調べ に/に -0.021934 -1.024974 とりにだーど/トリニダード と/と -0.021934 -1.005486 とりもど/取り戻 し/し -0.021934 -1.106299 とりわけ/取り分け おおきな/大きな -0.021934 -1.008965 とれんとん/トレントン で/で -0.021934 -0.993525 とろふぉぞいと/トロフォゾイト 、/、 -0.021934 -1.003757 とんぼ/とんぼ が/が -0.021934 -0.927948 ど/度 に/に -0.021934 -1.105508 どいつ/ドイツ じん/人 -0.021934 -1.005486 どういん/動員 し/し -0.021934 -1.106299 どうちゅう/道中 ちゅうだん/中団 -0.021934 -1.220366 どうぶつ/動物 が/が -0.021934 -1.404995 どうぶつ/動物 びょういん/病院 -0.021934 -0.993525 どうろ/道路 、/、 -0.021934 -1.106299 どくしょう/独唱 かい/会 -0.021934 -1.008965 どくだん/独断 で/で -0.021934 -0.919339 どちゃく/土着 の/の -0.021934 -1.008965 どらま/ドラマ で/で -0.021934 -0.927948 どれん/ドレン に/に -0.021934 -1.105508 どーぱんと/ドーパント ふく/含 -0.021934 -0.944672 な/な い/い -0.060564 -2.523595 な/な いしょう/衣装 -0.021934 -2.523595 な/な うえ/上 -0.021934 -2.523595 な/な えいぞう/映像 -0.021934 -2.523595 な/な えぴそーど/エピソード -0.021934 -2.523595 な/な おにごっこ/鬼ごっこ -0.021934 -2.523595 な/な かいどう/街道 -0.021934 -1.134686 な/な かっ/かっ -0.561260 -2.523595 な/な かなか/かなか -0.021934 -2.253366 な/な く/く -0.021934 -1.990929 な/な さ/さ -0.021934 -2.415290 な/な しょうねん/少年 -0.021934 -2.523595 な/な たび/旅 -0.021934 -1.401024 な/な っ/っ -0.488735 -2.523595 な/な べすと/ベスト -0.021934 -2.415290 な/な もの/もの -0.021934 -1.401199 な/な り/り -0.436321 -1.397870 な/な る/る -0.021934 -0.919339 ない/内 の/の -0.021934 -1.106299 ないかく/内閣 ふ/府 -0.021934 -1.097794 ないそう/内装 など/など -0.021934 -1.106299 なおひろ/直弘 りゅうじ/龍治 -0.021934 -0.993525 なか/中 、/、 -0.021934 -1.106299 なかの/中野 です/です -0.021934 -1.003757 ながよし/長可 が/が -0.021934 -1.203644 ながら/ながら 、/、 -0.021934 -1.404995 ながら/ながら ものがたり/物語 -0.021934 -1.255877 なす/ナス と/と -0.021934 -1.088970 なす/ナス の/の -0.021934 -0.927948 なつば/夏場 に/に -0.021934 -1.456925 など/など 、/、 -0.021934 -1.481677 など/など が/が -0.021934 -1.314595 など/など に/に -0.021934 -0.632118 など/など の/の -0.021934 -1.106299 なな/七 ふしぎ/不思議 -0.021934 -1.249753 なまえ/名前 は/は -0.021934 -1.144915 なまえ/名前 を/を -0.021934 -1.087210 なん/何 ら/ら -0.021934 -1.105508 なんて/なんて かんがえ/考え -0.021934 -1.008965 なんぶ/南部 で/で -0.021934 -1.099942 なんぼくちょう/南北朝 じだい/時代 -0.021934 -0.927948 なーせる/ナーセル に/に -0.021934 -1.730864 に/に 、/、 -0.021934 -1.881491 に/に 「/「 -0.021934 -2.014295 に/に あ/あ -0.021934 -3.006406 に/に あた/あた -0.021934 -3.006406 に/に あつま/集ま -0.021934 -3.006406 に/に い/行 -0.021934 -3.006406 に/に いじゅう/移住 -0.021934 -3.006406 に/に いた/至 -0.021934 -2.050163 に/に いち/位置 -0.231635 -2.806334 に/に お/お -0.021934 -3.006406 に/に おおいた/大分 -0.021934 -3.006406 に/に おけ/おけ -0.231635 -2.609447 に/に おこな/行 -0.021934 -3.006406 に/に かけ/かけ -0.021934 -3.006406 に/に かつて/かつて -0.021934 -3.006406 に/に かわ/変わ -0.021934 -3.006406 に/に かんりょう/完了 -0.021934 -3.006406 に/に かんれん/関連 -0.021934 -3.006406 に/に きた/北 -0.021934 -3.006406 に/に きょうみ/興味 -0.021934 -3.006406 に/に きんむ/勤務 -0.021934 -3.006406 に/に くにのみや/久邇宮 -0.021934 -2.961162 に/に くび/首 -0.021934 -3.006406 に/に ごうりゅう/合流 -0.021934 -3.006406 に/に さんちょう/山頂 -0.021934 -1.595487 に/に し/し -0.149965 -3.006406 に/に しがん/志願 -0.021934 -3.006406 に/に してい/指定 -0.021934 -3.006406 に/に しはん/市販 -0.021934 -2.961162 に/に しゅつじょう/出場 -0.021934 -3.006406 に/に しょうきょく/消極 -0.021934 -3.006406 に/に じゅうぐん/従軍 -0.021934 -3.006406 に/に じょうしょう/上昇 -0.021934 -3.006406 に/に すぽーつ/スポーツ -0.021934 -3.006406 に/に せいこう/成功 -0.021934 -2.961162 に/に せいひん/製品 -0.021934 -3.006406 に/に せんねん/専念 -0.021934 -2.806334 に/に ぜん/全 -0.021934 -3.006406 に/に た/立 -0.021934 -2.005545 に/に たい/対 -0.436321 -2.961162 に/に たいへい/太平 -0.021934 -3.006406 に/に たとえ/喩え -0.021934 -3.006406 に/に たの/頼 -0.021934 -3.006406 に/に だいひょう/代表 -0.021934 -1.945172 に/に つ/つ -0.436321 -3.006406 に/に つ/就 -0.021934 -3.006406 に/に つけ/着け -0.021934 -3.006406 に/に てんのう/天皇 -0.021934 -2.961162 に/に とうきょう/東京 -0.021934 -3.006406 に/に とりわけ/取り分け -0.021934 -1.800654 に/に な/な -0.021934 -3.006406 に/に にゅうせん/入選 -0.021934 -1.040626 に/に は/は -0.021934 -3.006406 に/に はい/入 -0.021934 -3.006406 に/に はいぞく/配属 -0.021934 -3.006406 に/に はいふ/配布 -0.021934 -3.006406 に/に はいぼく/敗北 -0.021934 -3.006406 に/に はくい/白衣 -0.021934 -3.006406 に/に はんぱつ/反発 -0.021934 -2.961162 に/に ひと/ヒト -0.021934 -3.006406 に/に ふ/振 -0.021934 -3.006406 に/に ぶんげい/文芸 -0.021934 -3.006406 に/に へんじ/返事 -0.021934 -3.006406 に/に ほうしゅつ/放出 -0.021934 -3.006406 に/に ほんのう/本能 -0.021934 -3.006406 に/に ぼうだん/防弾 -0.021934 -2.961162 に/に みちの/美智乃 -0.021934 -3.006406 に/に みりょう/魅了 -0.021934 -3.006406 に/に むか/向か -0.021934 -2.961162 に/に むけ/向け -0.021934 -3.006406 に/に め/目 -0.021934 -1.506859 に/に も/も -0.021934 -3.006406 に/に やっと/やっと -0.021934 -1.156080 に/に よ/よ -0.364414 -2.055469 に/に よびだ/呼び出 -0.231635 -3.006406 に/に らんくいん/ランクイン -0.021934 -3.006406 に/に らーる/ラール -0.021934 -2.050163 に/に りま/りま -0.021934 -3.006406 に/に わた/亘 -0.021934 -3.006406 に/に わたり/渡り -0.021934 -1.560162 に/二 い/位 -0.021934 -1.560162 に/二 ごう/号 -0.021934 -1.578765 に/二 じ/次 -0.021934 -1.064796 にが/苦 い/い -0.021934 -0.993525 にく/肉 、/、 -0.021934 -1.106299 にしよどがわ/西淀川 く/区 -0.021934 -1.064796 にせんご/2005 ねん/年 -0.021934 -1.064796 にせんじゅういち/2011 ねん/年 -0.021934 -1.064796 にせんじゅうに/2012 ねん/年 -0.021934 -1.064796 にせんなな/2007 ねん/年 -0.021934 -1.530155 にち/日 から/から -0.021934 -1.578765 にち/日 くうはく/  -0.021934 -1.164321 にち/日 の/の -0.021934 -1.102101 にちろ/日露 せんそう/戦争 -0.021934 -1.106299 にっぽん/日本 しんじん/新人 -0.021934 -1.106299 にほん/日本 さっかー/サッカー -0.021934 -1.041595 にゅうせん/入選 -0.021934 -0.443164 にん/人 の/の -0.021934 -1.311904 にん/人 を/を -0.021934 -1.404995 にんき/人気 とうひょう/投票 -0.021934 -1.375868 にんき/人気 2/2 -0.021934 -1.054978 にんてい/認定 さ/さ -0.021934 -0.927948 にんむ/任務 に/に -0.021934 -1.106299 ねっと/ネット じょう/上 -0.021934 -1.727864 ねん/年 、/、 -0.021934 -2.366683 ねん/年 げんざい/現在 -0.021934 -2.318373 ねん/年 ご/後 -0.021934 -2.419047 ねん/年 せい/制 -0.021934 -0.913444 ねん/年 に/に -0.021934 -2.408728 ねん/年 まえ/前 -0.021934 -0.998667 ねん/年 (/( -0.231635 -0.719625 ねん/年 )/) -0.301030 -2.318373 ねん/年 3/3 -0.021934 -2.366683 ねん/年 6/6 -0.021934 -2.341857 ねん/年 9/9 -0.021934 -2.290089 の/の 「/「 -0.021934 -2.977360 の/の あ/ア -0.021934 -2.977360 の/の あいだ/間 -0.021934 -2.977360 の/の あこがれ/憧れ -0.021934 -2.977360 の/の あさ/朝 -0.021934 -2.071502 の/の い/い -0.021934 -2.977360 の/の いぇーがん/イェーガン -0.021934 -2.924985 の/の いち/位置 -0.021934 -2.977360 の/の いっしゅ/一種 -0.021934 -2.977360 の/の いのち/命 -0.021934 -2.977360 の/の いみ/意味 -0.021934 -2.924985 の/の いりょう/医療 -0.021934 -2.977360 の/の いんちょう/院長 -0.021934 -2.977360 の/の いんなー/インナー -0.021934 -2.977360 の/の うち/うち -0.021934 -2.668400 の/の えき/駅 -0.021934 -2.977360 の/の えきがく/疫学 -0.021934 -2.977360 の/の おそく/遅く -0.021934 -2.538909 の/の か/か -0.021934 -2.924985 の/の かれ/彼 -0.021934 -2.924985 の/の かんけい/関係 -0.021934 -2.924985 の/の かんとりー/カントリー -0.021934 -2.977360 の/の がいちゅう/害虫 -0.021934 -2.977360 の/の がいひ/外皮 -0.021934 -2.977360 の/の がいよう/概要 -0.021934 -2.977360 の/の きそ/基礎 -0.021934 -2.977360 の/の きょういく/教育 -0.021934 -2.977360 の/の きょうえん/共演 -0.021934 -2.977360 の/の きょしゅ/挙手 -0.021934 -2.924985 の/の くび/首 -0.021934 -2.977360 の/の くぶん/区分 -0.021934 -2.977360 の/の けんしゅつ/検出 -0.021934 -2.977360 の/の げいのう/芸能 -0.021934 -2.977360 の/の げっかん/月間 -0.021934 -2.977360 の/の げつれい/月例 -0.021934 -2.924985 の/の げんいん/原因 -0.021934 -2.977360 の/の こ/子 -0.021934 -2.977360 の/の こうい/行為 -0.021934 -2.977360 の/の こうしゃ/校舎 -0.021934 -2.977360 の/の ことな/異な -0.021934 -2.924985 の/の ころ/頃 -0.021934 -2.977360 の/の こんぴゅーた/コンピュータ -0.021934 -2.977360 の/の さしず/指図 -0.021934 -2.977360 の/の しかい/司会 -0.021934 -2.924985 の/の しぜん/自然 -0.021934 -2.977360 の/の しぞんと/シゾント -0.021934 -2.924985 の/の しつ/質 -0.021934 -2.924985 の/の しゅい/首位 -0.021934 -2.977360 の/の しゅうだん/集団 -0.021934 -2.977360 の/の しゅうちゃく/執着 -0.021934 -2.977360 の/の しゅうへい/州兵 -0.021934 -2.977360 の/の しょうじょ/少女 -0.021934 -2.977360 の/の しょうそく/消息 -0.021934 -2.977360 の/の しょくいん/職印 -0.021934 -2.977360 の/の しんき/新規 -0.021934 -2.977360 の/の じしん/地震 -0.021934 -2.977360 の/の じゅうげき/銃撃 -0.021934 -2.977360 の/の じょなさん/ジョナサン -0.021934 -2.977360 の/の じんせい/人生 -0.021934 -2.977360 の/の すいらい/水雷 -0.021934 -2.977360 の/の すえ/末 -0.021934 -2.977360 の/の せいじ/政治 -0.021934 -2.924985 の/の せいひん/製品 -0.021934 -2.977360 の/の せんもん/専門 -0.021934 -2.977360 の/の そうだん/相談 -0.021934 -2.486250 の/の その/その -0.021934 -2.668400 の/の たか/多賀 -0.021934 -2.977360 の/の たつじん/達人 -0.021934 -2.977360 の/の たんじょう/誕生 -0.021934 -2.598846 の/の だい/第 -0.021934 -2.977360 の/の ちいき/地域 -0.021934 -2.977360 の/の ちちおや/父親 -0.021934 -2.977360 の/の ちょうし/調子 -0.021934 -2.977360 の/の ちようこ/蝶子 -0.021934 -2.977360 の/の ちんたい/賃貸 -0.021934 -2.977360 の/の つうしん/通信 -0.021934 -2.977360 の/の つかい/つかい -0.021934 -1.706341 の/の で/で -0.021934 -2.924985 の/の とき/時 -0.021934 -2.977360 の/の どちゃく/土着 -0.021934 -2.071502 の/の な/な -0.021934 -2.977360 の/の ないそう/内装 -0.021934 -2.058599 の/の なまえ/名前 -0.021934 -1.606623 の/の は/は -0.149965 -2.924985 の/の はんざい/犯罪 -0.021934 -2.751257 の/の ばあい/場合 -0.021934 -2.977360 の/の ひと/一 -0.021934 -2.977360 の/の ひとり/1人 -0.021934 -2.977360 の/の ひろた/広食 -0.021934 -2.977360 の/の ふぃじかる/フィジカル -0.021934 -2.058599 の/の ふたり/二人 -0.021934 -2.051939 の/の ぶか/部下 -0.021934 -2.924985 の/の ぶたい/部隊 -0.021934 -2.977360 の/の ぶんせき/分析 -0.021934 -2.977360 の/の へん/変 -0.021934 -2.977360 の/の へんか/変化 -0.021934 -2.977360 の/の ほうしん/砲身 -0.021934 -2.977360 の/の ほくぶ/北部 -0.021934 -2.977360 の/の ぼいす/ボイス -0.021934 -2.924985 の/の まえ/前 -0.021934 -2.977360 の/の まと/的 -0.021934 -2.977360 の/の みんせい/民生 -0.021934 -2.977360 の/の めんどう/面倒 -0.021934 -2.024228 の/の よう/よう -0.021934 -2.009132 の/の ようかい/妖怪 -0.021934 -2.977360 の/の りくろ/陸路 -0.021934 -2.977360 の/の れきし/歴史 -0.021934 -2.439291 の/の 2/2 -0.021934 -2.977360 の/の 24/24 -0.021934 -2.977360 の/の 44/44 -0.021934 -2.051939 の/の 5/5 -0.021934 -1.106299 の/野 たけ/嶽 -0.021934 -1.072813 のいず/ノイズ 」/」 -0.021934 -1.099942 のう/農 がっこう/学校 -0.021934 -0.919339 のこり/残り の/の -0.021934 -1.106299 のび/伸び きれ/きれ -0.021934 -0.835225 は/は 、/、 -0.021934 -1.432379 は/は 「/「 -0.021934 -2.806540 は/は あいりっしゅ/アイリッシュ -0.021934 -2.806540 は/は あまーすと/アマースト -0.021934 -2.806540 は/は うなぎ/鰻 -0.021934 -2.806540 は/は おおつき/大槻 -0.021934 -2.806540 は/は かた/語 -0.021934 -2.806540 は/は けいごうきん/軽合金 -0.021934 -2.806540 は/は けつだん/決断 -0.021934 -2.806540 は/は こくさい/国際 -0.021934 -2.806540 は/は しょくばい/触媒 -0.021934 -2.806540 は/は しろ/白 -0.021934 -2.806540 は/は じぶん/自分 -0.021934 -2.806540 は/は じょし/女子 -0.021934 -2.806540 は/は せいふく/制服 -0.021934 -2.548870 は/は せかい/世界 -0.021934 -2.775272 は/は せるてぃっくす/セルティックス -0.021934 -2.806540 は/は ぜんいん/全員 -0.021934 -2.459780 は/は その/その -0.021934 -2.806540 は/は たえ/絶え -0.021934 -2.806540 は/は たかさか/高坂 -0.021934 -2.806540 は/は たんぱく/淡白 -0.021934 -1.766657 は/は だい/第 -0.021934 -2.806540 は/は だいかん/代官 -0.021934 -2.661079 は/は だりつ/打率 -0.021934 -2.806540 は/は ちゅうか/中華 -0.021934 -1.831840 は/は と/と -0.021934 -2.806540 は/は とりにだーど/トリニダード -0.021934 -2.806540 は/は どいつ/ドイツ -0.021934 -2.806540 は/は どうちゅう/道中 -0.021934 -1.652459 は/は な/な -0.436321 -2.806540 は/は なかの/中野 -0.021934 -2.806540 は/は にちろ/日露 -0.021934 -2.806540 は/は はんもと/版元 -0.021934 -2.806540 は/は ひきと/引き取 -0.021934 -2.806540 は/は ふめい/不明 -0.021934 -2.775272 は/は ぶか/部下 -0.021934 -2.806540 は/は ほうじん/法人 -0.021934 -2.806540 は/は ほっぽう/北方 -0.021934 -2.806540 は/は ほんらい/本来 -0.021934 -2.806540 は/は ぽーかー/ポーカー -0.021934 -2.806540 は/は まっしょう/末梢 -0.021934 -2.806540 は/は まんが/漫画 -0.021934 -2.806540 は/は めぐろ/目黒 -0.021934 -2.806540 は/は もと/元 -0.021934 -2.806540 は/は よくちょう/翌朝 -0.021934 -2.661079 は/は ./. -0.021934 -2.806540 は/は 14/14 -0.021934 -2.806540 は/は 1944/1944 -0.021934 -2.806540 は/は 300/300 -0.021934 -1.068786 は/張 っ/っ -0.021934 -1.021365 は/波 は/は -0.021934 -1.005486 はあく/把握 し/し -0.021934 -1.066787 はい/入 る/る -0.021934 -1.008965 はい/杯 で/で -0.021934 -0.304187 はいき/排気 がす/ガス -0.231635 -1.105508 はいしん/配信 がいしゃ/会社 -0.021934 -1.021365 はいせん/敗戦 は/は -0.021934 -1.054978 はいぞく/配属 さ/さ -0.021934 -1.054978 はいふ/配布 さ/さ -0.021934 -1.005486 はいぼく/敗北 し/し -0.021934 -1.024974 はいゆう/俳優 と/と -0.021934 -1.106299 はがー/ハガー および/及び -0.021934 -0.956394 はくい/白衣 を/を -0.021934 -1.024974 はじめ/始め と/と -0.021934 -1.106299 はせがわ/長谷川 しゅうじ/修二 -0.021934 -1.074841 はそん/破損 (/( -0.021934 -1.064796 はた/秦 ・/・ -0.021934 -0.993525 はだに/ハダニ 、/、 -0.021934 -1.005486 はっかく/発覚 し/し -0.021934 -1.005486 はっしゃ/発射 し/し -0.021934 -1.005486 はっぴょう/発表 し/し -0.021934 -0.284504 はつ/初 の/の -0.021934 -0.304187 はつね/初音 みく/ミク -0.021934 -1.097794 はるあき/春秋 じょくん/叙勲 -0.021934 -1.404995 はんざい/犯罪 きしゃ/記者 -0.021934 -1.404995 はんざい/犯罪 しょうせつ/小説 -0.021934 -0.919339 はんすう/半数 の/の -0.021934 -0.956394 はんぱつ/反発 を/を -0.021934 -0.956394 はんもと/版元 を/を -0.021934 -1.203644 ば/ば 、/、 -0.021934 -1.404995 ば/ば かんじゃ/患者 -0.021934 -1.021365 ば/場 は/は -0.021934 -1.365505 ばあい/場合 、/、 -0.021934 -1.224420 ばあい/場合 に/に -0.021934 -1.434160 ばあい/場合 は/は -0.021934 -1.595576 ばあい/場合 も/も -0.231635 -1.102101 ばくりょう/幕僚 ちょう/長 -0.021934 -0.956394 ばす/バス を/を -0.021934 -1.106299 ばすたー/バスター けいたい/形態 -0.021934 -1.021365 ばっく/バック は/は -0.021934 -0.927948 ばん/版 に/に -0.021934 -1.404995 ばん/番 て/手 -0.021934 -1.403423 ばん/番 にんき/人気 -0.021934 -1.003757 ばんぞく/蛮族 が/が -0.021934 -1.008965 ばんのう/万能 で/で -0.021934 -1.021365 ばーくれい/バークレイ は/は -0.021934 -1.105508 ばーぐ/バーグ へ/へ -0.021934 -1.024974 ひ/妃 と/と -0.021934 -0.919339 ひ/日 の/の -0.021934 -0.919339 ひ/比 の/の -0.021934 -1.102101 ひがしな/東那 けん/県 -0.021934 -1.099942 ひがしまつやま/東松山 えき/駅 -0.021934 -1.087210 ひきと/引き取 ら/ら -0.021934 -1.064796 ひっと/ヒット する/する -0.021934 -1.054978 ひてい/否定 さ/さ -0.021934 -1.403423 ひと/ヒト か/科 -0.021934 -1.088970 ひと/ヒト の/の -0.021934 -1.095656 ひと/一 つ/つ -0.021934 -1.008965 ひとり/1人 で/で -0.021934 -1.106299 ひめはな/ヒメハナ かめむし/カメムシ -0.021934 -1.078925 ひょう/票 )/) -0.021934 -0.296547 ひょうげん/表現 と/と -0.021934 -0.956394 ひよう/費用 を/を -0.021934 -1.106299 ひろし/寛 ほう/法 -0.021934 -1.106299 ひろし/汎 あらぶ/アラブ -0.021934 -1.106299 ひろた/広食 せい/性 -0.021934 -1.097794 ひろば/広場 など/など -0.021934 -0.956394 ひん/品 を/を -0.021934 -0.956394 び/日 を/を -0.021934 -1.003757 び/美 が/が -0.021934 -0.919339 びょういん/病院 の/の -0.021934 -0.919339 びるぼーど/ビルボード の/の -0.021934 -1.101754 ぴくる/ピクル に/に -0.021934 -1.088970 ぴくる/ピクル の/の -0.021934 -1.102101 ふ/府 しょう/賞 -0.021934 -1.087210 ふ/振 ら/ら -0.021934 -1.021365 ふぁすべんだー/ファスベンダー は/は -0.021934 -0.304187 ふぁー/ファー うぇい/ウェイ -0.021934 -1.024974 ふぃじかる/フィジカル と/と -0.021934 -0.956394 ふうけい/風景 を/を -0.021934 -1.106299 ふぇいす/フェイス はがー/ハガー -0.021934 -1.106299 ふぇーざー/フェーザー きかん/機関 -0.021934 -1.099942 ふぉっくす/フォックス しゃ/社 -0.021934 -0.919339 ふきん/付近 の/の -0.021934 -0.304187 ふく/含 む/む -0.021934 -1.087210 ふさわし/ふさわし く/く -0.021934 -0.919339 ふしぎ/不思議 の/の -0.021934 -1.106299 ふしん/不審 せん/船 -0.021934 -1.106299 ふたたび/再び わよ/和与 -0.021934 -1.088970 ふたり/二人 の/の -0.021934 -1.249753 ふたり/二人 は/は -0.021934 -1.003757 ふたり/2人 が/が -0.021934 -1.106299 ふなこし/船越 えいいちろう/英一郎 -0.021934 -1.106299 ふなばし/船橋 しゅうへん/周辺 -0.021934 -1.003757 ふみひこ/文彦 が/が -0.021934 -1.106299 ふみやす/文保 がんねん/元年 -0.021934 -1.102101 ふめい/不明 だっ/だっ -0.021934 -0.927948 ふるい/ふるい に/に -0.021934 -1.089306 ふるく/古く から/から -0.021934 -0.993525 ふん/分 、/、 -0.021934 -1.106299 ぶ/ぶ とし/都市 -0.021934 -1.078925 ぶ/部 )/) -0.021934 -1.325807 ぶか/部下 が/が -0.021934 -1.336812 ぶか/部下 で/で -0.021934 -1.371607 ぶか/部下 と/と -0.021934 -1.106299 ぶしゅう/武州 まつやま/松山 -0.021934 -1.005486 ぶそう/武装 し/し -0.021934 -1.220366 ぶたい/部隊 が/が -0.021934 -1.101754 ぶたい/部隊 に/に -0.021934 -1.099942 ぶよう/舞踊 がっこう/学校 -0.021934 -0.927948 ぶらざーず/ブラザーズ に/に -0.021934 -1.078925 ぶろー/ブロー )/) -0.021934 -1.106299 ぶんげい/文芸 としょ/図書 -0.021934 -1.008965 ぶんせき/分析 で/で -0.021934 -1.106299 ぷらちな/プラチナ にんてい/認定 -0.021934 -1.097794 ぷれてすと/プレテスト ご/後 -0.021934 -1.404995 へ/へ しんにゅう/侵入 -0.021934 -1.088970 へ/へ の/の -0.021934 -1.070795 へ/経 て/て -0.021934 -1.003757 へくたーる/ヘクタール が/が -0.021934 -0.956394 へん/変 を/を -0.021934 -0.956394 へんか/変化 を/を -0.021934 -0.956394 へんじ/返事 を/を -0.021934 -1.072813 べ/べ 」/」 -0.021934 -1.106299 べいぐん/米軍 きち/基地 -0.021934 -1.106299 べすと/ベスト せらー/セラー -0.021934 -0.956394 べんぐつそん/ベングツソン を/を -0.021934 -1.106299 ぺてぃ/ペティ ぐるー/グルー -0.021934 -0.588170 ぺーじ/頁 -0.231635 -1.423182 ぺーじ/頁 、/、 -0.021934 -1.613672 ぺーじ/頁 (/( -0.021934 -0.919339 ほう/法 の/の -0.021934 -0.919339 ほう/砲 の/の -0.021934 -1.003757 ほうこく/報告 が/が -0.021934 -1.054978 ほうしゅつ/放出 さ/さ -0.021934 -1.105508 ほうしょう/褒章 せいど/制度 -0.021934 -1.021365 ほうしん/砲身 は/は -0.021934 -1.105508 ほうじん/法人 むけ/向け -0.021934 -1.404995 ほうせい/法政 がっかい/学会 -0.021934 -1.392439 ほうせい/法政 けんきゅう/研究 -0.021934 -1.106299 ほくと/ホクト するたん/スルタン -0.021934 -0.927948 ほくぶ/北部 に/に -0.021934 -1.099942 ほしょく/捕食 しゃ/者 -0.021934 -1.106299 ほぜん/保全 りん/林 -0.021934 -0.927948 ほっぽう/北方 に/に -0.021934 -1.005486 ほどこ/施 し/し -0.021934 -1.106299 ほんのう/本能 じ/寺 -0.021934 -1.106299 ほんみょう/本名 あんな/アンナ -0.021934 -0.919339 ほんらい/本来 の/の -0.021934 -1.021365 ぼいす/ボイス は/は -0.021934 -1.396683 ぼうえい/防衛 しょう/省 -0.021934 -1.396683 ぼうえい/防衛 だい/大 -0.021934 -1.105508 ぼうご/防護 でき/でき -0.021934 -0.956394 ぼうだん/防弾 を/を -0.021934 -1.024974 ぼくし/牧師 と/と -0.021934 -0.927948 ぼこぼこ/ボコボコ に/に -0.021934 -1.106299 ぼっ/ぼっ こぼこ/こぼこ -0.021934 -1.064796 ぼっぱつ/勃発 する/する -0.231635 -1.064796 ぼびー/ボビー ・/・ -0.021934 -1.105508 ぽーかー/ポーカー ちゅう/中 -0.021934 -0.919339 ぽーとらんど/ポートランド の/の -0.021934 -1.097794 ま/ま れ/れ -0.021934 -1.064796 まいける/マイケル ・/・ -0.021934 -1.404995 まえ/前 ごろ/ごろ -0.021934 -1.101754 まえ/前 に/に -0.021934 -1.097794 まき/巻 3/3 -0.021934 -0.956394 まさと/正人 を/を -0.021934 -1.064796 まじ/まじ い/い -0.021934 -1.105508 まじえ/交え ながら/ながら -0.021934 -0.993525 また/また 、/、 -0.021934 -0.919339 まち/町 の/の -0.021934 -1.106299 まっしょう/末梢 けつ/血 -0.021934 -0.956394 まっする/マッスル を/を -0.021934 -1.106299 まっど/マッド さいえんてぃすと/サイエンティスト -0.021934 -0.927948 まつ/末 に/に -0.021934 -1.105508 まつい/松井 ぐん/軍 -0.021934 -1.099942 まつやま/松山 えき/駅 -0.021934 -1.566420 まで/まで お/お -0.021934 -1.164321 まで/まで の/の -0.021934 -1.576422 まで/まで ひと/ヒト -0.021934 -1.068786 まと/まと っ/っ -0.021934 -1.041595 まと/的 -0.021934 -1.091413 まにら/マニラ や/や -0.021934 -1.087210 まね/招 く/く -0.021934 -1.106299 まま/まま そうこう/走行 -0.021934 -1.064796 まりーあ/マリーア ・/・ -0.021934 -1.106299 まんが/まんが かれっじ/カレッジ -0.021934 -0.919339 まんが/漫画 の/の -0.021934 -1.064796 まんざい/漫才 する/する -0.021934 -0.919339 まーくるんど/マークルンド の/の -0.021934 -1.003757 まーけっと/マーケット が/が -0.021934 -1.066787 み/見 る/る -0.021934 -0.927948 み/身 に/に -0.021934 -1.101754 みく/ミク に/に -0.021934 -1.088970 みく/ミク の/の -0.021934 -1.220366 みちの/美智乃 が/が -0.021934 -1.101754 みちの/美智乃 に/に -0.021934 -1.072813 みっくみく/みっくみく 」/」 -0.021934 -0.927948 みの/美濃 に/に -0.021934 -1.054978 みりょう/魅了 さ/さ -0.021934 -0.927948 みりょく/魅力 に/に -0.021934 -1.106299 みんせい/民生 ひん/品 -0.021934 -1.284555 む/む -0.021934 -1.388237 む/む せかい/世界 -0.021934 -1.068786 むか/向か っ/っ -0.021934 -1.337010 むけ/向け て/て -0.021934 -1.088970 むけ/向け の/の -0.021934 -1.106299 むす/結 ぶ/ぶ -0.021934 -0.927948 むだ/無駄 に/に -0.021934 -1.003757 め/目 が/が -0.021934 -1.008965 めいぎ/名義 で/で -0.021934 -1.578765 めいじ/明治 まつ/末 -0.021934 -1.576422 めいじ/明治 34/34 -0.021934 -1.578765 めいじ/明治 40/40 -0.021934 -1.091413 めがね/眼鏡 や/や -0.021934 -1.106299 めぐろ/目黒 も/盛 -0.021934 -1.005486 めざ/目指 し/し -0.021934 -1.095656 めだ/目立 つ/つ -0.021934 -0.956394 めんどう/面倒 を/を -0.021934 -1.041595 めんばー/メンバー -0.021934 -1.563154 も/も 、/、 -0.021934 -2.277015 も/も あ/あ -0.231635 -2.384069 も/も いま/今 -0.021934 -2.310659 も/も おお/多 -0.021934 -2.216662 も/も おこな/行 -0.021934 -2.369315 も/も か/書 -0.021934 -2.384069 も/も かかわ/かかわ -0.021934 -2.384069 も/も かかわ/関わ -0.021934 -2.384069 も/も けいそう/係争 -0.021934 -2.384069 も/も けんとう/検討 -0.021934 -2.384069 も/も げんえき/現役 -0.021934 -2.384069 も/も せかんど/セカンド -0.021934 -2.384069 も/も そうだ/操舵 -0.021934 -2.189365 も/も その/その -0.021934 -2.384069 も/も ととのえ/整え -0.021934 -1.921519 も/も な/な -0.021934 -2.384069 も/も はっかく/発覚 -0.021934 -2.384069 も/も ばんのう/万能 -0.021934 -2.369315 も/も ふく/含 -0.021934 -2.384069 も/も ふたたび/再び -0.021934 -2.163683 も/も 2/2 -0.021934 -1.068786 も/持 っ/っ -0.021934 -1.106299 も/盛 とよみ/豊見 -0.021934 -1.076878 もう/網 も/も -0.021934 -1.106299 もうり/毛利 よんじゅういち/四一 -0.021934 -1.005486 もたら/もたら し/し -0.021934 -1.106299 もと/元 ろういん/老院 -0.021934 -1.389996 もの/もの が/が -0.021934 -1.443559 もの/もの と/と -0.021934 -1.434160 もの/もの は/は -0.021934 -1.282649 もの/もの を/を -0.021934 -0.927948 もの/者 に/に -0.021934 -1.021365 ものがたり/物語 は/は -0.021934 -0.956394 ものごと/物事 を/を -0.021934 -1.106299 もも/もも うら/裏 -0.021934 -1.041595 もよう/模様 -0.021934 -1.106299 もり/森 ながよし/長可 -0.021934 -1.993309 や/や あやし/怪し -0.021934 -1.987249 や/や えんじん/エンジン -0.021934 -1.993309 や/や おーすとらりあ/オーストラリア -0.021934 -1.993309 や/や くさかげろう/クサカゲロウ -0.021934 -1.993309 や/や なおひろ/直弘 -0.021934 -1.993309 や/や はだに/ハダニ -0.021934 -1.993309 や/や ふうけい/風景 -0.021934 -1.993309 や/や ろれーた/ロレータ -0.021934 -1.003757 やく/役 が/が -0.021934 -1.404995 やく/約 はんすう/半数 -0.021934 -1.403423 やく/約 5/5 -0.021934 -1.106299 やっと/やっと とうちゃく/到着 -0.021934 -1.099942 やよい/弥生 じだい/時代 -0.021934 -1.105508 やん/やん よ/よ -0.021934 -1.064796 ゆうしゅう/優秀 な/な -0.021934 -1.064796 ゆうしょう/優勝 する/する -0.021934 -1.105508 ゆうよ/猶予 きかん/期間 -0.021934 -0.919339 ゆうれい/ユウレイ の/の -0.021934 -1.689036 よ/よ っ/っ -0.561260 -1.837013 よ/よ り/り -0.021934 -1.680755 よ/よ る/る -0.021934 -1.825415 よ/よ れ/れ -0.021934 -1.714870 よ/よ (/( -0.021934 -1.732987 よ/よ )/) -0.021934 -1.105508 よ/呼 ん/ん -0.231635 -1.701395 よう/よう しじ/指示 -0.021934 -1.701395 よう/よう せっけい/設計 -0.021934 -1.402780 よう/よう で/で -0.021934 -1.556902 よう/よう な/な -0.021934 -1.396683 よう/洋 せんそう/戦争 -0.021934 -1.403423 よう/洋 ぶたい/部隊 -0.021934 -1.578765 ようかい/妖怪 じょ/序 -0.021934 -1.336812 ようかい/妖怪 で/で -0.021934 -1.371607 ようかい/妖怪 と/と -0.021934 -1.404995 ようし/容姿 たんれい/端麗 -0.021934 -1.228976 ようし/容姿 で/で -0.021934 -1.105508 よくちょう/翌朝 だい/代 -0.021934 -1.072813 よばい/夜這い 」/」 -0.021934 -1.054978 よびだ/呼び出 さ/さ -0.231635 -1.106299 よみ/読み きり/切り -0.021934 -1.105508 よろこ/喜 ん/ん -0.021934 -0.919339 よんじゅういち/四一 の/の -0.021934 -1.064796 よーろっぱ/ヨーロッパ ・/・ -0.021934 -2.013340 ら/ら か/か -0.021934 -2.090033 ら/ら ざる/ざる -0.021934 -0.949891 ら/ら ず/ず -0.021934 -2.083914 ら/ら せ/せ -0.021934 -0.945517 ら/ら れ/れ -0.021934 -1.465821 ら/ら を/を -0.021934 -0.927948 らいん/ライン に/に -0.021934 -0.927948 らずふぁーど/ラズファード に/に -0.021934 -1.480970 られ/られ 、/、 -0.021934 -0.766834 られ/られ た/た -0.231635 -1.721322 られ/られ て/て -0.021934 -1.698976 られ/られ な/な -0.021934 -1.706298 られ/られ る/る -0.021934 -1.008965 らんきんぐ/ランキング で/で -0.021934 -1.005486 らんくいん/ランクイン し/し -0.021934 -0.919339 らーる/ラール の/の -0.021934 -0.433121 り/り 、/、 -0.021934 -1.791504 り/り 「/「 -0.021934 -1.877391 り/り ぷらちな/プラチナ -0.021934 -1.106299 りくじょう/陸上 ばくりょう/幕僚 -0.021934 -0.956394 りくろ/陸路 を/を -0.021934 -1.106299 りつ/立 のう/農 -0.021934 -1.325807 りま/りま が/が -0.021934 -1.179570 りま/りま に/に -0.021934 -1.164321 りま/りま の/の -0.021934 -1.072813 りゅう/龍 」/」 -0.021934 -0.993525 りゅうじ/龍治 、/、 -0.021934 -1.024974 りょういき/領域 と/と -0.021934 -1.106299 りよん/リヨン こくりつ/国立 -0.021934 -1.005486 りりーす/リリース し/し -0.021934 -0.927948 りん/林 に/に -0.021934 -1.105508 りーぐ/リーグ しゅい/首位 -0.021934 -0.725708 る/る -1.406358 -2.249866 る/る 「/「 -0.021934 -2.643033 る/る あたり/あたり -0.021934 -2.421799 る/る か/か -0.021934 -1.732878 る/る が/が -0.021934 -2.643033 る/る きいろあざみうま/キイロアザミウマ -0.021934 -2.622336 る/る きゃらくたー/キャラクター -0.021934 -2.643033 る/る きんだい/近代 -0.021934 -2.542618 る/る ぎいん/議員 -0.021934 -2.643033 る/る くせ/癖 -0.021934 -2.643033 る/る くんしょう/勲章 -0.021934 -1.512828 る/る こと/こと -0.021934 -2.643033 る/る ごと/毎 -0.021934 -2.643033 る/る さいしょう/崔鍾 -0.021934 -2.643033 る/る ざいにち/在日 -0.021934 -2.498504 る/る しょうねん/少年 -0.021934 -2.643033 る/る じんぶつ/人物 -0.021934 -2.643033 る/る せき/赤 -0.021934 -2.498504 る/る ため/ため -0.021934 -2.643033 る/る だんせい/弾性 -0.021934 -1.389162 る/る と/と -0.021934 -2.458460 る/る など/など -0.021934 -1.478736 る/る に/に -0.021934 -2.643033 る/る ひろし/汎 -0.021934 -2.643033 る/る まんが/まんが -0.021934 -2.498504 る/る もの/もの -0.021934 -2.643033 る/る もよう/模様 -0.021934 -2.542618 る/る よう/よう -0.021934 -1.013234 れ/れ 、/、 -0.021934 -2.046027 れ/れ 「/「 -0.021934 -1.072112 れ/れ た/た -0.186920 -1.070648 れ/れ て/て -0.517264 -2.223891 れ/れ ば/ば -0.021934 -1.067735 れ/れ る/る -0.135767 -1.388237 れい/令 だい/第 -0.021934 -1.344509 れい/令 (/( -0.021934 -1.021365 れおん/レオン は/は -0.021934 -1.072813 れきし/歴史 」/」 -0.021934 -1.106299 れこーど/レコード きょうかい/協会 -0.021934 -1.106299 れっど/レッド うっど/ウッド -0.021934 -1.097794 れつ/列 だい/第 -0.021934 -1.076878 ればのん/レバノン も/も -0.021934 -1.106299 れんぽう/連邦 ぎかい/議会 -0.021934 -0.919339 ろういん/老院 の/の -0.021934 -1.105508 ろく/六 ばん/番 -0.021934 -1.106299 ろせん/路線 ばす/バス -0.021934 -0.927948 ろれーた/ロレータ に/に -0.021934 -1.076878 ろんぶん/論文 も/も -0.021934 -0.275364 わ/わ れ/れ -0.333767 -1.087210 わか/若 く/く -0.021934 -1.105508 わしんとん/ワシントン ぐん/軍 -0.021934 -1.106299 わずか/わずか いちよ/一代 -0.021934 -1.068786 わた/亘 っ/っ -0.021934 -0.919339 わたし/私 の/の -0.021934 -1.105508 わたり/渡り しょう/小 -0.021934 -1.024974 わたる/渉 と/と -0.021934 -1.003757 わよ/和与 が/が -0.021934 -0.956394 わんしょう/腕章 を/を -0.021934 -1.064796 わーなー/ワーナー ・/・ -0.021934 -2.910141 を/を あたえ/与え -0.021934 -2.910141 を/を あっか/悪化 -0.021934 -2.910141 を/を あらわ/表 -0.021934 -2.865608 を/を い/言 -0.021934 -2.910141 を/を いか/生か -0.021934 -2.910141 を/を いだ/抱 -0.021934 -2.865608 を/を いりょう/医療 -0.021934 -2.910141 を/を いわ/祝 -0.021934 -1.906184 を/を うけ/受け -0.149965 -2.910141 を/を うれし/うれし -0.021934 -2.910141 を/を うんえい/運営 -0.021934 -2.910141 を/を うんこう/運行 -0.021934 -2.910141 を/を え/得 -0.021934 -2.910141 を/を えん/演 -0.021934 -2.517505 を/を おこな/行 -0.021934 -2.910141 を/を おとずれ/訪れ -0.021934 -2.865608 を/を か/書 -0.021934 -2.865608 を/を かいさい/開催 -0.021934 -2.910141 を/を かえ/変え -0.021934 -1.906184 を/を かくとく/獲得 -0.149965 -2.910141 を/を かけ/懸け -0.021934 -2.865608 を/を かんがえ/考え -0.021934 -2.910141 を/を きせ/着せ -0.021934 -2.910141 を/を きちょう/基調 -0.021934 -1.950967 を/を きろく/記録 -0.231635 -2.910141 を/を くみあわせ/組み合わせ -0.021934 -2.910141 を/を くりかえ/繰り返 -0.021934 -2.865608 を/を けん/剣 -0.021934 -2.637478 を/を けんきゅう/研究 -0.021934 -2.910141 を/を こうせい/光成 -0.021934 -2.910141 を/を こえ/超え -0.021934 -2.910141 を/を さいよう/採用 -0.021934 -1.950967 を/を し/知 -0.231635 -2.910141 を/を しい/強い -0.021934 -2.910141 を/を しかけ/仕掛け -0.021934 -2.910141 を/を しき/指揮 -0.021934 -2.910141 を/を しきゅう/支給 -0.021934 -2.910141 を/を しめ/示 -0.021934 -2.865608 を/を しゅうりょう/終了 -0.021934 -2.910141 を/を しゅじん/主人 -0.021934 -2.910141 を/を しゅっぱつ/出発 -0.021934 -2.910141 を/を しょうかい/紹介 -0.021934 -2.910141 を/を しょく/食 -0.021934 -2.865608 を/を しよう/使用 -0.021934 -2.910141 を/を じっしょう/実証 -0.021934 -2.910141 を/を せつやく/節約 -0.021934 -2.910141 を/を せま/迫 -0.021934 -2.910141 を/を そうちゃく/装着 -0.021934 -2.910141 を/を そだて/育て -0.021934 -2.910141 を/を そつぎょう/卒業 -0.021934 -2.910141 を/を たいくつ/退屈 -0.021934 -2.910141 を/を たちあげ/立ち上げ -0.021934 -2.910141 を/を たて/縦 -0.021934 -2.712728 を/を ちょう/長 -0.021934 -2.910141 を/を ちょうさ/調査 -0.021934 -2.865608 を/を つうじょう/通常 -0.021934 -2.910141 を/を つかえ/使え -0.021934 -2.910141 を/を つづけ/続け -0.021934 -1.956149 を/を つとめ/務め -0.021934 -2.865608 を/を つよ/強 -0.021934 -2.910141 を/を ていきょう/提供 -0.021934 -2.910141 を/を でんれい/伝令 -0.021934 -2.910141 を/を となえ/唱え -0.021934 -2.910141 を/を とりもど/取り戻 -0.021934 -2.910141 を/を どういん/動員 -0.021934 -2.910141 を/を はあく/把握 -0.021934 -1.956149 を/を はじめ/始め -0.231635 -2.910141 を/を はっしゃ/発射 -0.021934 -2.910141 を/を へ/経 -0.021934 -2.910141 を/を ほどこ/施 -0.021934 -2.910141 を/を ぼうご/防護 -0.021934 -2.910141 を/を ぼくし/牧師 -0.021934 -2.910141 を/を まじえ/交え -0.021934 -2.910141 を/を まと/まと -0.021934 -2.910141 を/を まね/招 -0.021934 -2.910141 を/を み/見 -0.021934 -2.910141 を/を み/身 -0.021934 -2.910141 を/を むす/結 -0.021934 -2.910141 を/を むだ/無駄 -0.021934 -2.910141 を/を めざ/目指 -0.021934 -2.198151 を/を も/も -0.021934 -2.910141 を/を も/持 -0.021934 -1.956149 を/を よ/呼 -0.231635 -2.910141 を/を りりーす/リリース -0.021934 -1.396683 ん/ん だ/だ -0.021934 -1.228976 ん/ん で/で -0.021934 -2.384069 ・/・ あっぷ/アップ -0.021934 -2.310659 ・/・ あふりか/アフリカ -0.021934 -2.384069 ・/・ あぶどぅん/アブドゥン -0.021934 -2.384069 ・/・ あるばむ/アルバム -0.021934 -2.384069 ・/・ うえるず/ウエルズ -0.021934 -2.277015 ・/・ けんきゅう/研究 -0.021934 -2.384069 ・/・ こふん/古墳 -0.021934 -2.384069 ・/・ さんず/サンズ -0.021934 -2.384069 ・/・ しゅヴぇーげりん/シュヴェーゲリン -0.021934 -2.384069 ・/・ そりゅーしょん/ソリューション -0.231635 -2.384069 ・/・ たかはし/高橋 -0.021934 -2.384069 ・/・ ちゃーと/チャート -0.021934 -2.384069 ・/・ ふぁすべんだー/ファスベンダー -0.021934 -2.384069 ・/・ ぶしゅう/武州 -0.021934 -2.384069 ・/・ ぶよう/舞踊 -0.021934 -2.384069 ・/・ ぶらざーず/ブラザーズ -0.021934 -2.384069 ・/・ べんぐつそん/ベングツソン -0.021934 -2.384069 ・/・ ほうしょう/褒章 -0.021934 -2.384069 ・/・ まつい/松井 -0.021934 -2.384069 ・/・ まりーあ/マリーア -0.021934 -2.384069 ・/・ りーぐ/リーグ -0.021934 -1.404995 ー/ー 393/393 -0.021934 -1.392439 ー/ー 9/9 -0.021934 -2.325455 (/( あか/あか -0.021934 -2.313179 (/( えんじん/エンジン -0.021934 -2.325455 (/( げん/現 -0.021934 -2.325455 (/( こうりゃん/コウリャン -0.021934 -2.325455 (/( しょうがく/小学 -0.021934 -1.255487 (/( しょうわ/昭和 -0.021934 -2.325455 (/( しれい/司令 -0.021934 -2.325455 (/( せんきゅうひゃくきゅうじゅうはち/1998 -0.021934 -2.325455 (/( とうきょう/とうきょう -0.021934 -2.325455 (/( とうなーけん/とうなーけん -0.021934 -2.325455 (/( どーぱんと/ドーパント -0.021934 -2.313179 (/( ほうせい/法政 -0.021934 -2.325455 (/( ぼこぼこ/ボコボコ -0.021934 -2.325455 (/( みりょく/魅力 -0.021934 -2.313179 (/( めいじ/明治 -0.021934 -2.325455 (/( 1942/1942 -0.021934 -2.325455 (/( 537/537 -0.021934 -1.146967 )/) -0.231635 -1.103051 )/) 、/、 -0.021934 -1.175254 )/) 」/」 -0.021934 -2.131012 )/) こと/こと -0.021934 -1.716783 )/) で/で -0.021934 -1.474626 )/) に/に -0.021934 -1.967889 )/) ねん/年 -0.021934 -1.034502 )/) の/の -0.021934 -1.085015 )/) は/は -0.021934 -2.278240 )/) :/: -0.021934 -0.602760 ./. 3/3 -0.021934 -1.701075 ./. 34/34 -0.021934 -1.690774 ./. 4/4 -0.021934 -1.064796 0/0 ねん/年 -0.021934 -1.106299 000/000 いし/石 -0.021934 -1.404995 1/1 じ/時 -0.021934 -1.396683 1/1 4/4 -0.021934 -1.403423 10/10 か/日 -0.021934 -1.326000 10/10 ねん/年 -0.021934 -1.547909 12/12 がつ/月 -0.021934 -1.576422 12/12 だい/代 -0.021934 -1.576422 12/12 ばん/番 -0.021934 -1.105508 13/13 にち/日 -0.021934 -1.099942 14/14 い/位 -0.021934 -1.074841 17/17 (/( -0.021934 -1.106299 18/18 か/駆 -0.021934 -1.064796 1901/1901 ねん/年 -0.021934 -1.064796 1907/1907 ねん/年 -0.021934 -1.078925 1942/1942 )/) -0.021934 -1.064796 1944/1944 ねん/年 -0.021934 -1.064796 1956/1956 ねん/年 -0.021934 -1.476664 2/2 、/、 -0.021934 -1.946549 2/2 い/位 -0.021934 -1.987249 2/2 か/日 -0.021934 -1.993309 2/2 じかん/時間 -0.021934 -1.987249 2/2 ちゃく/着 -0.021934 -1.917304 2/2 つ/つ -0.021934 -1.993309 2/2 ど/度 -0.021934 -1.987249 2/2 ー/ー -0.021934 -1.064796 2000/2000 ねん/年 -0.021934 -1.106299 21/21 さい/歳 -0.021934 -1.102101 24/24 ./. -0.021934 -1.105508 26/26 にち/日 -0.021934 -1.436366 3/3 、/、 -0.021934 -1.814119 3/3 がつ/月 -0.021934 -1.837013 3/3 ごう/号 -0.021934 -1.872904 3/3 せき/隻 -0.021934 -1.872904 3/3 へくたーる/ヘクタール -0.021934 -1.868304 3/3 7/7 -0.021934 -1.106299 300/300 ちか/近 -0.021934 -1.064796 31/31 ねん/年 -0.021934 -1.326000 34/34 ねん/年 -0.021934 -1.392439 34/34 9/9 -0.021934 -1.102101 35/35 にん/人 -0.021934 -1.091413 39/39 2/2 -0.021934 -1.099942 393/393 ぺーじ/頁 -0.021934 -1.547909 4/4 がつ/月 -0.021934 -1.231728 4/4 を/を -0.021934 -1.576422 4/4 1/1 -0.021934 -1.064796 40/40 ねん/年 -0.021934 -1.106299 44/44 しあい/試合 -0.021934 -1.099942 45/45 しゃ/社 -0.021934 -1.304600 5/5 、/、 -0.021934 -1.578765 5/5 せいまご/世孫 -0.021934 -1.566420 5/5 にん/人 -0.021934 -1.105508 50/50 じぎょう/事業 -0.021934 -1.106299 5000/5000 0/0 -0.021934 -1.099942 533/533 ぺーじ/頁 -0.021934 -1.099942 536/536 ぺーじ/頁 -0.021934 -1.106299 537/537 ひょう/票 -0.021934 -1.106299 57/57 ふん/分 -0.021934 -0.478320 6/6 がつ/月 -0.021934 -1.567747 6/6 ごう/号 -0.021934 -1.064796 62/62 ねん/年 -0.021934 -1.403423 7/7 ちゃく/着 -0.021934 -1.388237 7/7 3/3 -0.021934 -1.106299 71/71 まき/巻 -0.021934 -0.478320 8/8 がつ/月 -0.021934 -1.579227 8/8 ー/ー -0.021934 -1.102101 800/800 にん/人 -0.021934 -1.676890 9/9 い/位 -0.021934 -1.660928 9/9 がつ/月 -0.021934 -1.676890 9/9 ぺーじ/頁 -0.021934 -1.282649 9/9 を/を -0.021934 -1.403423 :/: なす/ナス -0.021934 -1.404995 :/: ひがしまつやま/東松山 -0.021934 -1.404995 =/= なーせる/ナーセル -0.021934 -1.404995 =/= のいず/ノイズ -0.021934 \3-grams: -1.931071 「/「 -2.885779 あきひろ/空広 -2.885779 あさくら/朝倉 -2.749210 あと/後 -2.885779 あにめ/アニメ -2.885779 いってい/一定 -2.856664 いんたい/引退 -2.885779 おうごん/黄金 -2.885779 おおさか/大阪 -2.885779 おぐら/小倉 -2.856664 おりこん/オリコン -2.885779 かみのうがね/上納金 -2.856664 かれ/彼 -2.856664 かんこく/韓国 -2.885779 かんさい/関西 -2.885779 かんめい/艦名 -2.856664 がいこく/外国 -2.885779 がくえん/学園 -2.885779 く/食 -2.885779 ぐんぶ/軍部 -2.856664 けい/計 -2.856664 けん/剣 -2.023218 げんざい/現在 -2.041487 この/この -2.856664 これ/これ -2.885779 こーひー/コーヒー -2.885779 さいしょ/最初 -2.885779 しいき/市域 -1.306775 しかし/しかし -2.885779 しまだ/島田 -2.885779 しゃんはい/上海 -2.856664 しゅ/主 -2.885779 しゅうり/修理 -2.749210 しょう/賞 -2.885779 しょけい/処刑 -2.885779 しんだん/診断 -2.642173 じょくん/叙勲 -2.885779 すき/好き -2.856664 すきー/スキー -2.885779 せんきゅうひゃくきゅうじゅうきゅう/1999 -2.885779 せんきゅうひゃくはちじゅうなな/1987 -2.885779 せんきゅうひゃくはちじゅうはち/1988 -2.885779 せんたい/船体 -2.749210 ぜん/全 -2.885779 そして/そして -1.508394 その/その -2.885779 ただし/ただし -2.885779 だ/出 -2.642173 だい/第 -2.885779 ちぎょう/知行 -2.885779 ちぐさ/千草 -2.885779 てんしよう/天正 -1.862281 で/で -2.856664 とうきょう/東京 -2.885779 とりしらべ/取り調べ -2.885779 とんぼ/とんぼ -2.856664 なす/ナス -2.885779 なな/七 -2.885779 にしよどがわ/西淀川 -2.885779 にせんじゅういち/2011 -2.885779 にせんなな/2007 -2.856664 はんざい/犯罪 -2.885779 ばーくれい/バークレイ -2.885779 ひがしな/東那 -2.885779 びるぼーど/ビルボード -2.856664 ぴくる/ピクル -2.885779 ふぇいす/フェイス -2.885779 ふぇーざー/フェーザー -2.885779 ぷれてすと/プレテスト -2.885779 ほんみょう/本名 -2.856664 ぼうえい/防衛 -2.885779 ぼびー/ボビー -2.045819 また/また -2.885779 まち/町 -2.856664 めいじ/明治 -2.856664 ようし/容姿 -2.885779 よーろっぱ/ヨーロッパ -2.885779 れっど/レッド -2.885779 ろく/六 -2.885779 わか/若 -2.885779 わたし/私 -2.856664 1/1 -2.041487 12/12 -2.885779 1901/1901 -2.885779 1907/1907 -2.519087 2/2 -2.885779 2000/2000 -2.885779 21/21 -1.535522 「/「 くれない/紅 -1.535522 「/「 みっくみく/みっくみく -0.854612 あきひろ/空広 は/は -0.907687 あさくら/朝倉 か/家 -0.950285 あと/後 に/に -0.907687 あにめ/アニメ ばん/版 -0.785872 いってい/一定 の/の -1.054828 いんたい/引退 ご/後 -0.907687 おうごん/黄金 じゅうし/銃士 -0.907687 おおさか/大阪 がんつ/ガンツ -0.907687 おぐら/小倉 だいしょうすけ/大賞典 -1.062143 おりこん/オリコン でいりー/デイリー -0.907687 かみのうがね/上納金 ごうだつ/強奪 -1.045698 かれ/彼 ら/ら -0.266133 かんこく/韓国 に/に -0.791874 かんさい/関西 に/に -0.854612 かんめい/艦名 は/は -0.282949 がいこく/外国 じん/人 -0.791874 がくえん/学園 に/に -0.882239 く/食 い/い -0.888484 ぐんぶ/軍部 (/( -1.062143 けい/計 35/35 -0.897176 けん/剣 の/の -1.224665 げんざい/現在 は/は -1.359816 げんざい/現在 ふぁー/ファー -1.361168 この/この とき/とき -1.361168 この/この はいせん/敗戦 -0.408519 これ/これ に/に -0.811445 こーひー/コーヒー を/を -0.791874 さいしょ/最初 に/に -0.791874 しいき/市域 に/に -1.366349 しかし/しかし 、/、 -1.678853 しかし/しかし しんかい/晋海 -1.635087 しかし/しかし その/その -1.676050 しかし/しかし ながら/ながら -1.678853 しかし/しかし なつば/夏場 -1.676050 しかし/しかし みちの/美智乃 -0.907687 しまだ/島田 しんすけ/紳助 -0.907687 しゃんはい/上海 どくしょう/独唱 -0.991415 しゅ/主 と/と -0.854612 しゅうり/修理 は/は -1.128842 しょう/賞 きん/金 -0.785872 しょけい/処刑 の/の -0.854612 しんだん/診断 は/は -1.111394 じょくん/叙勲 は/は -0.882239 すき/好き な/な -1.062143 すきー/スキー しどう/指導 -0.882239 せんきゅうひゃくきゅうじゅうきゅう/1999 ねん/年 -0.882239 せんきゅうひゃくはちじゅうなな/1987 ねん/年 -0.882239 せんきゅうひゃくはちじゅうはち/1988 ねん/年 -0.854612 せんたい/船体 は/は -1.128050 ぜん/全 さくひん/作品 -0.836381 そして/そして 、/、 -1.730767 その/その あと/後 -1.743484 その/その うえ/うえ -0.670570 その/その ご/後 -0.836381 ただし/ただし 、/、 -0.905156 だ/出 あふりか/アフリカ -0.644326 だい/第 に/二 -0.898668 ちぎょう/知行 2/2 -0.907687 ちぐさ/千草 しまい/姉妹 -0.907211 てんしよう/天正 10/10 -1.292678 で/で あいて/相手 -1.058534 とうきょう/東京 おふぃす/オフィス -0.791874 とりしらべ/取り調べ に/に -0.843128 とんぼ/とんぼ が/が -0.991415 なす/ナス と/と -0.907687 なな/七 ふしぎ/不思議 -0.907687 にしよどがわ/西淀川 く/区 -0.882239 にせんじゅういち/2011 ねん/年 -0.882239 にせんなな/2007 ねん/年 -1.062143 はんざい/犯罪 きしゃ/記者 -0.854612 ばーくれい/バークレイ は/は -0.905156 ひがしな/東那 けん/県 -0.785872 びるぼーど/ビルボード の/の -0.904946 ぴくる/ピクル に/に -0.907687 ふぇいす/フェイス はがー/ハガー -0.907687 ふぇーざー/フェーザー きかん/機関 -0.902549 ぷれてすと/プレテスト ご/後 -0.907687 ほんみょう/本名 あんな/アンナ -1.058534 ぼうえい/防衛 だい/大 -0.882239 ぼびー/ボビー ・/・ -0.325218 また/また 、/、 -0.785872 まち/町 の/の -1.128842 めいじ/明治 まつ/末 -1.062143 ようし/容姿 たんれい/端麗 -0.882239 よーろっぱ/ヨーロッパ ・/・ -0.907687 れっど/レッド うっど/ウッド -0.907211 ろく/六 ばん/番 -0.896099 わか/若 く/く -0.785872 わたし/私 の/の -1.062143 1/1 じ/時 -1.287769 12/12 がつ/月 -1.302427 12/12 だい/代 -0.882239 1901/1901 ねん/年 -0.882239 1907/1907 ねん/年 -1.229843 2/2 じかん/時間 -0.882239 2000/2000 ねん/年 -0.907687 21/21 さい/歳 -0.882239 ”/“ だぶる/ダブル ・/・ -1.297399 ”/“ を/を りりーす/リリース -1.111421 、/、 あいてむ/アイテム と/と -0.991023 、/、 あいてむ/アイテム の/の -0.811445 、/、 あぶらむし/アブラムシ を/を -1.062143 、/、 あめりか/アメリカ れこーど/レコード -0.907687 、/、 ある/ある ていど/程度 -1.207311 、/、 いぎりす/イギリス かいきょう/海峡 -1.092902 、/、 いぎりす/イギリス で/で -0.901251 、/、 いく/いく つ/つ -0.785872 、/、 いたりあ/イタリア の/の -0.907687 、/、 いわゆる/いわゆる まっど/マッド -1.026263 、/、 いんたい/引退 する/する -0.907687 、/、 うちとみ/内冨 ひろし/寛 -0.907687 、/、 えいが/映画 ふぉっくす/フォックス -0.846542 、/、 えいだっく/エイダック で/で -0.907687 、/、 えぎ/榎木 こうめい/孝明 -0.785872 、/、 おおく/多く の/の -1.062143 、/、 おりこん/オリコン うぃーくりーらんきんぐ/ウィークリーランキング -0.867606 、/、 おんせん/温泉 -0.904946 、/、 かいしゃ/会社 に/に -0.836381 、/、 かいしゅう/改修 、/、 -0.785872 、/、 かげ/影 の/の -0.282949 、/、 がいこく/外国 じん/人 -0.882239 、/、 がまーる/ガマール ・/・ -0.785872 、/、 がめとさいと/ガメトサイト の/の -0.907687 、/、 がーでぃあん/ガーディアン たち/達 -1.128842 、/、 きけん/危険 ぎょうむ/業務 -0.907687 、/、 きゅうしゅう/九州 だいがく/大学 -0.907211 、/、 くろす/クロス かんとりー/カントリー -0.856946 、/、 けっせい/結成 と/と -1.062143 、/、 こうつう/交通 もう/網 -0.903850 、/、 こうれい/高齢 しゃ/者 -0.785872 、/、 こども/子供 の/の -1.332505 、/、 この/この こと/こと -1.361168 、/、 この/この たたかい/闘い -0.907687 、/、 こみっく/コミック まーけっと/マーケット -1.304672 、/、 これ/これ いがい/以外 -0.436818 、/、 これ/これ に/に -0.854612 、/、 こんこーど/コンコード は/は -0.785872 、/、 さいあく/最悪 の/の -1.051153 、/、 さいしゅう/最終 てき/的 -0.785872 、/、 さいしん/最新 の/の -0.988237 、/、 ざざーぐ/ザザーグ は/は -0.907687 、/、 しっこう/執行 ゆうよ/猶予 -0.785872 、/、 してい/姉弟 の/の -0.902549 、/、 しぼう/死亡 じょくん/叙勲 -0.907687 、/、 しゃりょう/車両 かさい/火災 -0.907687 、/、 しゅりゅう/手榴 だん/弾 -0.899958 、/、 しんわ/神話 てき/的 -1.062143 、/、 しーずん/シーズン つうさん/通算 -0.907687 、/、 じゅう/十 しろう/四郎 -0.882239 、/、 すう/数 ねん/年 -0.907687 、/、 すご/凄 まじ/まじ -1.190723 、/、 せかい/世界 とっぷ/トップ -0.905156 、/、 せっこう/浙江 しょう/省 -0.991415 、/、 せるてぃっくす/セルティックス と/と -1.091278 、/、 せん/戦 っ/っ -0.907211 、/、 せんとう/戦闘 しゅうりょう/終了 -0.785872 、/、 せんない/船内 の/の -1.628654 、/、 その/その かけい/家系 -0.988535 、/、 その/その ころ/頃 -1.628654 、/、 その/その にが/苦 -0.907687 、/、 そらも/空燃 ひ/比 -0.785872 、/、 そるがむ/ソルガム の/の -0.904946 、/、 そるごー/ソルゴー に/に -0.337828 、/、 それ/それ まで/まで -0.811445 、/、 ぞうちく/増築 を/を -0.785872 、/、 たいい/大尉 の/の -0.897176 、/、 たがい/互い の/の -1.128842 、/、 だい/大 の/野 -0.907211 、/、 ちゅうしゃ/駐車 じょう/場 -0.903850 、/、 ちょうせん/朝鮮 しょうねん/少年 -0.988237 、/、 つうじょう/通常 は/は -0.882239 、/、 つづ/続 い/い -0.885975 、/、 てれ/照れ て/て -0.907687 、/、 でんげき/電撃 おん/オン -0.811445 、/、 とうさつ/盗撮 を/を -1.187003 、/、 とうじ/当時 から/から -0.991023 、/、 とうじ/当時 の/の -0.905156 、/、 とくに/とくに 8/8 -0.836381 、/、 とつぜん/突然 、/、 -0.791874 、/、 とも/とも に/に -0.836381 、/、 とろふぉぞいと/トロフォゾイト 、/、 -0.791874 、/、 どれん/ドレン に/に -0.907687 、/、 ないかく/内閣 ふ/府 -0.896099 、/、 なん/何 ら/ら -0.903850 、/、 なんぼくちょう/南北朝 じだい/時代 -0.836381 、/、 にく/肉 、/、 -0.882239 、/、 にせんご/2005 ねん/年 -0.882239 、/、 にせんじゅうに/2012 ねん/年 -0.907687 、/、 ねっと/ネット じょう/上 -0.785872 、/、 のこり/残り の/の -0.283011 、/、 はいき/排気 がす/ガス -0.283011 、/、 はつね/初音 みく/ミク -0.902549 、/、 はるあき/春秋 じょくん/叙勲 -0.843128 、/、 ばんぞく/蛮族 が/が -0.902549 、/、 ひろば/広場 など/など -0.336143 、/、 ぴくる/ピクル の/の -0.907687 、/、 ふなばし/船橋 しゅうへん/周辺 -0.844263 、/、 ぶそう/武装 し/し -0.907687 、/、 ぺてぃ/ペティ ぐるー/グルー -0.785872 、/、 ぽーとらんど/ポートランド の/の -0.811445 、/、 まさと/正人 を/を -0.898668 、/、 まにら/マニラ や/や -0.898668 、/、 めがね/眼鏡 や/や -0.811445 、/、 ものごと/物事 を/を -0.907687 、/、 もも/もも うら/裏 -1.062143 、/、 やく/約 はんすう/半数 -1.026171 、/、 りま/りま が/が -0.907687 、/、 りよん/リヨン こくりつ/国立 -0.889744 、/、 ればのん/レバノン も/も -0.907687 、/、 れんぽう/連邦 ぎかい/議会 -0.856946 、/、 わたる/渉 と/と -0.882239 、/、 わーなー/ワーナー ・/・ -0.907687 、/、 000/000 いし/石 -1.128050 、/、 12/12 ばん/番 -0.333574 、/、 1956/1956 ねん/年 -0.898668 、/、 39/39 2/2 -0.907687 、/、 5000/5000 0/0 -0.437358 、/、 6/6 がつ/月 -0.905156 、/、 800/800 にん/人 -0.882239 「/「 あお/青 い/い -0.876082 「/「 うちのめ/打ちのめ さ/さ -0.887228 「/「 えさ/餌 」/」 -0.907211 「/「 おりじんきー/オリジンキー =/= -0.899958 「/「 かがく/科学 てき/的 -0.266133 「/「 かんこく/韓国 に/に -0.888484 「/「 くれない/紅 (/( -0.903850 「/「 しゅうかん/週刊 しょうねん/少年 -1.190723 「/「 せかい/世界 きじゅん/基準 -0.887228 「/「 せの/瀬乃 」/」 -0.501234 「/「 たか/多賀 じょう/城 -0.901251 「/「 だれ/誰 か/か -0.785872 「/「 てんし/天使 の/の -1.058534 「/「 ぼうえい/防衛 しょう/省 -0.907687 「/「 ぼっ/ぼっ こぼこ/こぼこ -0.882239 「/「 まんざい/漫才 する/する -0.887228 「/「 みっくみく/みっくみく 」/」 -0.887228 「/「 よばい/夜這い 」/」 -0.382099 」/」 こと/こと を/を -1.269912 」/」 で/で 「/「 -0.479090 」/」 と/と い/い -0.827258 」/」 と/と い/言 -0.863990 」/」 と/と し/し -0.936957 」/」 に/に よ/よ -1.591304 」/」 の/の いみ/意味 -1.591304 」/」 の/の しょくいん/職印 -1.714339 」/」 を/を おこな/行 -1.751722 」/」 を/を かいさい/開催 -1.754829 」/」 を/を きちょう/基調 -1.269668 」/」 (/( しょうがく/小学 -1.249629 」/」 )/) こと/こと -0.903850 」/」 536/536 ぺーじ/頁 -1.128997 」/」 8/8 ー/ー -0.098098 あ/あ っ/っ た/た -0.886682 あ/あ っ/っ て/て -0.200823 あ/あ り/り 、/、 -0.310510 あ/あ る/る -2.288584 あ/あ る/る きいろあざみうま/キイロアザミウマ -2.288584 あ/あ る/る くんしょう/勲章 -2.288584 あ/あ る/る さいしょう/崔鍾 -1.550779 あ/あ る/る と/と -1.627159 あ/あ る/る に/に -2.288584 あ/あ る/る まんが/まんが -2.288584 あ/あ る/る もよう/模様 -1.274276 あ/ア ・/・ りーぐ/リーグ -1.298845 あいだ/間 の/の ちいき/地域 -1.269668 あいて/相手 (/( どーぱんと/ドーパント -0.557769 あいてむ/アイテム と/と し/し -1.297737 あいてむ/アイテム の/の しつ/質 -0.856946 あいりっしゅ/アイリッシュ はいゆう/俳優 と/と -1.292678 あいるらんど/アイルランド で/で そだ/育 -1.284988 あお/青 い/い りゅう/龍 -0.947860 あか/あか )/) 」/」 -1.239894 あかね/茜 の/の ふたり/二人 -1.294694 あきひろ/空広 は/は めぐろ/目黒 -1.298845 あこがれ/憧れ の/の まと/的 -1.299406 あさ/朝 に/に らーる/ラール -0.907687 あさくら/朝倉 か/家 かろう/家老 -0.641976 あた/あた る/る -1.297972 あたえ/与え 、/、 せるてぃっくす/セルティックス -1.292678 あたり/あたり で/で ほくと/ホクト -1.067522 あっか/悪化 さ/さ せ/せ -0.930512 あっぷ/アップ ”/“ を/を -0.484743 あつま/集ま っ/っ て/て -1.238667 あと/後 に/に りま/りま -1.298845 あと/後 の/の いぇーがん/イェーガン -1.274276 あと/後 も/も けいそう/係争 -1.274276 あにか/アニカ ・/・ べんぐつそん/ベングツソン -0.791874 あにめ/アニメ ばん/版 に/に -1.062143 あふりか/アフリカ かんけい/関係 し/史 -0.904946 あふりか/アフリカ せつ/説 に/に -1.297399 あふりか/アフリカ を/を しゅっぱつ/出発 -1.062143 あぶどぅん/アブドゥン =/= なーせる/ナーセル -1.297399 あぶらむし/アブラムシ を/を しょく/食 -0.846542 あぷろーち/アプローチ なんぶ/南部 で/で -0.907211 あまーすと/アマースト ばーぐ/バーグ へ/へ -1.229843 あめりか/アメリカ や/や おーすとらりあ/オーストラリア -0.907687 あめりか/アメリカ れこーど/レコード きょうかい/協会 -1.284988 あやし/怪し い/い そうび/装備 -0.843128 あらぶ/アラブ しゅぎ/主義 が/が -1.128050 あらわ/表 す/す ひょうげん/表現 -0.907687 ある/ある ていど/程度 うごか/動か -1.062143 あるばむ/アルバム ”/“ だぶる/ダブル -0.854612 あわー/アワー ばっく/バック は/は -1.274276 あんな/アンナ ・/・ まりーあ/マリーア -0.246935 い/い -1.299065 い/い 、/、 がーでぃあん/ガーディアン -0.556914 い/い 」/」 と/と -0.843128 い/い いじ/意地 が/が -1.597810 い/い う/う -1.876554 い/い う/う かせつ/仮説 -1.876554 い/い う/う ことば/言葉 -1.876554 い/い う/う しらせ/報せ -1.872141 い/い う/う せつ/説 -1.842084 い/い う/う たか/多賀 -1.876554 い/い う/う はた/秦 -1.872141 い/い う/う ひょうげん/表現 -0.814606 い/い が/が 、/、 -1.234470 い/い く/く こと/こと -0.811445 い/い けいけん/経験 を/を -0.382099 い/い こと/こと を/を -0.811445 い/い そうび/装備 を/を -0.605554 い/い た/た -1.478735 い/い た/た が/が -0.869519 い/い た/た こと/こと -2.076686 い/い た/た こと/事 -2.080555 い/い た/た たかくら/高倉 -0.386631 い/い ため/ため に/に -0.907211 い/い たんぱく/タンパク しつ/質 -0.843128 い/い ちから/力 が/が -0.139839 い/い っ/っ た/た -1.229251 い/い て/て 、/、 -0.667162 い/い て/て い/い -2.131091 い/い て/て おんなのこ/女の子 -0.903474 い/い て/て は/は -0.923074 い/い て/て も/も -0.836381 い/い なか/中 、/、 -1.298845 い/い の/の つうしん/通信 -0.907687 い/い まま/まま そうこう/走行 -1.055604 い/い もの/もの が/が -0.791874 い/い もの/者 に/に -0.977295 い/い ようし/容姿 で/で -0.887228 い/い りゅう/龍 」/」 -0.141260 い/い る/る -2.340558 い/い る/る 「/「 -2.435550 い/い る/る ぎいん/議員 -2.458948 い/い る/る ざいにち/在日 -2.458948 い/い る/る じんぶつ/人物 -2.423909 い/い る/る もの/もの -1.297972 い/位 、/、 おりこん/オリコン -1.299406 い/位 に/に らんくいん/ランクイン -1.232397 い/位 の/の ようかい/妖怪 -1.214310 い/位 を/を かくとく/獲得 -0.890005 い/行 く/く ばあい/場合 -0.256623 い/言 っ/っ た/た -0.081937 い/言 わ/わ れ/れ -1.297737 いぇーがん/イェーガン の/の くび/首 -0.432004 いか/生か し/し た/た -1.103227 いがい/以外 に/に も/も -0.685749 いき/生き て/て い/い -0.907687 いぎりす/イギリス かいきょう/海峡 および/および -0.714481 いぎりす/イギリス で/で は/は -1.197246 いく/いく つ/つ か/か -0.527032 いし/石 -1.297399 いしょう/衣装 を/を きせ/着せ -1.293436 いじ/意地 が/が は/張 -0.568885 いじゅう/移住 し/し て/て -0.641976 いた/至 る/る -1.298845 いたりあ/イタリア の/の すいらい/水雷 -0.963620 いだ/抱 き/き 、/、 -0.544521 いち/一 ごう/号 せい/生 -0.250397 いち/位置 する/する -1.233214 いち/位置 に/に あ/あ -1.292678 いちよ/一代 で/で かいふく/回復 -1.265517 いっしゅ/一種 )/) :/: -1.238667 いっしょ/一緒 に/に りま/りま -1.298845 いってい/一定 の/の きょういく/教育 -1.297399 いのち/命 を/を かけ/懸け -1.097353 いま/今 い/い う/う -0.527032 いみ/意味 -1.243708 いりょう/医療 から/から とおざけ/遠ざけ -0.282511 いりょう/医療 じゅうじ/従事 しゃ/者 -0.256623 いわ/祝 っ/っ た/た -0.907687 いわゆる/いわゆる まっど/マッド さいえんてぃすと/サイエンティスト -1.073754 いん/員 は/は 「/「 -1.075410 いんたい/引退 ご/後 、/、 -0.537816 いんたい/引退 する/する -0.527032 いんちょう/院長 -0.811445 いんなー/インナー まっする/マッスル を/を -0.432004 いんよう/飲用 し/し た/た -0.527032 う/う -0.843128 う/う かせつ/仮説 が/が -0.382099 う/う こと/こと を/を -0.854612 う/う ことば/言葉 は/は -0.811445 う/う しらせ/報せ を/を -0.930512 う/う せつ/説 を/を -0.501234 う/う たか/多賀 じょう/城 -0.566960 う/う など/など の/の -0.907211 う/う なんて/なんて かんがえ/考え -0.882239 う/う はた/秦 ・/・ -0.276087 う/う ひょうげん/表現 と/と -0.714481 うぃーくりーらんきんぐ/ウィークリーランキング で/で は/は -1.297737 うぇい/ウェイ の/の せいひん/製品 -1.294694 うぇい/ウェイ は/は 300/300 -0.907687 うぇすたん/ウェスタン あぷろーち/アプローチ なんぶ/南部 -1.292678 うえ/うえ で/で からき/唐木 -1.299406 うえ/上 に/に すぽーつ/スポーツ -0.389540 うえるず/ウエルズ だっ/だっ た/た -0.641976 うかがえ/伺え る/る -0.719179 うけ/受け た/た -1.259796 うけ/受け た/た と/と -1.144185 うけ/受け て/て も/も -1.128050 うごか/動か す/す こと/事 -0.903850 うち/うち 45/45 しゃ/社 -0.907687 うちとみ/内冨 ひろし/寛 ほう/法 -0.066380 うちのめ/打ちのめ さ/さ れ/れ -1.062143 うっど/ウッド こうつう/交通 しすてむ/システム -1.276953 うつ/移 る/る か/か -1.299065 うなぎ/鰻 、/、 にく/肉 -1.165609 うみず/海津 じょう/城 しゅ/主 -1.298845 うら/裏 の/の いんなー/インナー -1.253675 うれし/うれし く/く おも/思 -1.275192 うんえい/運営 する/する こんてんつ/コンテンツ -0.568885 うんこう/運行 し/し て/て -1.062143 え/え ば/ば かんじゃ/患者 -0.924547 え/得 な/な かっ/かっ -1.299065 えいいちろう/英一郎 、/、 えぎ/榎木 -0.903850 えいが/映画 ふぉっくす/フォックス しゃ/社 -1.214310 えいきょう/影響 を/を うけ/受け -1.231825 えいじゃっくす/エイジャックス に/に たい/対 -1.061463 えいせい/衛生 か/科 たい/隊 -0.811445 えいせい/衛生 わんしょう/腕章 を/を -0.843128 えいぞう/映像 び/美 が/が -1.288569 えいだっく/エイダック で/で 4/4 -1.293436 えき/駅 が/が せっち/設置 -1.274276 えき/駅 ・/・ ぶしゅう/武州 -1.269668 えき/駅 (/( げん/現 -0.863075 えき/駅 )/) の/の -1.215199 えきがく/疫学 てき/的 けんきゅう/研究 -0.856946 えぎ/榎木 こうめい/孝明 と/と -0.556914 えさ/餌 」/」 と/と -1.297399 えぴそーど/エピソード を/を まじえ/交え -0.887228 えら/選 べ/べ 」/」 -0.887228 えん/演 じ/じ た/た -1.293436 えんげき/演劇 が/が しまなか/島中 -0.888484 えんじん/エンジン はそん/破損 (/( -0.891008 えんじん/エンジン ぶろー/ブロー )/) -1.299406 えんだん/縁談 に/に しょうきょく/消極 -0.752207 お/お い/い て/て -1.062143 お/お たがい/互い しゃべ/喋 -0.045295 お/お り/り 、/、 -1.062143 お/逐 しょう/小 かんたい/艦隊 -0.905156 おう/王 そうは/争覇 せん/戦 -0.907211 おうごん/黄金 じゅうし/銃士 たい/隊 -1.284988 おお/多 い/い なか/中 -1.485420 おお/多 く/く おこな/行 -1.506750 おお/多 く/く ふなこし/船越 -1.128842 おおいた/大分 けん/県 りつ/立 -0.811445 おおきな/大きな しょっく/ショック を/を -1.298845 おおく/多く の/の えきがく/疫学 -0.907687 おおさか/大阪 がんつ/ガンツ ちーむ/チーム -0.785872 おおしま/大島 ともこ/智子 の/の -0.843128 おおつき/大槻 ふみひこ/文彦 が/が -0.846542 おぐら/小倉 だいしょうすけ/大賞典 で/で -1.572057 おけ/おけ る/る きんだい/近代 -1.558428 おけ/おけ る/る しょうねん/少年 -1.237667 おこな/行 う/う など/など -0.484743 おこな/行 っ/っ て/て -0.059958 おこな/行 わ/わ れ/れ -0.389540 おそく/遅く だっ/だっ た/た -1.082194 おとずれ/訪れ た/た が/が -1.297399 おにごっこ/鬼ごっこ を/を しかけ/仕掛け -0.907211 おふぃす/オフィス かぶしき/株式 がいしゃ/会社 -0.907687 おふぃす/オフィス けんさく/検索 さいと/サイト -0.894754 おふぃす/オフィス )/) は/は -1.158992 おも/思 い/い 、/、 -1.238927 おや/親 の/の 5/5 -0.907687 および/および うぇすたん/ウェスタン あぷろーち/アプローチ -0.907687 および/及び ちぇすと/チェスト ばすたー/バスター -0.846542 おりこん/オリコン うぃーくりーらんきんぐ/ウィークリーランキング で/で -0.907687 おりこん/オリコン でいりー/デイリー らんきんぐ/ランキング -1.062143 おりじんきー/オリジンキー =/= のいず/ノイズ -0.807006 おわ/終わ ら/ら ず/ず -0.791874 おん/オン らいん/ライン に/に -1.274276 おんがく/音楽 ・/・ ぶよう/舞踊 -0.527032 おんせん/温泉 -1.293436 おんど/温度 が/が きょくたん/極端 -1.297399 おんど/温度 を/を はあく/把握 -1.299406 おんなのこ/女の子 に/に め/目 -1.257472 おーすとらりあ/オーストラリア を/を も/も -0.907687 か/か えら/選 べ/べ -1.062143 か/か かいしゃ/会社 うつ/移 -1.578790 か/か と/と かんちがい/勘違い -1.578790 か/か と/と つきあ/付き合 -1.589134 か/か の/の げんいん/原因 -1.591304 か/か の/の ことな/異な -0.683377 か/化 し/し 、/、 -0.867606 か/家 かろう/家老 -1.592404 か/日 に/に きた/北 -1.592404 か/日 に/に やっと/やっと -0.752207 か/書 い/い て/て -1.181046 か/書 く/く -1.062143 か/科 たい/隊 いん/員 -0.972689 か/科 どうぶつ/動物 が/が -0.907211 か/駆 お/逐 しょう/小 -0.888353 かい/会 」/」 を/を -0.907687 かいきょう/海峡 および/および うぇすたん/ウェスタン -0.066380 かいさい/開催 さ/さ れ/れ -1.295059 かいさい/開催 し/し やく/約 -0.883481 かいしゃ/会社 うつ/移 る/る -1.239441 かいしゃ/会社 に/に よびだ/呼び出 -1.299065 かいしゅう/改修 、/、 ぞうちく/増築 -0.557769 かいどう/街道 と/と し/し -1.299406 かいふく/回復 に/に せいこう/成功 -1.292535 かえ/変え て/て とうげん/桃源 -0.807006 かかわ/かかわ ら/ら ず/ず -0.807006 かかわ/関わ ら/ら ず/ず -0.673577 かがく/科学 てき/的 に/に -1.299406 かくち/各地 に/に いじゅう/移住 -0.738295 かくとく/獲得 し/し 、/、 -0.461930 かくとく/獲得 し/し た/た -0.537816 かくとく/獲得 する/する -1.167827 かけ/かけ られ/られ る/る -1.289163 かけ/懸け た/た きけん/危険 -1.294694 かけい/家系 は/は たえ/絶え -1.232397 かげ/影 の/の ようかい/妖怪 -1.297399 かさい/火災 を/を まね/招 -0.436118 かず/数 おお/多 く/く -0.854612 かせぎ/稼ぎ れおん/レオン は/は -1.265387 かせつ/仮説 が/が 「/「 -0.804008 かた/語 ら/ら れ/れ -0.467087 かっ/かっ た/た -1.863111 かっ/かっ た/た あめりか/アメリカ -1.865556 かっ/かっ た/た ふたり/2人 -0.844263 かつて/かつて そんざい/存在 し/し -0.432004 かつどう/活動 し/し た/た -1.061463 かなか/かなか しゅつじょう/出場 でき/でき -1.124637 かねず/かねず きけん/危険 だ/だ -1.234763 かのう/可能 の/の よう/よう -1.034990 かぶしき/株式 がいしゃ/会社 (/( -0.854612 かみのうがね/上納金 ごうだつ/強奪 は/は -1.229843 かめむし/カメムシ や/や くさかげろう/クサカゲロウ -1.241884 から/から 、/、 1956/1956 -0.846542 から/から あいるらんど/アイルランド で/で -0.905156 から/から かず/数 おお/多 -1.017709 から/から しゅっぱん/出版 さ/さ -0.882239 から/から しゅよう/主要 な/な -1.061463 から/から しーずん/シーズン さいしゅう/最終 -0.907687 から/から ただちに/直ちに じけつ/自決 -0.907687 から/から とおざけ/遠ざけ かねず/かねず -1.298845 から/から の/の じゅうげき/銃撃 -0.907687 から/から のび/伸び きれ/きれ -1.073754 からき/唐木 は/は 「/「 -1.298845 かれ/彼 の/の こうい/行為 -1.087366 かれ/彼 ら/ら を/を -1.299406 かれっじ/カレッジ に/に にゅうせん/入選 -0.527032 かろう/家老 -0.256623 かわ/変わ っ/っ た/た -1.284091 かわいらし/可愛らし い/い ようし/容姿 -0.907687 かん/間 ろせん/路線 ばす/バス -0.863075 かん/館 )/) の/の -1.292535 かんがえ/考え て/て くれ/くれ -1.165800 かんがえ/考え られ/られ な/な -0.907687 かんきょう/環境 ほぜん/保全 りん/林 -0.867606 かんけい/関係 し/史 -1.297399 かんけい/関係 を/を あっか/悪化 -0.383055 かんこく/韓国 に/に おけ/おけ -1.233214 かんさい/関西 に/に あ/あ -1.297399 かんしょ/官所 を/を おとずれ/訪れ -1.296312 かんじゃ/患者 を/を つうじょう/通常 -1.299406 かんたい/艦隊 に/に はいぞく/配属 -0.683377 かんちがい/勘違い し/し 、/、 -0.904946 かんとりー/カントリー すきー/スキー に/に -1.274276 かんとりー/カントリー ・/・ ちゃーと/チャート -1.073754 かんめい/艦名 は/は 「/「 -0.683377 かんりょう/完了 し/し 、/、 -0.432004 かんれん/関連 し/し た/た -2.182099 が/が 、/、 かいしゃ/会社 -2.190544 が/が 、/、 かげ/影 -2.190544 が/が 、/、 こども/子供 -2.190544 が/が 、/、 じゅう/十 -2.190544 が/が 、/、 せんとう/戦闘 -2.182099 が/が 、/、 そるごー/ソルゴー -2.190544 が/が 、/、 とつぜん/突然 -2.190544 が/が 、/、 ばんぞく/蛮族 -2.182099 が/が 、/、 りま/りま -1.269504 が/が 「/「 せの/瀬乃 -1.160760 が/が あ/あ っ/っ -0.160619 が/が あ/あ る/る -0.978759 が/が あふりか/アフリカ を/を -0.883481 が/が うかがえ/伺え る/る -0.791874 が/が えいじゃっくす/エイジャックス に/に -0.791874 が/が えんだん/縁談 に/に -0.436118 が/が おお/多 く/く -0.413601 が/が おこな/行 わ/わ -0.896099 が/が おわ/終わ ら/ら -1.017709 が/が かいさい/開催 さ/さ -0.785872 が/が かのう/可能 の/の -0.791874 が/が きょくたん/極端 に/に -0.907687 が/が こうふく/降伏 さんせい/賛成 -0.066380 が/が さ/さ れ/れ -0.907687 が/が さるがばば/猿ヶ馬場 とうげ/峠 -0.991415 が/が ざざーぐ/ザザーグ と/と -0.846542 が/が しまなか/島中 で/で -0.791874 が/が しんけん/真剣 に/に -0.844263 が/が しんしゅつ/進出 し/し -0.844263 が/が しんりゃく/侵略 し/し -0.907687 が/が せいかつ/生活 かんきょう/環境 -0.876082 が/が せいび/整備 さ/さ -0.876082 が/が せっち/設置 さ/さ -0.791874 が/が せんとう/先頭 に/に -0.501234 が/が たか/多賀 じょう/城 -0.876082 が/が つ/付 さ/さ -1.062143 が/が つか/使 え/え -0.281491 が/が つよ/強 く/く -0.844263 が/が てばな/手放 し/し -0.867606 が/が とうじょう/登場 -0.846542 が/が とくちょう/特徴 で/で -0.846542 が/が とれんとん/トレントン で/で -0.877398 が/が な/な い/い -1.025263 が/が な/な かっ/かっ -1.122476 が/が に/二 ごう/号 -0.907687 が/が にほん/日本 さっかー/サッカー -0.884726 が/が は/張 っ/っ -0.283011 が/が ふぁー/ファー うぇい/ウェイ -0.791874 が/が ふるい/ふるい に/に -0.897382 が/が ふるく/古く から/から -0.333574 が/が ぼっぱつ/勃発 する/する -0.901251 が/が めだ/目立 つ/つ -0.844263 が/が もたら/もたら し/し -0.785872 が/が ゆうれい/ユウレイ の/の -0.907687 が/が わずか/わずか いちよ/一代 -1.290935 がいこく/外国 じん/人 じょくん/叙勲 -1.281504 がいこく/外国 じん/人 や/や -0.527032 がいしゃ/会社 -1.269668 がいしゃ/会社 (/( とうきょう/とうきょう -0.657126 がいちゅう/害虫 で/で あ/あ -1.294694 がいひ/外皮 は/は しろ/白 -1.299065 がいよう/概要 、/、 ないかく/内閣 -0.866989 がくえん/学園 に/に は/は -1.234763 がくせい/学生 の/の よう/よう -1.086900 がす/ガス おんど/温度 が/が -1.032799 がす/ガス おんど/温度 を/を -1.299065 がっかい/学会 、/、 にせんご/2005 -1.292678 がっこう/学校 で/で こうし/講師 -1.298845 がっこう/学校 の/の こうしゃ/校舎 -1.062143 がっこう/学校 へ/へ しんにゅう/侵入 -1.297399 がっこう/学校 を/を そつぎょう/卒業 -1.569247 がつ/月 に/に おこな/行 -1.592404 がつ/月 に/に かんりょう/完了 -1.298845 がつ/月 の/の げっかん/月間 -1.061463 がつ/月 10/10 か/日 -0.907211 がつ/月 13/13 にち/日 -1.228844 がつ/月 2/2 か/日 -0.337828 がつ/月 26/26 にち/日 -1.274276 がまーる/ガマール ・/・ あぶどぅん/アブドゥン -1.298845 がめとさいと/ガメトサイト の/の けんしゅつ/検出 -0.785872 がんつ/ガンツ ちーむ/チーム の/の -1.103227 がんねん/元年 に/に も/も -0.856946 がーでぃあん/ガーディアン たち/達 と/と -1.240925 き/き 、/、 ぴくる/ピクル -0.666489 き/き た/た -0.256623 き/切 っ/っ た/た -1.229843 きいろあざみうま/キイロアザミウマ や/や はだに/ハダニ -0.904946 きかん/期間 ちゅう/中 に/に -1.299406 きかん/期間 に/に わた/亘 -0.785872 きかん/機関 ほう/砲 の/の -0.907211 きけん/危険 ぎょうむ/業務 じゅうじ/従事 -1.096270 きけん/危険 だ/だ -1.283178 きけん/危険 な/な おにごっこ/鬼ごっこ -0.882239 きしゃ/記者 あにか/アニカ ・/・ -1.298845 きじゅん/基準 の/の ふぃじかる/フィジカル -0.673885 きせ/着せ られ/られ た/た -0.762814 きそ/基礎 と/と な/な -0.283011 きた/北 たいへい/太平 よう/洋 -1.209427 きち/基地 に/に 「/「 -0.557769 きちょう/基調 と/と し/し -0.950285 きつりん/吉林 しょう/省 に/に -1.157245 きめ/決め た/た ため/ため -1.293436 きゃらくたー/キャラクター が/が とうじょう/登場 -1.062143 きゃらくたー/キャラクター にんき/人気 とうひょう/投票 -0.907211 きゅうしゅう/九州 だいがく/大学 ほうせい/法政 -1.296312 きょういく/教育 を/を しゅうりょう/終了 -0.762814 きょういん/教員 と/と な/な -1.293436 きょうえん/共演 が/が めだ/目立 -0.936957 きょうかい/協会 に/に よ/よ -1.297399 きょうみ/興味 を/を いだ/抱 -0.907687 きょうわ/共和 こく/国 きつりん/吉林 -0.527032 きょく/局 -1.299406 きょくたん/極端 に/に じょうしょう/上昇 -1.154984 きょしゅ/挙手 し/し な/な -0.846542 きり/切り けいしき/形式 で/で -1.165609 きれ/きれ ず/ず 7/7 -0.066380 きろく/記録 さ/さ れ/れ -0.738295 きろく/記録 し/し 、/、 -1.583911 きろく/記録 し/し はつ/初 -0.907687 きん/金 かせぎ/稼ぎ れおん/レオン -0.684383 きんだい/近代 てき/的 な/な -1.219414 きんむ/勤務 、/、 その/その -1.191815 ぎいん/議員 に/に な/な -1.298845 ぎいん/議員 の/の ひとり/1人 -1.268411 ぎいん/議員 も/も おお/多 -0.950285 ぎかい/議会 ぎいん/議員 に/に -0.791874 ぎむざ/ギムザ せんしょく/染色 に/に -0.282511 ぎょうむ/業務 じゅうじ/従事 しゃ/者 -1.297399 ぎょらい/魚雷 を/を はっしゃ/発射 -0.527032 く/く -0.413601 く/く おこな/行 わ/わ -0.882239 く/く おも/思 い/い -0.882239 く/く かわいらし/可愛らし い/い -1.261445 く/く こと/こと はっぴょう/発表 -1.241356 く/く する/する 」/」 -0.846542 く/く どくだん/独断 で/で -0.877398 く/く な/な い/い -1.205018 く/く な/な り/り -0.368297 く/く ばあい/場合 も/も -0.907687 く/く ふなこし/船越 えいいちろう/英一郎 -1.298845 く/区 の/の ほくぶ/北部 -1.284988 く/食 い/い いじ/意地 -0.907687 くうはく/  こうち/高知 けいば/競馬 -0.566960 くさかげろう/クサカゲロウ など/など の/の -0.989291 くせ/癖 が/が あ/あ -0.856946 くにのみや/久邇宮 たかおう/多嘉王 と/と -1.298845 くび/首 の/の しょうそく/消息 -1.297399 くび/首 を/を たて/縦 -0.989291 くぶん/区分 が/が あ/あ -1.286949 くみあわせ/組み合わせ た/た もの/もの -0.568885 くりかえ/繰り返 し/し て/て -0.527032 くる/くる -1.297399 くるせいど/クルセイド を/を たちあげ/立ち上げ -0.685749 くれ/くれ て/て い/い -1.269668 くれない/紅 (/( あか/あか -1.061463 くろす/クロス かんとりー/カントリー すきー/スキー -0.867606 くん/勲 きょく/局 -1.274276 くんしょう/勲章 ・/・ ほうしょう/褒章 -1.293436 ぐるー/グルー が/が てばな/手放 -0.785872 ぐん/軍 たゆう/太夫 の/の -1.299406 ぐん/軍 に/に はいぼく/敗北 -1.269668 ぐんぶ/軍部 (/( しれい/司令 -1.291904 けい/計 で/で きろく/記録 -0.905156 けい/計 35/35 にん/人 -1.297399 けいけん/経験 を/を むだ/無駄 -1.292678 けいごうきん/軽合金 で/で けいりょう/軽量 -0.657126 けいしき/形式 で/で あ/あ -0.843128 けいじ/刑事 やく/役 が/が -1.293436 けいそう/係争 が/が おわ/終わ -1.298845 けいたい/形態 の/の がいひ/外皮 -0.977295 けいば/競馬 じょう/場 で/で -0.844263 けいりょう/軽量 か/化 し/し -0.785872 けっきゅう/血球 ない/内 の/の -0.568885 けっこん/結婚 し/し て/て -0.762814 けっせい/結成 と/と な/な -0.907687 けつ/血 とまつ/塗抹 ぎむざ/ギムザ -1.297399 けつだん/決断 を/を せま/迫 -1.299406 けん/剣 に/に たとえ/喩え -1.298845 けん/剣 の/の たつじん/達人 -0.527032 けん/県 -0.907687 けん/県 りつ/立 のう/農 -1.269668 けん/県 (/( とうなーけん/とうなーけん -1.293436 けんきゅう/研究 が/が ふるく/古く -0.683377 けんきゅう/研究 し/し 、/、 -0.856946 けんきゅう/研究 りょういき/領域 と/と -0.907687 けんきゅう/研究 71/71 まき/巻 -0.811445 けんさく/検索 さいと/サイト を/を -0.936957 けんしゅつ/検出 に/に よ/よ -0.811445 けんぞう/建造 ひよう/費用 を/を -0.066380 けんとう/検討 さ/さ れ/れ -0.811445 げいのう/芸能 じょうほう/情報 を/を -1.068422 げっかん/月間 だりつ/打率 は/は -1.031385 げつれい/月例 しょう/賞 で/で -1.062143 げん/現 :/: ひがしまつやま/東松山 -1.291904 げんいん/原因 で/で はいき/排気 -0.762814 げんいん/原因 と/と な/な -1.298845 げんえき/現役 の/の しゅうへい/州兵 -1.299406 げんざい/現在 に/に いた/至 -1.294694 げんざい/現在 は/は まんが/漫画 -0.283011 げんざい/現在 ふぁー/ファー うぇい/ウェイ -1.274276 げんざい/現在 も/も げんえき/現役 -0.725392 こ/子 は/は 、/、 -0.557769 こう/公 と/と し/し -1.221578 こうい/行為 に/に つ/つ -0.557769 こうえん/公園 と/と し/し -1.223530 こうし/講師 を/を つとめ/務め -0.762814 こうしゃ/校舎 と/と な/な -1.299406 こうせい/光成 に/に しがん/志願 -0.066380 こうせい/構成 さ/さ れ/れ -1.288688 こうぞう/構造 を/を けんきゅう/研究 -0.907211 こうち/高知 けいば/競馬 じょう/場 -0.854612 こうつう/交通 しすてむ/システム は/は -0.889744 こうつう/交通 もう/網 も/も -1.274276 こうでら/国府 も/も いま/今 -0.882239 こうとう/高等 おんがく/音楽 ・/・ -0.791874 こうふく/降伏 さんせい/賛成 に/に -1.125201 こうめい/孝明 と/と の/の -1.299065 こうりゃん/コウリャン 、/、 そるがむ/ソルガム -0.682366 こうれい/高齢 しゃ/者 じょくん/叙勲 -1.292535 こえ/超え て/て みの/美濃 -0.905156 こく/国 きつりん/吉林 しょう/省 -0.684383 こくさい/国際 てき/的 な/な -0.907687 こくりつ/国立 こうとう/高等 おんがく/音楽 -1.238667 こしゅう/湖州 に/に いち/位置 -1.321491 こと/こと が/が な/な -1.580760 こと/こと が/が にほん/日本 -1.191815 こと/こと に/に な/な -1.241733 こと/こと の/の な/な -1.294694 こと/こと は/は もと/元 -0.844263 こと/こと はっぴょう/発表 し/し -1.274276 こと/こと も/も はっかく/発覚 -2.135156 こと/こと を/を あらわ/表 -2.127734 こと/こと を/を い/言 -2.135156 こと/こと を/を うれし/うれし -2.135156 こと/こと を/を こうせい/光成 -1.774686 こと/こと を/を し/知 -2.135156 こと/こと を/を じっしょう/実証 -1.777962 こと/こと を/を はじめ/始め -2.135156 こと/こと を/を めざ/目指 -1.580760 こと/事 が/が うかがえ/伺え -1.580760 こと/事 が/が かのう/可能 -0.256623 ことな/異な っ/っ た/た -0.725392 ことば/言葉 は/は 、/、 -1.297737 こども/子供 の/の ころ/頃 -1.193055 この/この こと/こと は/は -0.843128 この/この たたかい/闘い が/が -0.791874 この/この とき/とき に/に -0.854612 この/この はいせん/敗戦 は/は -0.461333 こふん/古墳 じだい/時代 の/の -1.134412 こぼこ/こぼこ に/に し/し -0.843128 こみっく/コミック まーけっと/マーケット が/が -0.791874 これ/これ いがい/以外 に/に -1.590659 これ/これ に/に くび/首 -1.040971 これ/これ に/に よ/よ -1.299065 ころ/頃 、/、 ぺてぃ/ペティ -1.243708 ころ/頃 から/から あいるらんど/アイルランド -0.907687 ころ/頃 はせがわ/長谷川 しゅうじ/修二 -1.294694 こんこーど/コンコード は/は ほっぽう/北方 -0.907211 こんてんつ/コンテンツ はいしん/配信 がいしゃ/会社 -0.972689 こんぴゅーた/コンピュータ きゃらくたー/キャラクター が/が -1.291641 こーひー/コーヒー を/を ちょう/長 -1.219414 ご/後 、/、 その/その -0.907687 ご/後 しょうめん/正面 すたんど/スタンド -0.866989 ご/後 に/に は/は -1.298845 ご/後 の/の ぶんせき/分析 -0.725392 ご/後 は/は 、/、 -0.791874 ご/後 らずふぁーど/ラズファード に/に -1.111421 ごう/号 せい/生 と/と -0.991023 ごう/号 せい/生 の/の -1.170687 ごう/号 )/) で/で -0.903850 ごう/号 533/533 ぺーじ/頁 -1.294694 ごうだつ/強奪 は/は だいかん/代官 -0.432004 ごうりゅう/合流 し/し た/た -1.299406 ごと/毎 に/に はいふ/配布 -1.298516 ごろ/ごろ に/に ひと/ヒト -1.254380 さ/さ せ/せ た/た -1.251468 さ/さ せ/せ て/て -0.752524 さ/さ れ/れ 、/、 -2.409722 さ/さ れ/れ 「/「 -0.669245 さ/さ れ/れ た/た -0.594774 さ/さ れ/れ て/て -0.668873 さ/さ れ/れ る/る -1.297737 さい/歳 の/の とき/時 -1.292972 さいあく/最悪 の/の ばあい/場合 -0.785872 さいえんてぃすと/サイエンティスト たいぷ/タイプ の/の -1.295369 さいかい/再会 し/し よろこ/喜 -1.128050 さいしゅう/最終 せん/戦 まで/まで -0.673577 さいしゅう/最終 てき/的 に/に -1.299406 さいしょ/最初 に/に ぶんげい/文芸 -0.893546 さいしょう/崔鍾 しょく/植 「/「 -1.298845 さいしん/最新 の/の げいのう/芸能 -1.297399 さいと/サイト を/を うんえい/運営 -0.568885 さいよう/採用 し/し て/て -0.762814 さくひん/作品 と/と な/な -0.907687 さくひん/作品 よみ/読み きり/切り -0.657126 さしず/指図 で/で あ/あ -1.296312 さっかー/サッカー を/を つよ/強 -0.811445 さるがばば/猿ヶ馬場 とうげ/峠 を/を -0.867606 さんか/参加 めんばー/メンバー -1.297399 さんず/サンズ を/を えん/演 -1.299406 さんせい/賛成 に/に かわ/変わ -0.785872 さんちょう/山頂 ふきん/付近 の/の -1.240960 さんでー/サンデー 」/」 (/( -0.907687 ざいにち/在日 べいぐん/米軍 きち/基地 -1.292419 ざざーぐ/ザザーグ と/と さいかい/再会 -1.293746 ざざーぐ/ザザーグ は/は ぶか/部下 -1.297399 ざる/ざる を/を え/得 -2.253357 し/し 、/、 あめりか/アメリカ -2.253357 し/し 、/、 いんたい/引退 -2.263324 し/し 、/、 こんこーど/コンコード -2.253357 し/し 、/、 しーずん/シーズン -2.212661 し/し 、/、 せん/戦 -2.263324 し/し 、/、 せんない/船内 -2.263324 し/し 、/、 つづ/続 -2.263324 し/し 、/、 てれ/照れ -2.263324 し/し 、/、 とうさつ/盗撮 -2.263324 し/し 、/、 なんぼくちょう/南北朝 -2.253357 し/し 、/、 12/12 -0.425880 し/し た/た -2.271890 し/し た/た 「/「 -2.436238 し/し た/た あと/後 -1.836693 し/し た/た えいせい/衛生 -2.481360 し/し た/た えんげき/演劇 -2.436238 し/し た/た けん/県 -1.754622 し/し た/た こと/こと -2.481360 し/し た/た せんれつ/鮮烈 -1.778360 し/し た/た ため/ため -1.623943 し/し た/た と/と -1.461171 し/し た/た の/の -1.426360 し/し た/た ばあい/場合 -2.481360 し/し た/た ふしん/不審 -2.481360 し/し た/た まーくるんど/マークルンド -2.481360 し/し た/た ろんぶん/論文 -1.760459 し/し た/た (/( -1.128842 し/し だい/大 ひっと/ヒット -0.836381 し/し つつ/つつ 、/、 -1.277920 し/し て/て 、/、 -0.538614 し/し て/て い/い -2.520388 し/し て/て いき/生き -0.869252 し/し て/て お/お -2.520388 し/し て/て ぎょらい/魚雷 -2.520388 し/し て/て けんぞう/建造 -2.510941 し/し て/て し/知 -2.520388 し/し て/て しんとう/浸透 -2.520388 し/し て/て たたか/戦 -2.520388 し/し て/て だいよう/代用 -2.510941 し/し て/て つか/使 -2.520388 し/し て/て とうろく/登録 -2.520388 し/し て/て どうろ/道路 -1.646125 し/し て/て は/は -2.520388 し/し て/て ひ/妃 -2.520388 し/し て/て ふさわし/ふさわし -2.520388 し/し て/て やよい/弥生 -1.497394 し/し て/て やん/やん -0.170423 し/し な/な い/い -0.791874 し/し にんむ/任務 に/に -0.265150 し/し はつ/初 の/の -1.061463 し/し やく/約 5/5 -0.907211 し/し よろこ/喜 ん/ん -0.437358 し/し 8/8 がつ/月 -0.527032 し/史 -1.294694 し/市 は/は よくちょう/翌朝 -0.139839 し/知 っ/っ た/た -0.804008 し/知 ら/ら れ/れ -0.714481 しあい/試合 で/で は/は -1.093328 しい/強い られ/られ 、/、 -0.866989 しいき/市域 に/に は/は -1.081933 しかい/司会 で/で 、/、 -0.641976 しかけ/仕掛け る/る -1.240925 しかし/しかし 、/、 この/この -0.843128 しかし/しかし しんかい/晋海 が/が -0.868032 しかし/しかし その/その ころ/頃 -0.963620 しかし/しかし ながら/ながら 、/、 -0.791874 しかし/しかし なつば/夏場 に/に -0.972689 しかし/しかし みちの/美智乃 が/が -0.537816 しがん/志願 する/する -1.086584 しき/指揮 する/する の/の -1.258019 しきゅう/支給 する/する から/から -0.989291 しじ/指示 が/が あ/あ -1.294694 しすてむ/システム は/は とりにだーど/トリニダード -0.856946 しぜん/自然 こうえん/公園 と/と -1.229843 しぜん/自然 や/や ふうけい/風景 -1.299065 しぞんと/シゾント 、/、 とろふぉぞいと/トロフォゾイト -0.907211 しっこう/執行 ゆうよ/猶予 きかん/期間 -1.297399 しつ/室 を/を ぼうご/防護 -1.450848 しつ/質 に/に つ/つ -1.040971 しつ/質 に/に よ/よ -1.298845 してい/姉弟 の/の めんどう/面倒 -0.066380 してい/指定 さ/さ れ/れ -1.259451 しどう/指導 も/も おこな/行 -1.296312 しなりお/シナリオ を/を か/書 -1.298845 しはん/市販 の/の みんせい/民生 -1.298845 しひょう/指標 の/の ひと/一 -0.265150 しほう/司法 せいど/制度 の/の -1.298845 しほう/司法 の/の れきし/歴史 -0.552919 しぼう/死亡 じょくん/叙勲 、/、 -1.298845 しまい/姉妹 の/の ちちおや/父親 -0.856946 しまだ/島田 しんすけ/紳助 と/と -1.292678 しまなか/島中 で/で じょうえん/上演 -1.128842 しめ/示 す/す しひょう/指標 -1.299065 しゃ/社 、/、 わーなー/ワーナー -1.263608 しゃ/社 から/から 、/、 -1.487246 しゃ/社 から/から しゅっぱん/出版 -1.292477 しゃ/社 が/が ふぁー/ファー -0.890683 しゃ/者 が/が 、/、 -1.578903 しゃ/者 が/が つか/使 -0.255148 しゃ/者 じょくん/叙勲 、/、 -1.298516 しゃ/者 に/に せいひん/製品 -1.298845 しゃ/者 の/の うち/うち -1.297399 しゃかい/社会 を/を むす/結 -0.256623 しゃべ/喋 っ/っ た/た -0.811445 しゃりょう/車両 かさい/火災 を/を -0.907687 しゃんはい/上海 どくしょう/独唱 かい/会 -0.557769 しゅ/主 と/と し/し -0.907687 しゅ/主 もり/森 ながよし/長可 -0.811445 しゅい/首位 だしゃ/打者 を/を -1.214310 しゅい/首位 を/を かくとく/獲得 -1.167053 しゅうかん/週刊 しょうねん/少年 さんでー/サンデー -0.846542 しゅうじ/修二 めいぎ/名義 で/で -1.288348 しゅうだん/集団 が/が あふりか/アフリカ -1.298845 しゅうちゃく/執着 の/の すえ/末 -0.557769 しゅうへい/州兵 と/と し/し -1.299406 しゅうへん/周辺 に/に ぼうだん/防弾 -1.294694 しゅうり/修理 は/は 1944/1944 -1.207676 しゅうりょう/終了 ご/後 らずふぁーど/ラズファード -0.432004 しゅうりょう/終了 し/し た/た -1.292477 しゅぎ/主義 が/が つよ/強 -0.856946 しゅじん/主人 こう/公 と/と -1.299065 しゅっこう/出航 、/、 えいだっく/エイダック -0.683377 しゅっぱつ/出発 し/し 、/、 -0.066380 しゅっぱん/出版 さ/さ れ/れ -0.541040 しゅっぱん/出版 しゃ/社 から/から -0.683377 しゅつじょう/出場 し/し 、/、 -1.026263 しゅつじょう/出場 でき/でき な/な -1.283178 しゅよう/主要 な/な かいどう/街道 -0.811445 しゅりゅう/手榴 だん/弾 を/を -0.527032 しゅヴぇーげりん/シュヴェーゲリン -0.791874 しょう/小 かんたい/艦隊 に/に -1.165609 しょう/小 がっこう/学校 へ/へ -0.791874 しょう/省 こしゅう/湖州 に/に -1.299406 しょう/省 に/に かつて/かつて -0.907687 しょう/省 りくじょう/陸上 ばくりょう/幕僚 -0.907687 しょう/賞 きん/金 かせぎ/稼ぎ -0.907687 しょう/賞 くん/勲 きょく/局 -0.657126 しょう/賞 で/で あ/あ -0.537816 しょうかい/紹介 する/する -0.891008 しょうがく/小学 かん/館 )/) -1.131736 しょうきょく/消極 てき/的 で/で -0.527032 しょうじょ/少女 -1.294694 しょうせつ/小説 は/は こくさい/国際 -1.294694 しょうそく/消息 は/は ふめい/不明 -0.887228 しょうねん/少年 さんでー/サンデー 」/」 -1.206363 しょうねん/少年 しほう/司法 せいど/制度 -0.991023 しょうねん/少年 しほう/司法 の/の -1.034990 しょうねん/少年 れい/令 (/( -0.791874 しょうめん/正面 すたんど/スタンド に/に -0.888484 しょうわ/昭和 17/17 (/( -0.882239 しょうわ/昭和 31/31 ねん/年 -0.882239 しょうわ/昭和 62/62 ねん/年 -1.268410 しょく/植 「/「 かんこく/韓国 -1.275192 しょく/食 する/する ひめはな/ヒメハナ -1.293436 しょくいん/職印 が/が つ/付 -1.228844 しょくばい/触媒 や/や えんじん/エンジン -1.281052 しょけい/処刑 の/の その/その -1.297399 しょっく/ショック を/を あたえ/与え -0.066380 しよう/使用 さ/さ れ/れ -0.568885 しよう/使用 し/し て/て -1.297399 しらせ/報せ を/を でんれい/伝令 -0.891008 しれい/司令 ぶ/部 )/) -1.284988 しろ/白 い/い たんぱく/タンパク -0.936957 しろう/四郎 に/に よ/よ -1.293436 しんかい/晋海 が/が わずか/わずか -0.907687 しんき/新規 さんか/参加 めんばー/メンバー -1.299406 しんけん/真剣 に/に へんじ/返事 -0.432004 しんしゅつ/進出 し/し た/た -0.907687 しんじん/新人 おう/王 そうは/争覇 -1.292419 しんすけ/紳助 と/と おおしま/大島 -1.294694 しんだん/診断 は/は まっしょう/末梢 -0.568885 しんとう/浸透 し/し て/て -0.683377 しんにゅう/侵入 し/し 、/、 -0.683377 しんりゃく/侵略 し/し 、/、 -0.684383 しんわ/神話 てき/的 な/な -1.058534 しーずん/シーズン さいしゅう/最終 せん/戦 -0.846542 しーずん/シーズン つうさん/通算 で/で -1.293471 じ/じ た/た まいける/マイケル -1.298845 じ/寺 の/の へん/変 -0.907687 じ/時 57/57 ふん/分 -1.190723 じ/次 せかい/世界 たいせん/大戦 -0.905156 じ/次 ちゅうとう/中東 せんそう/戦争 -0.846542 じかん/時間 どらま/ドラマ で/で -1.196458 じぎょう/事業 しゃ/者 に/に -1.185886 じぎょう/事業 しゃ/者 の/の -1.270948 じけつ/自決 する/する よう/よう -0.977295 じしん/地震 けい/計 で/で -1.758990 じだい/時代 の/の せいじ/政治 -1.733839 じだい/時代 の/の たか/多賀 -1.604627 じだい/時代 の/の 5/5 -1.274276 じだい/時代 ・/・ こふん/古墳 -1.021110 じっしょう/実証 する/する ため/ため -1.108987 じてん/時点 で/で の/の -1.223530 じぶん/自分 を/を よ/呼 -1.298845 じゅう/中 の/の じしん/地震 -0.791874 じゅう/十 しろう/四郎 に/に -0.537816 じゅうぐん/従軍 する/する -1.214310 じゅうげき/銃撃 を/を うけ/受け -1.058534 じゅうし/銃士 たい/隊 ちょう/長 -0.707809 じゅうじ/従事 しゃ/者 が/が -0.737147 じゅうじ/従事 しゃ/者 じょくん/叙勲 -0.902549 じょ/序 れつ/列 だい/第 -1.291904 じょう/上 で/で しよう/使用 -1.266612 じょう/城 」/」 8/8 -1.062143 じょう/城 しゅ/主 もり/森 -0.785872 じょう/城 せいちょう/政庁 の/の -1.297399 じょう/城 を/を ちょうさ/調査 -1.299065 じょう/場 、/、 ひろば/広場 -1.282260 じょう/場 で/で おこな/行 -0.066380 じょうえん/上演 さ/さ れ/れ -0.432004 じょうしょう/上昇 し/し た/た -1.297399 じょうほう/情報 を/を しょうかい/紹介 -1.872395 じょくん/叙勲 、/、 がいこく/外国 -1.855003 じょくん/叙勲 、/、 きけん/危険 -1.876514 じょくん/叙勲 、/、 こうれい/高齢 -1.876514 じょくん/叙勲 、/、 しぼう/死亡 -1.298845 じょくん/叙勲 の/の くぶん/区分 -0.725392 じょくん/叙勲 は/は 、/、 -0.785872 じょし/女子 がくせい/学生 の/の -0.866989 じょせい/女性 に/に は/は -1.274276 じょなさん/ジョナサン ・/・ うえるず/ウエルズ -1.014358 じん/人 じょくん/叙勲 の/の -1.055604 じん/人 だ/だ が/が -1.229843 じん/人 や/や なおひろ/直弘 -1.297399 じんせい/人生 を/を ぼくし/牧師 -0.657126 じんぶつ/人物 で/で あ/あ -0.907687 じんみん/人民 きょうわ/共和 こく/国 -0.274078 す/す こと/事 が/が -0.785872 す/す しひょう/指標 の/の -0.276087 す/す ひょうげん/表現 と/と -0.902549 すいらい/水雷 てい/艇 3/3 -1.269071 すう/数 ねん/年 ご/後 -1.240925 すえ/末 、/、 ぴくる/ピクル -1.276507 すき/好き な/な もの/もの -0.889744 すきー/スキー しどう/指導 も/も -1.299406 すきー/スキー に/に かんれん/関連 -1.298845 すこてぃあ/スコティア の/の あいだ/間 -0.882239 すご/凄 まじ/まじ い/い -1.299406 すたんど/スタンド に/に はい/入 -1.274276 すぽーつ/スポーツ も/も ばんのう/万能 -0.046487 する/する -1.254584 する/する 」/」 こと/こと -1.207863 する/する か/か かいしゃ/会社 -1.243708 する/する から/から ただちに/直ちに -0.814606 する/する が/が 、/、 -1.099381 する/する ぎいん/議員 も/も -0.382099 する/する こと/こと を/を -0.907687 する/する こんてんつ/コンテンツ はいしん/配信 -0.907687 する/する ぜんこう/全校 せいと/生徒 -1.429059 する/する ため/ため たいえき/退役 -0.413495 する/する ため/ため に/に -0.362968 する/する と/と 、/、 -1.138043 する/する の/の は/は -0.907687 する/する ひめはな/ヒメハナ かめむし/カメムシ -1.166473 する/する よう/よう しじ/指示 -1.293436 するたん/スルタン が/が せんとう/先頭 -1.240925 ず/ず 、/、 これ/これ -0.791874 ず/ず つね/常 に/に -0.907687 ず/ず ふみやす/文保 がんねん/元年 -1.061463 ず/ず 7/7 ちゃく/着 -1.292659 せ/せ た/た げんいん/原因 -1.288172 せ/せ て/て げんざい/現在 -1.281769 せ/せ る/る ため/ため -1.054828 せい/制 れい/令 だい/第 -0.903850 せい/性 ほしょく/捕食 しゃ/者 -1.292419 せい/生 と/と いち/一 -1.297737 せい/生 の/の かんけい/関係 -0.907687 せいかつ/生活 かんきょう/環境 ほぜん/保全 -1.067522 せいこう/成功 さ/さ せ/せ -0.811445 せいじ/政治 こうぞう/構造 を/を -0.882239 せいせき/成績 ゆうしゅう/優秀 な/な -1.297737 せいちょう/政庁 の/の いち/位置 -1.298845 せいと/生徒 の/の あこがれ/憧れ -1.591304 せいど/制度 の/の がいよう/概要 -1.591304 せいど/制度 の/の きそ/基礎 -0.381124 せいひん/製品 ・/・ そりゅーしょん/ソリューション -0.066380 せいび/整備 さ/さ れ/れ -0.989291 せいふく/制服 が/が あ/あ -1.299406 せいまご/世孫 に/に あた/あた -1.299406 せいむ/政務 に/に せんねん/専念 -0.791874 せかい/世界 かくち/各地 に/に -0.785872 せかい/世界 きじゅん/基準 の/の -0.785872 せかい/世界 じゅう/中 の/の -0.843128 せかい/世界 たいせん/大戦 が/が -0.907687 せかい/世界 とっぷ/トップ 50/50 -1.274276 せかんど/セカンド ・/・ あるばむ/アルバム -0.907687 せき/赤 けっきゅう/血球 ない/内 -1.293436 せき/隻 が/が えいじゃっくす/エイジャックス -0.066380 せっけい/設計 さ/さ れ/れ -1.128842 せっこう/浙江 しょう/省 こしゅう/湖州 -0.066380 せっち/設置 さ/さ れ/れ -0.936957 せつ/説 に/に よ/よ -1.297399 せつ/説 を/を となえ/唱え -1.295369 せつやく/節約 し/し つつ/つつ -1.101263 せの/瀬乃 」/」 に/に -0.804008 せま/迫 ら/ら れ/れ -0.991415 せらー/セラー さくひん/作品 と/と -1.292419 せるてぃっくす/セルティックス と/と あわー/アワー -1.299406 せるてぃっくす/セルティックス に/に とりわけ/取り分け -0.256623 せん/戦 っ/っ た/た -1.298516 せん/戦 に/に しゅつじょう/出場 -0.941668 せん/戦 まで/まで の/の -1.012776 せん/船 から/から の/の -0.781742 せんきゅうひゃくきゅうじゅうきゅう/1999 ねん/年 に/に -0.637200 せんきゅうひゃくきゅうじゅうはち/1998 ねん/年 )/) -0.839779 せんきゅうひゃくはちじゅうなな/1987 ねん/年 (/( -0.781742 せんきゅうひゃくはちじゅうはち/1988 ねん/年 に/に -0.432004 せんし/戦死 し/し た/た -1.297399 せんしゅ/選手 を/を そだて/育て -0.936957 せんしょく/染色 に/に よ/よ -1.297399 せんす/センス を/を も/持 -1.179572 せんそう/戦争 が/が ぼっぱつ/勃発 -1.292678 せんそう/戦争 で/で せんし/戦死 -1.299406 せんそう/戦争 に/に じゅうぐん/従軍 -1.294694 せんたい/船体 は/は けいごうきん/軽合金 -1.299406 せんとう/先頭 に/に た/立 -1.054828 せんとう/戦闘 しゅうりょう/終了 ご/後 -1.298845 せんない/船内 の/の ないそう/内装 -1.021110 せんねん/専念 する/する ため/ため -1.061185 せんもん/専門 がっこう/学校 で/で -1.283178 せんれつ/鮮烈 な/な えいぞう/映像 -1.062143 ぜん/全 さくひん/作品 よみ/読み -0.907687 ぜん/全 にっぽん/日本 しんじん/新人 -0.876082 ぜん/全 ひてい/否定 さ/さ -1.293436 ぜんいん/全員 が/が こうふく/降伏 -0.785872 ぜんこう/全校 せいと/生徒 の/の -1.297399 そうこう/走行 を/を つづけ/続け -0.811445 そうだ/操舵 しつ/室 を/を -1.263160 そうだん/相談 な/な く/く -0.537816 そうちゃく/装着 する/する -0.950285 そうは/争覇 せん/戦 に/に -1.297399 そうび/装備 を/を まと/まと -1.292419 そこく/祖国 と/と き/切 -1.297972 そして/そして 、/、 やく/約 -0.836381 そだ/育 ち/ち 、/、 -1.105458 そだて/育て る/る こと/こと -0.527032 そつ/卒 -0.568885 そつぎょう/卒業 し/し て/て -1.099381 その/その あと/後 も/も -0.846542 その/その うえ/うえ で/で -0.811445 その/その えいきょう/影響 を/を -0.854612 その/その かけい/家系 は/は -1.144035 その/その ころ/頃 、/、 -1.303611 その/その ころ/頃 はせがわ/長谷川 -1.427535 その/その ご/後 しょうめん/正面 -1.272110 その/その ご/後 は/は -0.846542 その/その じてん/時点 で/で -0.882239 その/その にが/苦 い/い -0.854612 その/その ば/場 は/は -0.785872 その/その ひ/日 の/の -0.785872 そらも/空燃 ひ/比 の/の -1.586351 そりゅーしょん/ソリューション を/を しよう/使用 -1.588472 そりゅーしょん/ソリューション を/を ていきょう/提供 -1.298845 そるがむ/ソルガム の/の いっしゅ/一種 -1.299406 そるごー/ソルゴー に/に あつま/集ま -1.269668 そるごー/ソルゴー (/( こうりゃん/コウリャン -1.297338 それ/それ まで/まで お/お -1.302427 それ/それ まで/まで ひと/ヒト -0.432004 そんざい/存在 し/し た/た -1.297399 ぞうちく/増築 を/を へ/経 -0.011164 た/た -1.591735 た/た 、/、 いわゆる/いわゆる -1.591735 た/た 、/、 でんげき/電撃 -1.257773 た/た 「/「 せかい/世界 -1.244809 た/た 」/」 )/) -0.941668 た/た あと/後 の/の -1.049327 た/た あめりか/アメリカ や/や -0.907211 た/た うみず/海津 じょう/城 -1.206363 た/た えいせい/衛生 か/科 -1.207311 た/た えいせい/衛生 わんしょう/腕章 -0.843128 た/た えんげき/演劇 が/が -0.171414 た/た が/が 、/、 -1.087283 た/た きけん/危険 な/な -1.064053 た/た けん/県 -0.991415 た/た げんいん/原因 と/と -1.114275 た/た こと/こと が/が -1.465620 た/た こと/こと の/の -1.767203 た/た こと/こと も/も -0.323354 た/た こと/こと を/を -0.274078 た/た こと/事 が/が -0.854612 た/た し/市 は/は -0.811445 た/た せんしゅ/選手 を/を -0.882239 た/た せんれつ/鮮烈 な/な -1.128842 た/た ぜん/全 にっぽん/日本 -0.907687 た/た たかくら/高倉 としあき/敏明 -0.309645 た/た ため/ため 、/、 -0.684028 た/た ため/ため に/に -0.191116 た/た と/と い/い -0.836381 た/た ところ/ところ 、/、 -1.518004 た/た の/の で/で -0.532992 た/た の/の は/は -1.183068 た/た ばあい/場合 、/、 -1.089730 た/た ばあい/場合 に/に -0.907687 た/た ふしん/不審 せん/船 -0.843128 た/た ふたり/2人 が/が -0.843128 た/た ほうこく/報告 が/が -0.882239 た/た まいける/マイケル ・/・ -0.785872 た/た まーくるんど/マークルンド の/の -1.078374 た/た もの/もの と/と -0.889744 た/た ろんぶん/論文 も/も -1.535823 た/た (/( みりょく/魅力 -1.535823 た/た (/( 537/537 -0.663583 た/立 つ/つ -0.143397 たい/対 し/し て/て -0.854612 たい/隊 いん/員 は/は -1.122476 たい/隊 ちょう/長 じだい/時代 -1.298845 たいい/大尉 の/の じょなさん/ジョナサン -1.270948 たいえき/退役 する/する ぎいん/議員 -1.243708 たいき/待機 から/から のび/伸び -1.283178 たいくつ/退屈 な/な たび/旅 -1.179572 たいせん/大戦 が/が ぼっぱつ/勃発 -1.298845 たいぷ/タイプ の/の しょうじょ/少女 -1.202279 たいへい/太平 よう/洋 せんそう/戦争 -1.206363 たいへい/太平 よう/洋 ぶたい/部隊 -0.666489 たえ/絶え た/た -0.889744 たか/多賀 こうでら/国府 も/も -1.384133 たか/多賀 じょう/城 」/」 -1.451906 たか/多賀 じょう/城 せいちょう/政庁 -1.180394 たか/多賀 じょう/城 を/を -1.292419 たかおう/多嘉王 と/と けっこん/結婚 -0.893546 たかくら/高倉 としあき/敏明 「/「 -1.121341 たかさか/高坂 えき/駅 ・/・ -1.269668 たかはし/高橋 (/( せんきゅうひゃくきゅうじゅうはち/1998 -0.884726 たがい/互い しゃべ/喋 っ/っ -1.298845 たがい/互い の/の いのち/命 -1.062143 たけ/嶽 しぜん/自然 こうえん/公園 -1.226565 たたか/戦 う/う こと/こと -1.292477 たたかい/闘い が/が に/二 -1.299065 ただし/ただし 、/、 わたる/渉 -0.882239 ただちに/直ちに じけつ/自決 する/する -1.292419 たち/達 と/と いっしょ/一緒 -1.299065 たちあげ/立ち上げ 、/、 もも/もも -1.292678 たつじん/達人 で/で じょせい/女性 -0.673885 たて/立て られ/られ た/た -1.299406 たて/縦 に/に ふ/振 -1.288924 たとえ/喩え る/る くせ/癖 -0.902549 たの/頼 ま/ま れ/れ -1.297399 たび/旅 を/を しい/強い -1.609279 ため/ため 、/、 これ/これ -1.560610 ため/ため 、/、 その/その -1.756475 ため/ため 、/、 つうじょう/通常 -0.882239 ため/ため たいえき/退役 する/する -1.877802 ため/ため に/に てんのう/天皇 -1.874443 ため/ため に/に とうきょう/東京 -1.877802 ため/ため に/に はんぱつ/反発 -1.874443 ため/ため に/に みちの/美智乃 -1.298845 たゆう/太夫 の/の さしず/指図 -0.811445 たんじょう/誕生 び/日 を/を -0.266133 たんぱく/タンパク しつ/質 に/に -0.527032 たんぱく/淡白 -1.292678 たんれい/端麗 で/で せいせき/成績 -0.527032 だ/だ -0.814606 だ/だ が/が 、/、 -0.266133 だ/だ とき/時 に/に -1.284001 だ/だ の/の か/か -1.128050 だ/出 あふりか/アフリカ せつ/説 -0.811445 だい/代 かんしょ/官所 を/を -0.907687 だい/代 とうしゅ/当主 もうり/毛利 -0.867606 だい/大 そつ/卒 -0.907687 だい/大 の/野 たけ/嶽 -0.882239 だい/大 ひっと/ヒット する/する -1.444789 だい/第 に/二 い/位 -0.531276 だい/第 に/二 じ/次 -0.907687 だい/第 18/18 か/駆 -1.221825 だい/第 2/2 い/位 -1.125093 だい/第 6/6 ごう/号 -1.274276 だいかん/代官 ・/・ まつい/松井 -1.062143 だいがく/大学 ほうせい/法政 がっかい/学会 -0.714481 だいしょうすけ/大賞典 で/で は/は -0.066380 だいひょう/代表 さ/さ れ/れ -0.856946 だいよう/代用 きょういん/教員 と/と -1.214310 だしゃ/打者 を/を かくとく/獲得 -0.156223 だっ/だっ た/た -0.568885 だっしゅつ/脱出 し/し て/て -1.274276 だぶる/ダブル ・/・ あっぷ/アップ -1.289668 だりつ/打率 は/は ./. -1.361029 だりつ/打率 ./. 34/34 -1.356523 だりつ/打率 ./. 4/4 -0.662619 だれ/誰 か/か と/と -1.297399 だん/弾 を/を しきゅう/支給 -0.854612 だんせい/弾性 は/波 は/は -1.241884 ち/ち 、/、 いぎりす/イギリス -0.811445 ちいき/地域 しゃかい/社会 を/を -0.907687 ちぇすと/チェスト ばすたー/バスター けいたい/形態 -1.077963 ちか/近 い/い の/の -0.989291 ちから/力 が/が あ/あ -1.091646 ちぎょう/知行 2/2 、/、 -0.785872 ちぐさ/千草 しまい/姉妹 の/の -1.291904 ちちおや/父親 で/で どうぶつ/動物 -0.527032 ちゃく/着 -0.762814 ちゃく/着 と/と な/な -1.291904 ちゃーと/チャート で/で はつ/初 -1.103227 ちゅう/中 に/に も/も -1.298845 ちゅう/中 の/の ぼいす/ボイス -0.907687 ちゅうか/中華 じんみん/人民 きょうわ/共和 -0.963620 ちゅうしゃ/駐車 じょう/場 、/、 -0.897382 ちゅうだん/中団 たいき/待機 から/から -1.026171 ちゅうとう/中東 せんそう/戦争 が/が -0.889338 ちょう/長 」/」 の/の -0.904946 ちょう/長 きかん/期間 に/に -0.461333 ちょう/長 じだい/時代 の/の -1.265404 ちょうさ/調査 ・/・ けんきゅう/研究 -1.297399 ちょうし/調子 を/を とりもど/取り戻 -1.166384 ちょうせん/朝鮮 しょうねん/少年 れい/令 -1.223530 ちようこ/蝶子 を/を よ/呼 -1.128842 ちんたい/賃貸 おふぃす/オフィス けんさく/検索 -1.298845 ちーむ/チーム の/の しんき/新規 -0.386280 っ/っ た/た -1.668069 っ/っ た/た 、/、 -2.496244 っ/っ た/た うみず/海津 -1.661123 っ/っ た/た が/が -1.298837 っ/っ た/た こと/こと -2.496244 っ/っ た/た し/市 -2.496244 っ/っ た/た せんしゅ/選手 -1.305522 っ/っ た/た ため/ため -1.699429 っ/っ た/た と/と -2.496244 っ/っ た/た ところ/ところ -1.192572 っ/っ た/た の/の -2.496244 っ/っ た/た ほうこく/報告 -1.175027 っ/っ て/て 、/、 -0.535709 っ/っ て/て い/い -2.253806 っ/っ て/て いんよう/飲用 -1.418026 っ/っ て/て お/お -2.253806 っ/っ て/て くる/くる -2.253806 っ/っ て/て こうせい/構成 -2.160360 っ/っ て/て その/その -2.253806 っ/っ て/て たて/立て -2.253806 っ/っ て/て だっしゅつ/脱出 -1.996903 っ/っ て/て な/な -0.246935 つ/つ -0.165576 つ/つ い/い て/て -0.629480 つ/つ か/か の/の -1.266627 つ/つ と/と も/も -1.289961 つ/つ の/の えき/駅 -0.066380 つ/付 さ/さ れ/れ -0.752207 つ/就 い/い て/て -1.288569 つうさん/通算 で/で だりつ/打率 -0.282511 つうしん/通信 じぎょう/事業 しゃ/者 -1.297737 つうじょう/通常 の/の いりょう/医療 -1.294694 つうじょう/通常 は/は じょし/女子 -0.907211 つか/使 え/え ば/ば -0.256831 つか/使 わ/わ れ/れ -1.178598 つかい/つかい 」/」 で/で -1.105458 つかえ/使え る/る こと/こと -1.248861 つきあ/付き合 う/う なんて/なんて -1.048031 つけ/着け て/て お/お -1.299065 つつ/つつ 、/、 ふなばし/船橋 -0.752207 つづ/続 い/い て/て -1.055236 つづけ/続け る/る と/と -0.666489 つとめ/務め た/た -0.685749 つとめ/務め て/て い/い -1.299406 つね/常 に/に はくい/白衣 -1.426309 つよ/強 く/く する/する -0.958923 つよ/強 く/く な/な -1.965520 て/て 、/、 えいが/映画 -1.960471 て/て 、/、 ざざーぐ/ザザーグ -1.747280 て/て 、/、 それ/それ -1.960471 て/て 、/、 たがい/互い -1.965520 て/て 、/、 りよん/リヨン -2.536427 て/て い/い く/く -0.724398 て/て い/い た/た -1.491451 て/て い/い っ/っ -1.552156 て/て い/い て/て -0.224596 て/て い/い る/る -0.885975 て/て いき/生き て/て -0.844263 て/て いんよう/飲用 し/し -0.071916 て/て お/お り/り -0.791874 て/て おんなのこ/女の子 に/に -1.033230 て/て き/き た/た -0.811445 て/て ぎょらい/魚雷 を/を -0.867606 て/て くる/くる -0.885975 て/て くれ/くれ て/て -0.907687 て/て けんぞう/建造 ひよう/費用 -0.974863 て/て げんざい/現在 に/に -0.876082 て/て こうせい/構成 さ/さ -1.045698 て/て し/知 ら/ら -0.836381 て/て しゅっこう/出航 、/、 -0.844263 て/て しんとう/浸透 し/し -1.249116 て/て その/その ば/場 -0.903850 て/て たたか/戦 う/う -0.901251 て/て たて/立て られ/られ -0.907687 て/て だいよう/代用 きょういん/教員 -0.844263 て/て だっしゅつ/脱出 し/し -1.056677 て/て つか/使 わ/わ -0.903850 て/て とうげん/桃源 しゃ/社 -0.844263 て/て とうろく/登録 し/し -0.836381 て/て どうろ/道路 、/、 -1.229452 て/て な/な さ/さ -0.162825 て/て は/は 、/、 -0.856946 て/て ひ/妃 と/と -0.896099 て/て ふさわし/ふさわし く/く -0.791874 て/て みの/美濃 に/に -1.372499 て/て も/も 、/、 -1.691579 て/て も/も けんとう/検討 -1.691579 て/て も/も そうだ/操舵 -0.903850 て/て やよい/弥生 じだい/時代 -0.337828 て/て やん/やん よ/よ -1.223530 て/手 を/を つとめ/務め -1.207676 てい/艇 3/3 せき/隻 -0.568885 ていきょう/提供 し/し て/て -0.905156 ていど/程度 うごか/動か す/す -1.055604 てき/的 けんきゅう/研究 が/が -0.657126 てき/的 で/で あ/あ -1.715245 てき/的 な/な えぴそーど/エピソード -1.697433 てき/的 な/な しょうねん/少年 -1.715245 てき/的 な/な べすと/ベスト -1.583188 てき/的 に/に ぜん/全 -0.953857 てき/的 に/に は/は -0.432004 てばな/手放 し/し た/た -0.685749 てれ/照れ て/て い/い -1.298845 てんし/天使 の/の つかい/つかい -1.026263 てんしよう/天正 10/10 ねん/年 -0.846542 てんのう/天皇 はい/杯 で/で -1.591735 で/で 、/、 さいしん/最新 -1.591735 で/で 、/、 しんわ/神話 -1.269504 で/で 「/「 しゅうかん/週刊 -0.663284 で/で あ/あ っ/っ -1.105423 で/で あ/あ り/り -0.277177 で/で あ/あ る/る -0.888484 で/で あいて/相手 (/( -1.076909 で/で い/い た/た -0.413601 で/で おこな/行 わ/わ -0.791874 で/で かいふく/回復 に/に -0.844263 で/で かつどう/活動 し/し -0.854612 で/で からき/唐木 は/は -0.887228 で/で きめ/決め た/た -1.017709 で/で きろく/記録 さ/さ -0.907687 で/で けいじ/刑事 やく/役 -0.907687 で/で けいりょう/軽量 か/化 -0.811445 で/で こうし/講師 を/を -0.811445 で/で しなりお/シナリオ を/を -1.017709 で/で しよう/使用 さ/さ -0.876082 で/で じょうえん/上演 さ/さ -0.791874 で/で じょせい/女性 に/に -0.907687 で/で せいせき/成績 ゆうしゅう/優秀 -0.844263 で/で せんし/戦死 し/し -0.907687 で/で そだ/育 ち/ち -0.438291 で/で だりつ/打率 ./. -1.062143 で/で どうぶつ/動物 びょういん/病院 -1.297737 で/で の/の かれ/彼 -0.877484 で/で は/は 、/、 -2.165562 で/で は/は あいりっしゅ/アイリッシュ -1.691258 で/で は/は だい/第 -2.132500 で/で は/は だりつ/打率 -1.737937 で/で は/は と/と -2.165562 で/で は/は どうちゅう/道中 -0.953805 で/で は/は な/な -2.165562 で/で は/は 14/14 -0.283011 で/で はいき/排気 がす/ガス -0.265150 で/で はつ/初 の/の -0.907687 で/で ほくと/ホクト するたん/スルタン -0.882239 で/で ゆうしょう/優勝 する/する -0.907211 で/で わしんとん/ワシントン ぐん/軍 -1.118184 で/で 4/4 がつ/月 -1.159535 で/で 9/9 い/位 -0.846542 でいりー/デイリー らんきんぐ/ランキング で/で -0.924547 でき/でき な/な かっ/かっ -1.284197 でき/でき る/る よう/よう -0.527032 です/です -0.907687 でんげき/電撃 おん/オン らいん/ライン -1.293436 でんれい/伝令 が/が もたら/もたら -1.759625 と/と 、/、 なん/何 -1.759625 と/と 、/、 ぽーとらんど/ポートランド -1.759625 と/と 、/、 ればのん/レバノン -0.785872 と/と あかね/茜 の/の -0.907687 と/と あわー/アワー ばっく/バック -0.071536 と/と い/い う/う -0.187979 と/と い/言 わ/わ -0.903850 と/と いち/一 ごう/号 -0.791874 と/と いっしょ/一緒 に/に -0.907687 と/と おおしま/大島 ともこ/智子 -0.844263 と/と かんちがい/勘違い し/し -0.884726 と/と き/切 っ/っ -0.844263 と/と けっこん/結婚 し/し -0.066380 と/と さ/さ れ/れ -0.844263 と/と さいかい/再会 し/し -0.691964 と/と し/し た/た -0.140296 と/と し/し て/て -0.785872 と/と すこてぃあ/スコティア の/の -1.275192 と/と する/する ぜんこう/全校 -0.791874 と/と せいむ/政務 に/に -0.811445 と/と せんす/センス を/を -0.856946 と/と そこく/祖国 と/と -1.034990 と/と そるごー/ソルゴー (/( -0.903850 と/と つきあ/付き合 う/う -0.903850 と/と と/問 わ/わ -0.202330 と/と な/な っ/っ -1.676868 と/と な/な り/り -1.674511 と/と な/な る/る -1.298845 と/と の/の きょうえん/共演 -0.283011 と/と はつね/初音 みく/ミク -1.217233 と/と も/も な/な -0.256831 と/問 わ/わ れ/れ -1.101430 とうきょう/とうきょう おふぃす/オフィス )/) -1.128842 とうきょう/東京 おふぃす/オフィス かぶしき/株式 -0.811445 とうきょう/東京 くるせいど/クルセイド を/を -1.297399 とうげ/峠 を/を こえ/超え -0.541040 とうげん/桃源 しゃ/社 から/から -1.297399 とうさつ/盗撮 を/を くりかえ/繰り返 -0.907687 とうしゅ/当主 もうり/毛利 よんじゅういち/四一 -1.243708 とうじ/当時 から/から しゅよう/主要 -1.238927 とうじ/当時 の/の ぶか/部下 -0.527032 とうじょう/登場 -0.432004 とうちゃく/到着 し/し た/た -0.894754 とうなーけん/とうなーけん )/) は/は -0.714481 とうひょう/投票 で/で は/は -1.295369 とうろく/登録 し/し にんむ/任務 -0.905156 とおざけ/遠ざけ かねず/かねず きけん/危険 -1.299406 とき/とき に/に ほうしゅつ/放出 -1.430443 とき/時 に/に 「/「 -0.953857 とき/時 に/に は/は -1.081933 とくちょう/特徴 で/で 、/、 -0.437358 とくに/とくに 8/8 がつ/月 -1.297972 ところ/ところ 、/、 さいしゅう/最終 -0.907687 とし/都市 かん/間 ろせん/路線 -1.260727 としあき/敏明 「/「 たか/多賀 -1.056677 としょ/図書 しゅっぱん/出版 しゃ/社 -0.907211 とっぷ/トップ 50/50 じぎょう/事業 -1.299065 とつぜん/突然 、/、 のこり/残り -1.171910 ととのえ/整え られ/られ て/て -0.685749 となえ/唱え て/て い/い -0.907687 とまつ/塗抹 ぎむざ/ギムザ せんしょく/染色 -1.298516 とも/とも に/に たいへい/太平 -1.298845 ともこ/智子 の/の しかい/司会 -0.785872 とよみ/豊見 おや/親 の/の -0.936957 とりしらべ/取り調べ に/に よ/よ -1.292419 とりにだーど/トリニダード と/と すこてぃあ/スコティア -1.293722 とりもど/取り戻 し/し 8/8 -0.907687 とりわけ/取り分け おおきな/大きな しょっく/ショック -1.292678 とれんとん/トレントン で/で わしんとん/ワシントン -1.299065 とろふぉぞいと/トロフォゾイト 、/、 がめとさいと/ガメトサイト -1.293436 とんぼ/とんぼ が/が ゆうれい/ユウレイ -1.299406 ど/度 に/に わたり/渡り -1.124637 どいつ/ドイツ じん/人 だ/だ -0.432004 どういん/動員 し/し た/た -0.907687 どうちゅう/道中 ちゅうだん/中団 たいき/待機 -1.293436 どうぶつ/動物 が/が しんしゅつ/進出 -0.785872 どうぶつ/動物 びょういん/病院 の/の -1.299065 どうろ/道路 、/、 ちゅうしゃ/駐車 -0.887228 どくしょう/独唱 かい/会 」/」 -1.292678 どくだん/独断 で/で きめ/決め -1.298845 どちゃく/土着 の/の ひろた/広食 -1.292678 どらま/ドラマ で/で けいじ/刑事 -1.299406 どれん/ドレン に/に たの/頼 -0.283011 どーぱんと/ドーパント ふく/含 む/む -0.987486 な/な い/い -1.913707 な/な い/い 」/」 -1.653081 な/な い/い が/が -1.998729 な/な い/い こと/こと -2.061792 な/な い/い ため/ため -2.103516 な/な い/い まま/まま -2.061792 な/な い/い もの/もの -2.103516 な/な い/い もの/者 -0.811445 な/な いしょう/衣装 を/を -0.791874 な/な うえ/上 に/に -0.907687 な/な えいぞう/映像 び/美 -0.811445 な/な えぴそーど/エピソード を/を -0.811445 な/な おにごっこ/鬼ごっこ を/を -0.856946 な/な かいどう/街道 と/と -0.125751 な/な かっ/かっ た/た -0.907211 な/な かなか/かなか しゅつじょう/出場 -1.253675 な/な く/く どくだん/独断 -0.066380 な/な さ/さ れ/れ -0.544521 な/な しょうねん/少年 しほう/司法 -0.811445 な/な たび/旅 を/を -0.136918 な/な っ/っ た/た -0.671422 な/な っ/っ て/て -0.907687 な/な べすと/ベスト せらー/セラー -1.074495 な/な もの/もの は/は -0.114129 な/な り/り 、/、 -0.691603 な/な る/る -1.197693 な/な る/る と/と -1.298845 ない/内 の/の しぞんと/シゾント -0.905156 ないかく/内閣 ふ/府 しょう/賞 -1.020788 ないそう/内装 など/など に/に -0.836381 なおひろ/直弘 りゅうじ/龍治 、/、 -1.299065 なか/中 、/、 にせんじゅうに/2012 -0.867606 なかの/中野 です/です -1.293436 ながよし/長可 が/が さるがばば/猿ヶ馬場 -1.299065 ながら/ながら 、/、 がまーる/ガマール -0.854612 ながら/ながら ものがたり/物語 は/は -1.291728 なす/ナス と/と そるごー/ソルゴー -1.298845 なす/ナス の/の がいちゅう/害虫 -0.866989 なつば/夏場 に/に は/は -1.297972 など/など 、/、 こうつう/交通 -1.293436 など/など が/が せいび/整備 -1.299406 など/など に/に しはん/市販 -1.591304 など/など の/の しゅうちゃく/執着 -1.591304 など/など の/の どちゃく/土着 -0.785872 なな/七 ふしぎ/不思議 の/の -1.294694 なまえ/名前 は/は なかの/中野 -1.297399 なまえ/名前 を/を くみあわせ/組み合わせ -1.233064 なん/何 ら/ら か/か -1.052987 なんて/なんて かんがえ/考え られ/られ -1.292678 なんぶ/南部 で/で かつどう/活動 -0.461333 なんぼくちょう/南北朝 じだい/時代 の/の -1.299406 なーせる/ナーセル に/に だいひょう/代表 -1.299065 に/に 、/、 かいしゅう/改修 -1.679214 に/に 「/「 うちのめ/打ちのめ -1.679214 に/に 「/「 てんし/天使 -1.679214 に/に 「/「 よばい/夜這い -0.790533 に/に あ/あ っ/っ -0.551195 に/に あ/あ る/る -0.883481 に/に あた/あた る/る -0.884726 に/に あつま/集ま っ/っ -0.896099 に/に い/行 く/く -0.844263 に/に いじゅう/移住 し/し -0.883481 に/に いた/至 る/る -0.355500 に/に いち/位置 する/する -1.087283 に/に お/お い/い -0.905156 に/に おおいた/大分 けん/県 -0.333791 に/に おけ/おけ る/る -0.413601 に/に おこな/行 わ/わ -0.901251 に/に かけ/かけ られ/られ -0.907687 に/に かつて/かつて そんざい/存在 -0.884726 に/に かわ/変わ っ/っ -0.844263 に/に かんりょう/完了 し/し -0.844263 に/に かんれん/関連 し/し -0.907211 に/に きた/北 たいへい/太平 -0.811445 に/に きょうみ/興味 を/を -0.836381 に/に きんむ/勤務 、/、 -0.907687 に/に くにのみや/久邇宮 たかおう/多嘉王 -0.930512 に/に くび/首 を/を -0.844263 に/に ごうりゅう/合流 し/し -0.907687 に/に さんちょう/山頂 ふきん/付近 -0.356693 に/に し/し て/て -1.496772 に/に し/し な/な -0.882239 に/に しがん/志願 する/する -0.876082 に/に してい/指定 さ/さ -0.785872 に/に しはん/市販 の/の -0.974219 に/に しゅつじょう/出場 し/し -0.899958 に/に しょうきょく/消極 てき/的 -0.882239 に/に じゅうぐん/従軍 する/する -0.844263 に/に じょうしょう/上昇 し/し -0.889744 に/に すぽーつ/スポーツ も/も -0.876082 に/に せいこう/成功 さ/さ -0.279626 に/に せいひん/製品 ・/・ -0.882239 に/に せんねん/専念 する/する -1.128842 に/に ぜん/全 ひてい/否定 -0.901251 に/に た/立 つ/つ -0.173932 に/に たい/対 し/し -0.283011 に/に たいへい/太平 よう/洋 -0.883481 に/に たとえ/喩え る/る -0.907687 に/に たの/頼 ま/ま -0.876082 に/に だいひょう/代表 さ/さ -0.193036 に/に つ/つ い/い -0.882239 に/に つ/就 い/い -0.885975 に/に つけ/着け て/て -0.907687 に/に てんのう/天皇 はい/杯 -1.062143 に/に とうきょう/東京 くるせいど/クルセイド -0.907687 に/に とりわけ/取り分け おおきな/大きな -1.715245 に/に な/な かなか/かなか -1.266179 に/に な/な っ/っ -1.263979 に/に な/な る/る -0.867606 に/に にゅうせん/入選 -1.402216 に/に は/は 「/「 -2.224635 に/に は/は おおつき/大槻 -2.224635 に/に は/は じぶん/自分 -2.224635 に/に は/は せいふく/制服 -2.224635 に/に は/は ぜんいん/全員 -2.224635 に/に は/は たかさか/高坂 -2.224635 に/に は/は たんぱく/淡白 -1.683021 に/に は/は だい/第 -2.224635 に/に は/は にちろ/日露 -2.224635 に/に は/は はんもと/版元 -2.224635 に/に は/は ほんらい/本来 -0.883481 に/に はい/入 る/る -0.876082 に/に はいぞく/配属 さ/さ -0.876082 に/に はいふ/配布 さ/さ -0.844263 に/に はいぼく/敗北 し/し -0.811445 に/に はくい/白衣 を/を -0.811445 に/に はんぱつ/反発 を/を -0.897176 に/に ひと/ヒト の/の -0.896099 に/に ふ/振 ら/ら -0.907687 に/に ぶんげい/文芸 としょ/図書 -0.811445 に/に へんじ/返事 を/を -0.876082 に/に ほうしゅつ/放出 さ/さ -0.907687 に/に ほんのう/本能 じ/寺 -0.811445 に/に ぼうだん/防弾 を/を -0.904946 に/に みちの/美智乃 に/に -0.876082 に/に みりょう/魅了 さ/さ -0.884726 に/に むか/向か っ/っ -1.031478 に/に むけ/向け て/て -0.843128 に/に め/目 が/が -1.860860 に/に も/も かかわ/かかわ -1.860860 に/に も/も かかわ/関わ -1.860860 に/に も/も せかんど/セカンド -1.860860 に/に も/も ふたたび/再び -1.785894 に/に も/も 2/2 -0.907687 に/に やっと/やっと とうちゃく/到着 -0.524341 に/に よ/よ っ/っ -0.706773 に/に よ/よ り/り -1.037697 に/に よ/よ る/る -1.943700 に/に よ/よ れ/れ -0.332494 に/に よびだ/呼び出 さ/さ -0.844263 に/に らんくいん/ランクイン し/し -0.785872 に/に らーる/ラール の/の -1.057978 に/に りま/りま に/に -1.046966 に/に りま/りま の/の -0.884726 に/に わた/亘 っ/っ -0.907211 に/に わたり/渡り しょう/小 -0.965749 に/二 い/位 の/の -0.544521 に/二 ごう/号 せい/生 -1.197127 に/二 じ/次 せかい/世界 -1.207311 に/二 じ/次 ちゅうとう/中東 -1.284988 にが/苦 い/い けいけん/経験 -1.299065 にく/肉 、/、 おんせん/温泉 -0.785872 にしよどがわ/西淀川 く/区 の/の -0.637200 にせんご/2005 ねん/年 )/) -1.272969 にせんじゅういち/2011 ねん/年 6/6 -1.272969 にせんじゅうに/2012 ねん/年 げんざい/現在 -1.173656 にせんなな/2007 ねん/年 、/、 -1.242676 にち/日 から/から しーずん/シーズン -0.907687 にち/日 くうはく/  こうち/高知 -1.298845 にち/日 の/の あさ/朝 -0.950285 にちろ/日露 せんそう/戦争 に/に -0.907687 にっぽん/日本 しんじん/新人 おう/王 -0.811445 にほん/日本 さっかー/サッカー を/を -0.527032 にゅうせん/入選 -1.591304 にん/人 の/の こんぴゅーた/コンピュータ -1.480683 にん/人 の/の ぶか/部下 -1.297399 にん/人 を/を どういん/動員 -0.846542 にんき/人気 とうひょう/投票 で/で -1.228844 にんき/人気 2/2 ちゃく/着 -0.066380 にんてい/認定 さ/さ れ/れ -1.299406 にんむ/任務 に/に つ/就 -0.846542 ねっと/ネット じょう/上 で/で -1.241884 ねん/年 、/、 それ/それ -1.134441 ねん/年 げんざい/現在 も/も -1.000915 ねん/年 ご/後 に/に -0.907211 ねん/年 せい/制 れい/令 -1.523150 ねん/年 に/に 、/、 -1.004817 ねん/年 に/に は/は -1.877802 ねん/年 に/に ほんのう/本能 -1.377714 ねん/年 に/に も/も -1.062143 ねん/年 まえ/前 ごろ/ごろ -0.621131 ねん/年 (/( しょうわ/昭和 -0.678739 ねん/年 (/( めいじ/明治 -1.357993 ねん/年 )/) -1.321966 ねん/年 )/) 、/、 -0.300730 ねん/年 )/) に/に -1.194928 ねん/年 3/3 がつ/月 -0.437358 ねん/年 6/6 がつ/月 -1.154863 ねん/年 9/9 がつ/月 -1.269504 の/の 「/「 えさ/餌 -0.882239 の/の あ/ア ・/・ -0.785872 の/の あいだ/間 の/の -0.785872 の/の あこがれ/憧れ の/の -0.791874 の/の あさ/朝 に/に -1.072324 の/の い/い る/る -0.785872 の/の いぇーがん/イェーガン の/の -0.904946 の/の いち/位置 に/に -0.891008 の/の いっしゅ/一種 )/) -0.811445 の/の いのち/命 を/を -0.867606 の/の いみ/意味 -1.047509 の/の いりょう/医療 から/から -0.867606 の/の いんちょう/院長 -0.907687 の/の いんなー/インナー まっする/マッスル -0.907687 の/の うち/うち 45/45 -1.055604 の/の えき/駅 が/が -0.899958 の/の えきがく/疫学 てき/的 -0.905156 の/の おそく/遅く だっ/だっ -0.662619 の/の か/か と/と -0.897176 の/の かれ/彼 の/の -0.930512 の/の かんけい/関係 を/を -1.026263 の/の かんとりー/カントリー ・/・ -0.846542 の/の がいちゅう/害虫 で/で -0.854612 の/の がいひ/外皮 は/は -0.836381 の/の がいよう/概要 、/、 -0.856946 の/の きそ/基礎 と/と -0.811445 の/の きょういく/教育 を/を -0.843128 の/の きょうえん/共演 が/が -0.844263 の/の きょしゅ/挙手 し/し -0.897176 の/の くび/首 の/の -0.843128 の/の くぶん/区分 が/が -0.791874 の/の けんしゅつ/検出 に/に -0.907687 の/の げいのう/芸能 じょうほう/情報 -0.905156 の/の げっかん/月間 だりつ/打率 -0.905156 の/の げつれい/月例 しょう/賞 -0.977295 の/の げんいん/原因 で/で -0.854612 の/の こ/子 は/は -0.791874 の/の こうい/行為 に/に -0.856946 の/の こうしゃ/校舎 と/と -0.884726 の/の ことな/異な っ/っ -1.111825 の/の ころ/頃 から/から -0.907211 の/の こんぴゅーた/コンピュータ きゃらくたー/キャラクター -0.846542 の/の さしず/指図 で/で -0.846542 の/の しかい/司会 で/で -1.049327 の/の しぜん/自然 や/や -0.836381 の/の しぞんと/シゾント 、/、 -0.266133 の/の しつ/質 に/に -0.930512 の/の しゅい/首位 を/を -0.843128 の/の しゅうだん/集団 が/が -0.785872 の/の しゅうちゃく/執着 の/の -0.856946 の/の しゅうへい/州兵 と/と -0.867606 の/の しょうじょ/少女 -0.854612 の/の しょうそく/消息 は/は -0.843128 の/の しょくいん/職印 が/が -0.907687 の/の しんき/新規 さんか/参加 -0.907211 の/の じしん/地震 けい/計 -0.811445 の/の じゅうげき/銃撃 を/を -0.882239 の/の じょなさん/ジョナサン ・/・ -0.811445 の/の じんせい/人生 を/を -0.907687 の/の すいらい/水雷 てい/艇 -0.836381 の/の すえ/末 、/、 -0.907687 の/の せいじ/政治 こうぞう/構造 -0.279626 の/の せいひん/製品 ・/・ -0.903850 の/の せんもん/専門 がっこう/学校 -0.882239 の/の そうだん/相談 な/な -1.249116 の/の その/その じてん/時点 -1.167086 の/の たか/多賀 こうでら/国府 -0.846542 の/の たつじん/達人 で/で -0.907687 の/の たんじょう/誕生 び/日 -1.208125 の/の だい/第 18/18 -0.907687 の/の ちいき/地域 しゃかい/社会 -0.846542 の/の ちちおや/父親 で/で -0.811445 の/の ちょうし/調子 を/を -0.811445 の/の ちようこ/蝶子 を/を -0.905156 の/の ちんたい/賃貸 おふぃす/オフィス -0.907211 の/の つうしん/通信 じぎょう/事業 -0.887228 の/の つかい/つかい 」/」 -0.714481 の/の で/で は/は -0.266133 の/の とき/時 に/に -0.785872 の/の どちゃく/土着 の/の -0.924547 の/の な/な かっ/かっ -0.902549 の/の ないそう/内装 など/など -1.107237 の/の なまえ/名前 は/は -1.032799 の/の なまえ/名前 を/を -0.421305 の/の は/は 、/、 -1.724159 の/の は/は その/その -1.062143 の/の はんざい/犯罪 しょうせつ/小説 -1.074495 の/の ばあい/場合 は/は -0.901251 の/の ひと/一 つ/つ -0.846542 の/の ひとり/1人 で/で -0.907687 の/の ひろた/広食 せい/性 -0.856946 の/の ふぃじかる/フィジカル と/と -0.991023 の/の ふたり/二人 の/の -1.107237 の/の ふたり/二人 は/は -1.157849 の/の ぶか/部下 が/が -1.186869 の/の ぶか/部下 と/と -0.972689 の/の ぶたい/部隊 が/が -0.846542 の/の ぶんせき/分析 で/で -0.811445 の/の へん/変 を/を -0.811445 の/の へんか/変化 を/を -0.854612 の/の ほうしん/砲身 は/は -0.791874 の/の ほくぶ/北部 に/に -0.854612 の/の ぼいす/ボイス は/は -0.904946 の/の まえ/前 に/に -0.867606 の/の まと/的 -0.907687 の/の みんせい/民生 ひん/品 -0.811445 の/の めんどう/面倒 を/を -1.205974 の/の よう/よう で/で -1.292442 の/の よう/よう な/な -1.382001 の/の ようかい/妖怪 じょ/序 -1.220442 の/の ようかい/妖怪 で/で -1.245467 の/の ようかい/妖怪 と/と -0.811445 の/の りくろ/陸路 を/を -0.887228 の/の れきし/歴史 」/」 -1.216438 の/の 2/2 つ/つ -0.905156 の/の 24/24 ./. -0.907687 の/の 44/44 しあい/試合 -1.303611 の/の 5/5 せいまご/世孫 -1.297338 の/の 5/5 にん/人 -0.907211 の/野 たけ/嶽 しぜん/自然 -0.556914 のいず/ノイズ 」/」 と/と -1.005053 のう/農 がっこう/学校 を/を -1.298845 のこり/残り の/の じんせい/人生 -0.907211 のび/伸び きれ/きれ ず/ず -1.926908 は/は 、/、 あいてむ/アイテム -2.321966 は/は 、/、 ある/ある -2.321966 は/は 、/、 いく/いく -1.922286 は/は 、/、 この/この -2.321966 は/は 、/、 しゅりゅう/手榴 -2.321966 は/は 、/、 せっこう/浙江 -2.321966 は/は 、/、 たいい/大尉 -2.321966 は/は 、/、 ちょうせん/朝鮮 -2.321966 は/は 、/、 とも/とも -2.321966 は/は 、/、 どれん/ドレン -2.321966 は/は 、/、 ねっと/ネット -2.321966 は/は 、/、 はるあき/春秋 -2.321966 は/は 、/、 れんぽう/連邦 -1.774003 は/は 「/「 あお/青 -1.774003 は/は 「/「 かがく/科学 -1.774003 は/は 「/「 だれ/誰 -1.770515 は/は 「/「 ぼうえい/防衛 -0.907687 は/は あいりっしゅ/アイリッシュ はいゆう/俳優 -0.907687 は/は あまーすと/アマースト ばーぐ/バーグ -0.836381 は/は うなぎ/鰻 、/、 -0.907687 は/は おおつき/大槻 ふみひこ/文彦 -0.896099 は/は かた/語 ら/ら -0.846542 は/は けいごうきん/軽合金 で/で -0.811445 は/は けつだん/決断 を/を -0.899958 は/は こくさい/国際 てき/的 -0.898668 は/は しょくばい/触媒 や/や -0.882239 は/は しろ/白 い/い -0.811445 は/は じぶん/自分 を/を -0.907687 は/は じょし/女子 がくせい/学生 -0.843128 は/は せいふく/制服 が/が -1.190723 は/は せかい/世界 じゅう/中 -0.904946 は/は せるてぃっくす/セルティックス に/に -0.843128 は/は ぜんいん/全員 が/が -1.249116 は/は その/その ひ/日 -0.887228 は/は たえ/絶え た/た -0.903850 は/は たかさか/高坂 えき/駅 -0.867606 は/は たんぱく/淡白 -0.694238 は/は だい/第 に/二 -1.403603 は/は だい/第 2/2 -0.882239 は/は だいかん/代官 ・/・ -0.438291 は/は だりつ/打率 ./. -0.907687 は/は ちゅうか/中華 じんみん/人民 -1.292419 は/は と/と と/問 -0.856946 は/は とりにだーど/トリニダード と/と -0.907211 は/は どいつ/ドイツ じん/人 -0.907687 は/は どうちゅう/道中 ちゅうだん/中団 -0.170423 は/は な/な い/い -0.907687 は/は なかの/中野 です/です -0.905156 は/は にちろ/日露 せんそう/戦争 -0.811445 は/は はんもと/版元 を/を -0.896099 は/は ひきと/引き取 ら/ら -0.905156 は/は ふめい/不明 だっ/だっ -1.031385 は/は ぶか/部下 で/で -0.907211 は/は ほうじん/法人 むけ/向け -0.791874 は/は ほっぽう/北方 に/に -0.785872 は/は ほんらい/本来 の/の -0.907211 は/は ぽーかー/ポーカー ちゅう/中 -0.907687 は/は まっしょう/末梢 けつ/血 -0.785872 は/は まんが/漫画 の/の -0.907687 は/は めぐろ/目黒 も/盛 -0.907687 は/は もと/元 ろういん/老院 -0.907211 は/は よくちょう/翌朝 だい/代 -0.542792 は/は ./. 3/3 -0.903850 は/は 14/14 い/位 -0.882239 は/は 1944/1944 ねん/年 -0.907687 は/は 300/300 ちか/近 -0.484743 は/張 っ/っ て/て -1.284522 は/波 は/は せかい/世界 -1.154984 はあく/把握 し/し な/な -1.288924 はい/入 る/る あたり/あたり -1.292678 はい/杯 で/で ゆうしょう/優勝 -0.337907 はいき/排気 がす/ガス おんど/温度 -1.006009 はいしん/配信 がいしゃ/会社 -1.293746 はいせん/敗戦 は/は せるてぃっくす/セルティックス -0.066380 はいぞく/配属 さ/さ れ/れ -0.066380 はいふ/配布 さ/さ れ/れ -0.432004 はいぼく/敗北 し/し た/た -0.557769 はいゆう/俳優 と/と し/し -0.907687 はがー/ハガー および/及び ちぇすと/チェスト -1.297399 はくい/白衣 を/を み/身 -0.598227 はじめ/始め と/と し/し -1.510876 はじめ/始め と/と する/する -0.907687 はせがわ/長谷川 しゅうじ/修二 めいぎ/名義 -1.268628 はそん/破損 (/( えんじん/エンジン -1.274276 はた/秦 ・/・ たかはし/高橋 -1.299065 はだに/ハダニ 、/、 あぶらむし/アブラムシ -0.432004 はっかく/発覚 し/し た/た -0.432004 はっしゃ/発射 し/し た/た -0.683377 はっぴょう/発表 し/し 、/、 -1.591304 はつ/初 の/の あ/ア -1.589134 はつ/初 の/の しゅい/首位 -1.000689 はつね/初音 みく/ミク に/に -0.991023 はつね/初音 みく/ミク の/の -0.552919 はるあき/春秋 じょくん/叙勲 、/、 -0.907687 はんざい/犯罪 きしゃ/記者 あにか/アニカ -0.854612 はんざい/犯罪 しょうせつ/小説 は/は -1.298845 はんすう/半数 の/の きょしゅ/挙手 -1.214310 はんぱつ/反発 を/を うけ/受け -1.297399 はんもと/版元 を/を かえ/変え -1.299065 ば/ば 、/、 5000/5000 -0.811445 ば/ば かんじゃ/患者 を/を -1.294694 ば/場 は/は ひきと/引き取 -1.299065 ばあい/場合 、/、 さいあく/最悪 -1.221578 ばあい/場合 に/に つ/つ -1.294694 ばあい/場合 は/は しょくばい/触媒 -0.380417 ばあい/場合 も/も あ/あ -1.095311 ばくりょう/幕僚 ちょう/長 」/」 -1.297399 ばす/バス を/を うんこう/運行 -0.785872 ばすたー/バスター けいたい/形態 の/の -1.294694 ばっく/バック は/は けつだん/決断 -1.294688 ばん/版 に/に お/お -0.811445 ばん/番 て/手 を/を -1.049327 ばん/番 にんき/人気 2/2 -1.293436 ばんぞく/蛮族 が/が しんりゃく/侵略 -0.657126 ばんのう/万能 で/で あ/あ -1.294694 ばーくれい/バークレイ は/は あまーすと/アマースト -0.897176 ばーぐ/バーグ へ/へ の/の -0.762814 ひ/妃 と/と な/な -1.298845 ひ/日 の/の おそく/遅く -1.298845 ひ/比 の/の へんか/変化 -1.097341 ひがしな/東那 けん/県 (/( -1.136663 ひがしまつやま/東松山 えき/駅 )/) -1.244293 ひきと/引き取 ら/ら ざる/ざる -1.171658 ひっと/ヒット する/する が/が -0.066380 ひてい/否定 さ/さ れ/れ -1.061463 ひと/ヒト か/科 どうぶつ/動物 -1.298845 ひと/ヒト の/の しゅうだん/集団 -1.125282 ひと/一 つ/つ と/と -0.657126 ひとり/1人 で/で あ/あ -0.898668 ひめはな/ヒメハナ かめむし/カメムシ や/や -0.931702 ひょう/票 )/) -0.598227 ひょうげん/表現 と/と し/し -1.577456 ひょうげん/表現 と/と はつね/初音 -1.297399 ひよう/費用 を/を せつやく/節約 -0.785872 ひろし/寛 ほう/法 の/の -0.907687 ひろし/汎 あらぶ/アラブ しゅぎ/主義 -0.907687 ひろた/広食 せい/性 ほしょく/捕食 -1.093603 ひろば/広場 など/など が/が -1.297399 ひん/品 を/を さいよう/採用 -1.297399 び/日 を/を いわ/祝 -1.293436 び/美 が/が とくちょう/特徴 -1.298845 びょういん/病院 の/の いんちょう/院長 -1.297737 びるぼーど/ビルボード の/の かんとりー/カントリー -1.299406 ぴくる/ピクル に/に きょうみ/興味 -1.530174 ぴくる/ピクル の/の 「/「 -1.485591 ぴくる/ピクル の/の い/い -1.128842 ふ/府 しょう/賞 くん/勲 -1.243458 ふ/振 ら/ら せ/せ -1.294694 ふぁすべんだー/ファスベンダー は/は どいつ/ドイツ -0.991023 ふぁー/ファー うぇい/ウェイ の/の -1.107237 ふぁー/ファー うぇい/ウェイ は/は -1.292419 ふぃじかる/フィジカル と/と せんす/センス -1.297399 ふうけい/風景 を/を いか/生か -0.907687 ふぇいす/フェイス はがー/ハガー および/及び -0.907687 ふぇーざー/フェーザー きかん/機関 ほう/砲 -1.069901 ふぉっくす/フォックス しゃ/社 、/、 -1.298845 ふきん/付近 の/の 24/24 -1.130764 ふく/含 む/む -1.197127 ふく/含 む/む せかい/世界 -0.871132 ふさわし/ふさわし く/く な/な -1.232397 ふしぎ/不思議 の/の ようかい/妖怪 -0.897382 ふしん/不審 せん/船 から/から -0.843128 ふたたび/再び わよ/和与 が/が -1.298845 ふたり/二人 の/の こ/子 -1.294694 ふたり/二人 は/は ぽーかー/ポーカー -0.814606 ふたり/2人 が/が 、/、 -0.836381 ふなこし/船越 えいいちろう/英一郎 、/、 -0.791874 ふなばし/船橋 しゅうへん/周辺 に/に -1.285736 ふみひこ/文彦 が/が たか/多賀 -0.791874 ふみやす/文保 がんねん/元年 に/に -0.389540 ふめい/不明 だっ/だっ た/た -1.299406 ふるい/ふるい に/に かけ/かけ -1.243708 ふるく/古く から/から かず/数 -1.299065 ふん/分 、/、 いたりあ/イタリア -0.907687 ぶ/ぶ とし/都市 かん/間 -0.894754 ぶ/部 )/) は/は -1.292477 ぶか/部下 が/が ざざーぐ/ザザーグ -0.714481 ぶか/部下 で/で は/は -1.292419 ぶか/部下 と/と そこく/祖国 -0.903850 ぶしゅう/武州 まつやま/松山 えき/駅 -0.432004 ぶそう/武装 し/し た/た -1.293436 ぶたい/部隊 が/が とれんとん/トレントン -1.299406 ぶたい/部隊 に/に ごうりゅう/合流 -0.965749 ぶよう/舞踊 がっこう/学校 の/の -1.299406 ぶらざーず/ブラザーズ に/に きんむ/勤務 -0.905730 ぶろー/ブロー )/) 、/、 -0.907211 ぶんげい/文芸 としょ/図書 しゅっぱん/出版 -0.714481 ぶんせき/分析 で/で は/は -0.876082 ぷらちな/プラチナ にんてい/認定 さ/さ -0.991245 ぷれてすと/プレテスト ご/後 の/の -0.844263 へ/へ しんにゅう/侵入 し/し -1.298845 へ/へ の/の りくろ/陸路 -0.908791 へ/経 て/て 、/、 -1.293436 へくたーる/ヘクタール が/が せいかつ/生活 -1.222614 へん/変 を/を し/知 -1.297399 へんか/変化 を/を しめ/示 -1.296312 へんじ/返事 を/を かんがえ/考え -0.556914 べ/べ 」/」 と/と -0.791874 べいぐん/米軍 きち/基地 に/に -0.907211 べすと/ベスト せらー/セラー さくひん/作品 -1.297399 べんぐつそん/ベングツソン を/を しゅじん/主人 -0.843128 ぺてぃ/ペティ ぐるー/グルー が/が -0.246935 ぺーじ/頁 -1.299065 ぺーじ/頁 、/、 きゅうしゅう/九州 -1.268628 ぺーじ/頁 (/( ほうせい/法政 -1.297737 ほう/法 の/の まえ/前 -1.298845 ほう/砲 の/の ほうしん/砲身 -1.231921 ほうこく/報告 が/が さ/さ -0.066380 ほうしゅつ/放出 さ/さ れ/れ -0.265150 ほうしょう/褒章 せいど/制度 の/の -0.725392 ほうしん/砲身 は/は 、/、 -0.897176 ほうじん/法人 むけ/向け の/の -0.836381 ほうせい/法政 がっかい/学会 、/、 -1.166473 ほうせい/法政 けんきゅう/研究 71/71 -0.843128 ほくと/ホクト するたん/スルタン が/が -1.238667 ほくぶ/北部 に/に いち/位置 -0.656402 ほしょく/捕食 しゃ/者 が/が -0.791874 ほぜん/保全 りん/林 に/に -1.298516 ほっぽう/北方 に/に むけ/向け -0.568885 ほどこ/施 し/し て/て -0.785872 ほんのう/本能 じ/寺 の/の -0.882239 ほんみょう/本名 あんな/アンナ ・/・ -1.298845 ほんらい/本来 の/の ちょうし/調子 -1.152335 ぼいす/ボイス は/は な/な -1.128842 ぼうえい/防衛 しょう/省 りくじょう/陸上 -1.128842 ぼうえい/防衛 だい/大 そつ/卒 -1.027995 ぼうご/防護 でき/でき る/る -1.297399 ぼうだん/防弾 を/を ほどこ/施 -0.557769 ぼくし/牧師 と/と し/し -1.134412 ぼこぼこ/ボコボコ に/に し/し -0.791874 ぼっ/ぼっ こぼこ/こぼこ に/に -0.374133 ぼっぱつ/勃発 する/する と/と -1.274276 ぼびー/ボビー ・/・ さんず/サンズ -0.897176 ぽーかー/ポーカー ちゅう/中 の/の -1.286971 ぽーとらんど/ポートランド の/の だい/第 -0.849329 ま/ま れ/れ 、/、 -1.274276 まいける/マイケル ・/・ ふぁすべんだー/ファスベンダー -0.791874 まえ/前 ごろ/ごろ に/に -1.191815 まえ/前 に/に な/な -1.200054 まき/巻 3/3 ごう/号 -1.223530 まさと/正人 を/を はじめ/始め -1.284988 まじ/まじ い/い ちから/力 -1.062143 まじえ/交え ながら/ながら ものがたり/物語 -1.591735 また/また 、/、 そらも/空燃 -1.591735 また/また 、/、 ものごと/物事 -1.297737 まち/町 の/の しぜん/自然 -0.907687 まっしょう/末梢 けつ/血 とまつ/塗抹 -1.297399 まっする/マッスル を/を つかえ/使え -0.907687 まっど/マッド さいえんてぃすと/サイエンティスト たいぷ/タイプ -0.866989 まつ/末 に/に は/は -1.062143 まつい/松井 ぐん/軍 たゆう/太夫 -1.132230 まつやま/松山 えき/駅 (/( -1.128050 まで/まで お/お たがい/互い -1.298845 まで/まで の/の 44/44 -1.061463 まで/まで ひと/ヒト か/科 -0.256623 まと/まと っ/っ た/た -0.527032 まと/的 -1.229843 まにら/マニラ や/や ろれーた/ロレータ -0.890005 まね/招 く/く ばあい/場合 -0.811445 まま/まま そうこう/走行 を/を -1.274276 まりーあ/マリーア ・/・ しゅヴぇーげりん/シュヴェーゲリン -0.791874 まんが/まんが かれっじ/カレッジ に/に -1.298845 まんが/漫画 の/の せんもん/専門 -1.264435 まんざい/漫才 する/する か/か -1.297737 まーくるんど/マークルンド の/の はんざい/犯罪 -1.292477 まーけっと/マーケット が/が かいさい/開催 -1.105458 み/見 る/る こと/こと -1.299406 み/身 に/に つけ/着け -1.299406 みく/ミク に/に みりょう/魅了 -1.239894 みく/ミク の/の なまえ/名前 -1.293436 みちの/美智乃 が/が えんだん/縁談 -1.231825 みちの/美智乃 に/に たい/対 -0.556914 みっくみく/みっくみく 」/」 と/と -1.299406 みの/美濃 に/に むか/向か -0.066380 みりょう/魅了 さ/さ れ/れ -1.209427 みりょく/魅力 に/に 「/「 -0.811445 みんせい/民生 ひん/品 を/を -0.527032 む/む -1.190723 む/む せかい/世界 かくち/各地 -0.484743 むか/向か っ/っ て/て -1.292535 むけ/向け て/て しゅっこう/出航 -1.298845 むけ/向け の/の ちんたい/賃貸 -0.907687 むす/結 ぶ/ぶ とし/都市 -1.134412 むだ/無駄 に/に し/し -1.140716 め/目 が/が な/な -1.292678 めいぎ/名義 で/で しなりお/シナリオ -0.791874 めいじ/明治 まつ/末 に/に -1.026263 めいじ/明治 34/34 ねん/年 -0.882239 めいじ/明治 40/40 ねん/年 -1.229843 めがね/眼鏡 や/や あやし/怪し -0.907687 めぐろ/目黒 も/盛 とよみ/豊見 -0.568885 めざ/目指 し/し て/て -0.663583 めだ/目立 つ/つ -1.297399 めんどう/面倒 を/を み/見 -0.527032 めんばー/メンバー -1.299065 も/も 、/、 おおく/多く -0.242910 も/も あ/あ る/る -0.882239 も/も いま/今 い/い -1.100099 も/も おお/多 い/い -1.177948 も/も おこな/行 っ/っ -1.026263 も/も か/書 い/い -0.896099 も/も かかわ/かかわ ら/ら -0.896099 も/も かかわ/関わ ら/ら -0.843128 も/も けいそう/係争 が/が -0.876082 も/も けんとう/検討 さ/さ -0.785872 も/も げんえき/現役 の/の -0.882239 も/も せかんど/セカンド ・/・ -0.907687 も/も そうだ/操舵 しつ/室 -1.249116 も/も その/その えいきょう/影響 -0.901251 も/も ととのえ/整え られ/られ -1.060500 も/も な/な り/り -0.844263 も/も はっかく/発覚 し/し -0.846542 も/も ばんのう/万能 で/で -0.283011 も/も ふく/含 む/む -0.907687 も/も ふたたび/再び わよ/和与 -1.229843 も/も 2/2 ど/度 -0.256623 も/持 っ/っ た/た -0.907687 も/盛 とよみ/豊見 おや/親 -1.274276 もう/網 も/も ととのえ/整え -0.785872 もうり/毛利 よんじゅういち/四一 の/の -0.432004 もたら/もたら し/し た/た -0.785872 もと/元 ろういん/老院 の/の -1.293436 もの/もの が/が ふるい/ふるい -1.247291 もの/もの と/と さ/さ -1.294694 もの/もの は/は うなぎ/鰻 -1.296312 もの/もの を/を いりょう/医療 -1.231825 もの/者 に/に たい/対 -1.294694 ものがたり/物語 は/は かた/語 -1.296312 ものごと/物事 を/を けん/剣 -0.785872 もも/もも うら/裏 の/の -0.527032 もよう/模様 -0.843128 もり/森 ながよし/長可 が/が -0.882239 や/や あやし/怪し い/い -1.062143 や/や えんじん/エンジン はそん/破損 -0.811445 や/や おーすとらりあ/オーストラリア を/を -0.902549 や/や くさかげろう/クサカゲロウ など/など -0.907687 や/や なおひろ/直弘 りゅうじ/龍治 -0.836381 や/や はだに/ハダニ 、/、 -0.811445 や/や ふうけい/風景 を/を -0.791874 や/や ろれーた/ロレータ に/に -1.288348 やく/役 が/が おお/多 -0.785872 やく/約 はんすう/半数 の/の -1.015928 やく/約 5/5 、/、 -0.844263 やっと/やっと とうちゃく/到着 し/し -1.132305 やよい/弥生 じだい/時代 ・/・ -1.366969 やん/やん よ/よ (/( -1.374608 やん/やん よ/よ )/) -1.283178 ゆうしゅう/優秀 な/な うえ/上 -1.258019 ゆうしょう/優勝 する/する こと/こと -1.061463 ゆうよ/猶予 きかん/期間 ちゅう/中 -1.298845 ゆうれい/ユウレイ の/の ちようこ/蝶子 -0.093796 よ/よ っ/っ て/て -0.435186 よ/よ り/り 、/、 -1.497807 よ/よ り/り 「/「 -1.537218 よ/よ り/り ぷらちな/プラチナ -1.570349 よ/よ る/る きゃらくたー/キャラクター -1.572057 よ/よ る/る せき/赤 -1.260204 よ/よ れ/れ ば/ば -1.269668 よ/よ (/( ぼこぼこ/ボコボコ -0.947860 よ/よ )/) 」/」 -0.359615 よ/呼 ん/ん だ/だ -0.843128 よう/よう しじ/指示 が/が -0.876082 よう/よう せっけい/設計 さ/さ -0.657126 よう/よう で/で あ/あ -1.283178 よう/よう な/な いしょう/衣装 -1.031385 よう/洋 せんそう/戦争 で/で -0.904946 よう/洋 ぶたい/部隊 に/に -0.907687 ようかい/妖怪 じょ/序 れつ/列 -0.714481 ようかい/妖怪 で/で は/は -1.162253 ようかい/妖怪 と/と い/言 -0.846542 ようし/容姿 たんれい/端麗 で/で -0.657126 ようし/容姿 で/で あ/あ -1.062143 よくちょう/翌朝 だい/代 かんしょ/官所 -0.888353 よばい/夜這い 」/」 を/を -0.039746 よびだ/呼び出 さ/さ れ/れ -0.907687 よみ/読み きり/切り けいしき/形式 -0.977295 よろこ/喜 ん/ん で/で -1.239894 よんじゅういち/四一 の/の ふたり/二人 -1.268411 よーろっぱ/ヨーロッパ ・/・ あふりか/アフリカ -0.629480 ら/ら か/か の/の -0.811445 ら/ら ざる/ざる を/を -1.241119 ら/ら ず/ず 、/、 -1.451906 ら/ら ず/ず つね/常 -1.451906 ら/ら ず/ず ふみやす/文保 -1.089276 ら/ら せ/せ る/る -1.013470 ら/ら れ/れ た/た -1.012253 ら/ら れ/れ て/て -1.009831 ら/ら れ/れ る/る -1.297399 ら/ら を/を しき/指揮 -0.936957 らいん/ライン に/に よ/よ -1.239441 らずふぁーど/ラズファード に/に よびだ/呼び出 -1.293269 られ/られ 、/、 6/6 -0.287377 られ/られ た/た -0.685749 られ/られ て/て い/い -0.803428 られ/られ な/な い/い -0.641976 られ/られ る/る -1.286456 らんきんぐ/ランキング で/で 9/9 -0.432004 らんくいん/ランクイン し/し た/た -1.297737 らーる/ラール の/の ぶたい/部隊 -2.321966 り/り 、/、 くろす/クロス -2.321966 り/り 、/、 こみっく/コミック -2.321966 り/り 、/、 しっこう/執行 -2.321966 り/り 、/、 すう/数 -2.321966 り/り 、/、 すご/凄 -2.211942 り/り 、/、 せかい/世界 -1.926908 り/り 、/、 とうじ/当時 -2.310576 り/り 、/、 はいき/排気 -2.321966 り/り 、/、 ぶそう/武装 -2.321966 り/り 、/、 まさと/正人 -2.321966 り/り 、/、 まにら/マニラ -2.321966 り/り 、/、 めがね/眼鏡 -1.926908 り/り 、/、 1956/1956 -1.269504 り/り 「/「 おりじんきー/オリジンキー -0.907687 り/り ぷらちな/プラチナ にんてい/認定 -0.905156 りくじょう/陸上 ばくりょう/幕僚 ちょう/長 -1.297399 りくろ/陸路 を/を たいくつ/退屈 -0.903850 りつ/立 のう/農 がっこう/学校 -1.293436 りま/りま が/が しんけん/真剣 -0.866989 りま/りま に/に は/は -1.298845 りま/りま の/の たんじょう/誕生 -0.889338 りゅう/龍 」/」 の/の -1.299065 りゅうじ/龍治 、/、 うちとみ/内冨 -0.557769 りょういき/領域 と/と し/し -0.907687 りよん/リヨン こくりつ/国立 こうとう/高等 -1.293722 りりーす/リリース し/し だい/大 -1.299406 りん/林 に/に してい/指定 -1.062143 りーぐ/リーグ しゅい/首位 だしゃ/打者 -0.012782 る/る -1.269504 る/る 「/「 ぼっ/ぼっ -0.846542 る/る あたり/あたり で/で -1.208527 る/る か/か えら/選 -0.814606 る/る が/が 、/、 -0.898668 る/る きいろあざみうま/キイロアザミウマ や/や -1.061463 る/る きゃらくたー/キャラクター にんき/人気 -0.899958 る/る きんだい/近代 てき/的 -0.941668 る/る ぎいん/議員 の/の -0.843128 る/る くせ/癖 が/が -0.882239 る/る くんしょう/勲章 ・/・ -1.019749 る/る こと/こと が/が -1.357543 る/る こと/こと に/に -0.417907 る/る こと/こと を/を -0.791874 る/る ごと/毎 に/に -0.907687 る/る さいしょう/崔鍾 しょく/植 -0.907687 る/る ざいにち/在日 べいぐん/米軍 -0.544521 る/る しょうねん/少年 しほう/司法 -0.846542 る/る じんぶつ/人物 で/で -0.907687 る/る せき/赤 けっきゅう/血球 -0.386631 る/る ため/ため に/に -0.907687 る/る だんせい/弾性 は/波 -1.308818 る/る と/と 、/、 -1.368466 る/る と/と い/い -1.740702 る/る と/と せいむ/政務 -1.083805 る/る など/など 、/、 -1.103227 る/る に/に も/も -0.907687 る/る ひろし/汎 あらぶ/アラブ -0.907687 る/る まんが/まんが かれっじ/カレッジ -1.005053 る/る もの/もの を/を -0.867606 る/る もよう/模様 -1.166473 る/る よう/よう せっけい/設計 -1.821593 れ/れ 、/、 あいてむ/アイテム -1.821593 れ/れ 、/、 いぎりす/イギリス -2.096261 れ/れ 、/、 けっせい/結成 -2.096261 れ/れ 、/、 してい/姉弟 -2.061142 れ/れ 、/、 だい/大 -1.821593 れ/れ 、/、 とうじ/当時 -2.089451 れ/れ 、/、 はつね/初音 -1.269504 れ/れ 「/「 まんざい/漫才 -0.360400 れ/れ た/た -1.553097 れ/れ た/た 、/、 -2.024690 れ/れ た/た 」/」 -1.759543 れ/れ た/た えいせい/衛生 -2.159131 れ/れ た/た ぜん/全 -1.697264 れ/れ た/た (/( -1.560975 れ/れ て/て 、/、 -0.133776 れ/れ て/て い/い -1.778228 れ/れ て/て お/お -2.359056 れ/れ て/て き/き -0.963620 れ/れ ば/ば 、/、 -0.425670 れ/れ る/る -1.705796 れ/れ る/る が/が -2.106766 れ/れ る/る ごと/毎 -2.106766 れ/れ る/る だんせい/弾性 -2.060390 れ/れ る/る など/など -2.106766 れ/れ る/る ひろし/汎 -1.203886 れい/令 だい/第 6/6 -0.991213 れい/令 (/( しょうわ/昭和 -0.725392 れおん/レオン は/は 、/、 -1.270554 れきし/歴史 」/」 536/536 -0.791874 れこーど/レコード きょうかい/協会 に/に -0.907211 れっど/レッド うっど/ウッド こうつう/交通 -0.644326 れつ/列 だい/第 に/二 -1.256505 ればのん/レバノン も/も その/その -0.905156 れんぽう/連邦 ぎかい/議会 ぎいん/議員 -1.298845 ろういん/老院 の/の そうだん/相談 -1.062143 ろく/六 ばん/番 て/手 -0.811445 ろせん/路線 ばす/バス を/を -1.299406 ろれーた/ロレータ に/に い/行 -1.273170 ろんぶん/論文 も/も か/書 -1.297137 わ/わ れ/れ 、/、 -0.882281 わ/わ れ/れ た/た -0.325223 わ/わ れ/れ て/て -1.345385 わ/わ れ/れ る/る -1.253675 わか/若 く/く かわいらし/可愛らし -0.904946 わしんとん/ワシントン ぐん/軍 に/に -0.846542 わずか/わずか いちよ/一代 で/で -0.484743 わた/亘 っ/っ て/て -1.239894 わたし/私 の/の なまえ/名前 -1.056677 わたり/渡り しょう/小 がっこう/学校 -1.292419 わたる/渉 と/と あかね/茜 -1.280559 わよ/和与 が/が おこな/行 -1.297399 わんしょう/腕章 を/を そうちゃく/装着 -1.274276 わーなー/ワーナー ・/・ ぶらざーず/ブラザーズ -0.836381 を/を あたえ/与え 、/、 -0.876082 を/を あっか/悪化 さ/さ -0.905156 を/を あらわ/表 す/す -1.029733 を/を い/言 っ/っ -0.844263 を/を いか/生か し/し -0.907211 を/を いだ/抱 き/き -1.061463 を/を いりょう/医療 じゅうじ/従事 -0.884726 を/を いわ/祝 っ/っ -0.511610 を/を うけ/受け た/た -1.309783 を/を うけ/受け て/て -0.896099 を/を うれし/うれし く/く -0.882239 を/を うんえい/運営 する/する -0.844263 を/を うんこう/運行 し/し -0.882239 を/を え/得 な/な -0.907687 を/を えん/演 じ/じ -1.203435 を/を おこな/行 う/う -0.887228 を/を おとずれ/訪れ た/た -1.045698 を/を か/書 く/く -0.974219 を/を かいさい/開催 し/し -0.885975 を/を かえ/変え て/て -0.497674 を/を かくとく/獲得 し/し -1.302430 を/を かくとく/獲得 する/する -0.887228 を/を かけ/懸け た/た -1.031478 を/を かんがえ/考え て/て -0.901251 を/を きせ/着せ られ/られ -0.856946 を/を きちょう/基調 と/と -0.348280 を/を きろく/記録 し/し -0.887228 を/を くみあわせ/組み合わせ た/た -0.844263 を/を くりかえ/繰り返 し/し -0.904946 を/を けん/剣 に/に -1.166473 を/を けんきゅう/研究 りょういき/領域 -0.791874 を/を こうせい/光成 に/に -0.885975 を/を こえ/超え て/て -0.844263 を/を さいよう/採用 し/し -0.355956 を/を し/知 っ/っ -0.901251 を/を しい/強い られ/られ -0.883481 を/を しかけ/仕掛け る/る -0.882239 を/を しき/指揮 する/する -0.882239 を/を しきゅう/支給 する/する -0.905156 を/を しめ/示 す/す -0.974219 を/を しゅうりょう/終了 し/し -0.907687 を/を しゅじん/主人 こう/公 -0.844263 を/を しゅっぱつ/出発 し/し -0.882239 を/を しょうかい/紹介 する/する -0.882239 を/を しょく/食 する/する -0.974219 を/を しよう/使用 し/し -0.882239 を/を じっしょう/実証 する/する -0.844263 を/を せつやく/節約 し/し -0.896099 を/を せま/迫 ら/ら -0.882239 を/を そうちゃく/装着 する/する -0.883481 を/を そだて/育て る/る -0.844263 を/を そつぎょう/卒業 し/し -0.882239 を/を たいくつ/退屈 な/な -0.836381 を/を たちあげ/立ち上げ 、/、 -0.791874 を/を たて/縦 に/に -1.128050 を/を ちょう/長 きかん/期間 -0.882239 を/を ちょうさ/調査 ・/・ -0.897176 を/を つうじょう/通常 の/の -0.883481 を/を つかえ/使え る/る -0.883481 を/を つづけ/続け る/る -1.167436 を/を つとめ/務め た/た -1.165051 を/を つとめ/務め て/て -0.281491 を/を つよ/強 く/く -0.844263 を/を ていきょう/提供 し/し -0.843128 を/を でんれい/伝令 が/が -0.885975 を/を となえ/唱え て/て -0.844263 を/を とりもど/取り戻 し/し -0.844263 を/を どういん/動員 し/し -0.844263 を/を はあく/把握 し/し -0.329055 を/を はじめ/始め と/と -0.844263 を/を はっしゃ/発射 し/し -0.885975 を/を へ/経 て/て -0.844263 を/を ほどこ/施 し/し -0.907211 を/を ぼうご/防護 でき/でき -0.856946 を/を ぼくし/牧師 と/と -0.907211 を/を まじえ/交え ながら/ながら -0.884726 を/を まと/まと っ/っ -0.896099 を/を まね/招 く/く -0.883481 を/を み/見 る/る -0.791874 を/を み/身 に/に -0.907687 を/を むす/結 ぶ/ぶ -0.791874 を/を むだ/無駄 に/に -0.844263 を/を めざ/目指 し/し -1.273170 を/を も/も ふく/含 -0.884726 を/を も/持 っ/っ -0.337828 を/を よ/呼 ん/ん -0.844263 を/を りりーす/リリース し/し -1.359816 ん/ん だ/だ とき/時 -1.077895 ん/ん だ/だ の/の -1.252024 ん/ん で/で い/い -0.907211 ・/・ あっぷ/アップ ”/“ -1.128050 ・/・ あふりか/アフリカ かんけい/関係 -0.907211 ・/・ あぶどぅん/アブドゥン =/= -0.907211 ・/・ あるばむ/アルバム ”/“ -0.905156 ・/・ うえるず/ウエルズ だっ/だっ -1.057456 ・/・ けんきゅう/研究 し/し -0.903850 ・/・ こふん/古墳 じだい/時代 -0.811445 ・/・ さんず/サンズ を/を -0.867606 ・/・ しゅヴぇーげりん/シュヴェーゲリン -0.320365 ・/・ そりゅーしょん/ソリューション を/を -0.888484 ・/・ たかはし/高橋 (/( -0.846542 ・/・ ちゃーと/チャート で/で -0.854612 ・/・ ふぁすべんだー/ファスベンダー は/は -0.907687 ・/・ ぶしゅう/武州 まつやま/松山 -0.903850 ・/・ ぶよう/舞踊 がっこう/学校 -0.791874 ・/・ ぶらざーず/ブラザーズ に/に -0.811445 ・/・ べんぐつそん/ベングツソン を/を -0.907211 ・/・ ほうしょう/褒章 せいど/制度 -0.907211 ・/・ まつい/松井 ぐん/軍 -0.882239 ・/・ まりーあ/マリーア ・/・ -0.907211 ・/・ りーぐ/リーグ しゅい/首位 -0.903850 ー/ー 393/393 ぺーじ/頁 -1.159535 ー/ー 9/9 ぺーじ/頁 -0.891008 (/( あか/あか )/) -1.062143 (/( えんじん/エンジン ぶろー/ブロー -0.907211 (/( げん/現 :/: -0.836381 (/( こうりゃん/コウリャン 、/、 -0.907687 (/( しょうがく/小学 かん/館 -1.382001 (/( しょうわ/昭和 17/17 -1.382001 (/( しょうわ/昭和 31/31 -1.382001 (/( しょうわ/昭和 62/62 -0.907687 (/( しれい/司令 ぶ/部 -0.882239 (/( せんきゅうひゃくきゅうじゅうはち/1998 ねん/年 -0.905156 (/( とうきょう/とうきょう おふぃす/オフィス -0.891008 (/( とうなーけん/とうなーけん )/) -0.907211 (/( どーぱんと/ドーパント ふく/含 -1.056677 (/( ほうせい/法政 けんきゅう/研究 -0.791874 (/( ぼこぼこ/ボコボコ に/に -0.791874 (/( みりょく/魅力 に/に -1.302427 (/( めいじ/明治 34/34 -1.303611 (/( めいじ/明治 40/40 -0.891008 (/( 1942/1942 )/) -0.907687 (/( 537/537 ひょう/票 -0.246935 )/) -1.591735 )/) 、/、 しゃりょう/車両 -1.591735 )/) 、/、 39/39 -0.597289 )/) 」/」 と/と -0.980098 )/) 」/」 を/を -0.382099 )/) こと/こと を/を -0.657126 )/) で/で あ/あ -1.877802 )/) に/に おおいた/大分 -1.877802 )/) に/に くにのみや/久邇宮 -1.877802 )/) に/に さんちょう/山頂 -1.004817 )/) に/に は/は -1.276765 )/) ねん/年 せい/制 -1.591304 )/) の/の げつれい/月例 -1.551559 )/) の/の 2/2 -0.808657 )/) は/は 、/、 -1.747119 )/) は/は ちゅうか/中華 -1.747119 )/) は/は ほうじん/法人 -1.061463 )/) :/: なす/ナス -1.427535 ./. 3/3 へくたーる/ヘクタール -1.425960 ./. 3/3 7/7 -1.056677 ./. 34/34 9/9 -1.128050 ./. 4/4 1/1 -1.276050 0/0 ねん/年 まえ/前 -0.867606 000/000 いし/石 -0.907687 1/1 じ/時 57/57 -0.978759 1/1 4/4 を/を -0.266133 10/10 か/日 に/に -0.781742 10/10 ねん/年 に/に -0.776015 12/12 がつ/月 26/26 -1.062143 12/12 だい/代 とうしゅ/当主 -1.061463 12/12 ばん/番 にんき/人気 -1.111825 13/13 にち/日 から/から -0.974863 14/14 い/位 に/に -1.269668 17/17 (/( 1942/1942 -0.907687 18/18 か/駆 お/逐 -0.839779 1901/1901 ねん/年 (/( -0.839779 1907/1907 ねん/年 (/( -1.225573 1942/1942 )/) ねん/年 -1.269071 1944/1944 ねん/年 3/3 -0.851802 1956/1956 ねん/年 に/に -0.920846 1956/1956 ねん/年 (/( -1.299065 2/2 、/、 000/000 -1.005053 2/2 い/位 を/を -0.266133 2/2 か/日 に/に -0.907687 2/2 じかん/時間 どらま/ドラマ -1.006009 2/2 ちゃく/着 -1.018087 2/2 つ/つ の/の -0.791874 2/2 ど/度 に/に -1.062143 2/2 ー/ー 393/393 -1.271015 2000/2000 ねん/年 9/9 -0.785872 21/21 さい/歳 の/の -0.542792 24/24 ./. 3/3 -1.303611 26/26 にち/日 くうはく/  -1.046966 26/26 にち/日 の/の -1.299065 3/3 、/、 とくに/とくに -0.706163 3/3 がつ/月 に/に -1.167053 3/3 ごう/号 533/533 -0.843128 3/3 せき/隻 が/が -0.843128 3/3 へくたーる/ヘクタール が/が -1.054828 3/3 7/7 3/3 -0.882239 300/300 ちか/近 い/い -0.637200 31/31 ねん/年 )/) -0.637200 34/34 ねん/年 )/) -1.005053 34/34 9/9 を/を -0.406779 35/35 にん/人 の/の -1.228844 39/39 2/2 ー/ー -0.530675 393/393 ぺーじ/頁 -1.215942 4/4 がつ/月 2/2 -1.222614 4/4 を/を きろく/記録 -1.058534 4/4 1/1 4/4 -0.637200 40/40 ねん/年 )/) -0.846542 44/44 しあい/試合 で/で -1.078856 45/45 しゃ/社 が/が -1.299065 5/5 、/、 800/800 -0.791874 5/5 せいまご/世孫 に/に -0.406779 5/5 にん/人 の/の -0.282511 50/50 じぎょう/事業 しゃ/者 -0.882239 5000/5000 0/0 ねん/年 -1.069901 533/533 ぺーじ/頁 、/、 -1.140309 536/536 ぺーじ/頁 (/( -0.891008 537/537 ひょう/票 )/) -0.836381 57/57 ふん/分 、/、 -0.764245 6/6 がつ/月 に/に -1.464778 6/6 がつ/月 10/10 -1.143797 6/6 ごう/号 )/) -0.637200 62/62 ねん/年 )/) -0.991415 7/7 ちゃく/着 と/と -1.075410 7/7 3/3 、/、 -0.902549 71/71 まき/巻 3/3 -1.186065 8/8 がつ/月 の/の -1.466108 8/8 がつ/月 13/13 -1.056677 8/8 ー/ー 9/9 -1.019485 800/800 にん/人 を/を -1.044651 9/9 い/位 、/、 -0.776015 9/9 がつ/月 26/26 -0.530675 9/9 ぺーじ/頁 -1.222614 9/9 を/を きろく/記録 -0.897176 :/: なす/ナス の/の -0.903850 :/: ひがしまつやま/東松山 えき/駅 -0.791874 =/= なーせる/ナーセル に/に -0.887228 =/= のいず/ノイズ 」/」 \end\ libkkc-0.3.5/tests/data/models/text3/metadata.json000066400000000000000000000001561244473050600220450ustar00rootroot00000000000000{ "name": "text3", "description": "text based 3-gram dictionary (for testing)", "type": "text3" } libkkc-0.3.5/tests/data/rules/000077500000000000000000000000001244473050600161705ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad1/000077500000000000000000000000001244473050600177545ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad1/keymap/000077500000000000000000000000001244473050600212425ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad1/keymap/hiragana.json000066400000000000000000000000021244473050600236770ustar00rootroot00000000000000{ libkkc-0.3.5/tests/data/rules/test-bad1/metadata.json000066400000000000000000000000521244473050600224240ustar00rootroot00000000000000{ "name": "", "description": "" } libkkc-0.3.5/tests/data/rules/test-bad1/rom-kana/000077500000000000000000000000001244473050600214615ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad1/rom-kana/.gitkeep000066400000000000000000000000001244473050600231000ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad10/000077500000000000000000000000001244473050600200345ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad10/keymap/000077500000000000000000000000001244473050600213225ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad10/keymap/.gitkeep000066400000000000000000000000001244473050600227410ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad10/metadata.json000066400000000000000000000000521244473050600225040ustar00rootroot00000000000000{ "name": "", "description": "" } libkkc-0.3.5/tests/data/rules/test-bad10/rom-kana/000077500000000000000000000000001244473050600215415ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad10/rom-kana/.gitkeep000066400000000000000000000000001244473050600231600ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad10/rom-kana/default.json000066400000000000000000000000501244473050600240530ustar00rootroot00000000000000{ "include": [ "test-bad9/kana" ] } libkkc-0.3.5/tests/data/rules/test-bad2/000077500000000000000000000000001244473050600177555ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad2/keymap/000077500000000000000000000000001244473050600212435ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad2/keymap/hiragana.json000066400000000000000000000000051244473050600237030ustar00rootroot00000000000000true libkkc-0.3.5/tests/data/rules/test-bad2/metadata.json000066400000000000000000000000521244473050600224250ustar00rootroot00000000000000{ "name": "", "description": "" } libkkc-0.3.5/tests/data/rules/test-bad2/rom-kana/000077500000000000000000000000001244473050600214625ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad2/rom-kana/.gitkeep000066400000000000000000000000001244473050600231010ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad3/000077500000000000000000000000001244473050600177565ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad3/keymap/000077500000000000000000000000001244473050600212445ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad3/keymap/hiragana.json000066400000000000000000000000241244473050600237050ustar00rootroot00000000000000{ "include": true } libkkc-0.3.5/tests/data/rules/test-bad3/metadata.json000066400000000000000000000000521244473050600224260ustar00rootroot00000000000000{ "name": "", "description": "" } libkkc-0.3.5/tests/data/rules/test-bad3/rom-kana/000077500000000000000000000000001244473050600214635ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad3/rom-kana/.gitkeep000066400000000000000000000000001244473050600231020ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad4/000077500000000000000000000000001244473050600177575ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad4/keymap/000077500000000000000000000000001244473050600212455ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad4/keymap/hiragana.json000066400000000000000000000000231244473050600237050ustar00rootroot00000000000000{ "define": true } libkkc-0.3.5/tests/data/rules/test-bad4/metadata.json000066400000000000000000000000521244473050600224270ustar00rootroot00000000000000{ "name": "", "description": "" } libkkc-0.3.5/tests/data/rules/test-bad4/rom-kana/000077500000000000000000000000001244473050600214645ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad4/rom-kana/.gitkeep000066400000000000000000000000001244473050600231030ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad5/000077500000000000000000000000001244473050600177605ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad5/keymap/000077500000000000000000000000001244473050600212465ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad5/keymap/hiragana.json000066400000000000000000000000501244473050600237060ustar00rootroot00000000000000{ "include": [ "test-bad5/hiragana" ] } libkkc-0.3.5/tests/data/rules/test-bad5/metadata.json000066400000000000000000000000521244473050600224300ustar00rootroot00000000000000{ "name": "", "description": "" } libkkc-0.3.5/tests/data/rules/test-bad5/rom-kana/000077500000000000000000000000001244473050600214655ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad5/rom-kana/.gitkeep000066400000000000000000000000001244473050600231040ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad6/000077500000000000000000000000001244473050600177615ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad6/keymap/000077500000000000000000000000001244473050600212475ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad6/keymap/hiragana.json000066400000000000000000000000521244473050600237110ustar00rootroot00000000000000{ "include": [ "nonexistent/hiragana" ] } libkkc-0.3.5/tests/data/rules/test-bad6/metadata.json000066400000000000000000000000521244473050600224310ustar00rootroot00000000000000{ "name": "", "description": "" } libkkc-0.3.5/tests/data/rules/test-bad6/rom-kana/000077500000000000000000000000001244473050600214665ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad6/rom-kana/.gitkeep000066400000000000000000000000001244473050600231050ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad7/000077500000000000000000000000001244473050600177625ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad7/keymap/000077500000000000000000000000001244473050600212505ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad7/keymap/hiragana.json000066400000000000000000000000611244473050600237120ustar00rootroot00000000000000{ "define": { "keymap": true } } libkkc-0.3.5/tests/data/rules/test-bad7/metadata.json000066400000000000000000000000521244473050600224320ustar00rootroot00000000000000{ "name": "", "description": "" } libkkc-0.3.5/tests/data/rules/test-bad7/rom-kana/000077500000000000000000000000001244473050600214675ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad7/rom-kana/.gitkeep000066400000000000000000000000001244473050600231060ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad8/000077500000000000000000000000001244473050600177635ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad8/keymap/000077500000000000000000000000001244473050600212515ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad8/keymap/.gitkeep000066400000000000000000000000001244473050600226700ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad8/metadata.json000066400000000000000000000000521244473050600224330ustar00rootroot00000000000000{ "name": "", "description": "" } libkkc-0.3.5/tests/data/rules/test-bad8/rom-kana/000077500000000000000000000000001244473050600214705ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad8/rom-kana/.gitkeep000066400000000000000000000000001244473050600231070ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad8/rom-kana/default.json000066400000000000000000000001201244473050600240000ustar00rootroot00000000000000{ "define": { "rom-kana": { "a": true } } } libkkc-0.3.5/tests/data/rules/test-bad9/000077500000000000000000000000001244473050600177645ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad9/keymap/000077500000000000000000000000001244473050600212525ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad9/keymap/.gitkeep000066400000000000000000000000001244473050600226710ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad9/metadata.json000066400000000000000000000000521244473050600224340ustar00rootroot00000000000000{ "name": "", "description": "" } libkkc-0.3.5/tests/data/rules/test-bad9/rom-kana/000077500000000000000000000000001244473050600214715ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-bad9/rom-kana/default.json000066400000000000000000000001221244473050600240030ustar00rootroot00000000000000{ "define": { "rom-kana": { "a": [ "" ] } } } libkkc-0.3.5/tests/data/rules/test-empty/000077500000000000000000000000001244473050600203035ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-empty/keymap/000077500000000000000000000000001244473050600215715ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-empty/keymap/.gitkeep000066400000000000000000000000001244473050600232100ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-empty/metadata.json000066400000000000000000000000521244473050600227530ustar00rootroot00000000000000{ "name": "", "description": "" } libkkc-0.3.5/tests/data/rules/test-empty/rom-kana/000077500000000000000000000000001244473050600220105ustar00rootroot00000000000000libkkc-0.3.5/tests/data/rules/test-empty/rom-kana/.gitkeep000066400000000000000000000000001244473050600234270ustar00rootroot00000000000000libkkc-0.3.5/tests/decoder.vala000066400000000000000000000055611244473050600164060ustar00rootroot00000000000000class DecoderTests : Kkc.TestCase { Kkc.Decoder text2_decoder; Kkc.Decoder text3_decoder; Kkc.Decoder sorted2_decoder; Kkc.Decoder sorted3_decoder; public DecoderTests () { base ("Decoder"); /* Set up the tests */ add_test ("conversion", this.test_conversion); add_test ("constraints", this.test_constraints); } void test_conversion () { string[] sentences = { "けいざいはきゅうこうか", "しごとのことをかんがえる", "さきにくる", "てつだったが", "わたしのなまえはなかのです" }; foreach (var sentence in sentences) { text2_decoder.decode (sentence, 1, new int[0]); text3_decoder.decode (sentence, 1, new int[0]); sorted2_decoder.decode (sentence, 1, new int[0]); sorted3_decoder.decode (sentence, 1, new int[0]); } } void test_constraints () { int[] constraints = { 4, 5 }; var text2_segments = text2_decoder.decode ("けいざいはきゅうこうか", 1, constraints); var text3_segments = text3_decoder.decode ("けいざいはきゅうこうか", 1, constraints); var sorted2_segments = sorted2_decoder.decode ("けいざいはきゅうこうか", 1, constraints); var sorted3_segments = sorted3_decoder.decode ("けいざいはきゅうこうか", 1, constraints); } public override void set_up () { try { Kkc.LanguageModel model = Kkc.LanguageModel.load ("text2"); text2_decoder = Kkc.Decoder.create (model); } catch (Kkc.LanguageModelError e) { stderr.printf ("%s\n", e.message); } try { Kkc.LanguageModel model = Kkc.LanguageModel.load ("text3"); text3_decoder = Kkc.Decoder.create (model); } catch (Kkc.LanguageModelError e) { stderr.printf ("%s\n", e.message); } try { Kkc.LanguageModel model = Kkc.LanguageModel.load ("sorted2"); sorted2_decoder = Kkc.Decoder.create (model); } catch (Kkc.LanguageModelError e) { stderr.printf ("%s\n", e.message); } try { Kkc.LanguageModel model = Kkc.LanguageModel.load ("sorted3"); sorted3_decoder = Kkc.Decoder.create (model); } catch (Kkc.LanguageModelError e) { stderr.printf ("%s\n", e.message); } } public override void tear_down () { text2_decoder = null; text3_decoder = null; sorted2_decoder = null; sorted3_decoder = null; } } int main (string[] args) { Intl.setlocale (LocaleCategory.ALL, ""); Test.init (ref args); Kkc.init (); TestSuite root = TestSuite.get_root (); root.add_suite (new DecoderTests ().get_suite ()); Test.run (); return 0; } libkkc-0.3.5/tests/dictionary-list.vala000066400000000000000000000033601244473050600201120ustar00rootroot00000000000000class DictionaryListTests : Kkc.TestCase { public DictionaryListTests () { base ("DictionaryList"); add_test ("properties", this.test_properties); add_test ("collection", this.test_collection); } void test_properties () { var dictionaries = new Kkc.DictionaryList (); int size; dictionaries.get ("size", out size); var enum_class = (EnumClass) typeof (Kkc.DictionaryCallbackReturn).class_ref (); for (int i = enum_class.minimum; i <= enum_class.maximum; i++) { var enum_value = enum_class.get_value (i); assert (enum_value != null); } } void test_collection () { var dictionaries = new Kkc.DictionaryList (); Kkc.Dictionary? system_segment_dictionary = null; try { var srcdir = Environment.get_variable ("srcdir"); assert (srcdir != null); system_segment_dictionary = new Kkc.SystemSegmentDictionary ( Path.build_filename (srcdir, "system-segment-dictionary")); } catch (Error e) { stderr.printf ("%s\n", e.message); } dictionaries.add (system_segment_dictionary); assert (dictionaries.size == 1); var empty_dictionary = new Kkc.EmptySegmentDictionary (); dictionaries.add (empty_dictionary); assert (dictionaries.size == 2); dictionaries.remove (empty_dictionary); assert (dictionaries.size == 1); dictionaries.clear (); assert (dictionaries.size == 0); } } int main (string[] args) { Test.init (ref args); Kkc.init (); TestSuite root = TestSuite.get_root (); root.add_suite (new DictionaryListTests ().get_suite ()); Test.run (); return 0; } libkkc-0.3.5/tests/encoding.vala000066400000000000000000000021071244473050600165600ustar00rootroot00000000000000class EncodingConverterTests : Kkc.TestCase { public EncodingConverterTests () { base ("EncodingConverter"); add_test ("creation", this.test_creation); add_test ("properties", this.test_properties); } void test_creation () { try { var converter = new Kkc.EncodingConverter ("UTF-8"); } catch (Error e) { assert_not_reached (); } try { var converter = new Kkc.EncodingConverter ("INVALID"); assert_not_reached (); } catch (Error e) { } } void test_properties () { Kkc.EncodingConverter converter; try { converter = new Kkc.EncodingConverter ("UTF-8"); } catch (Error e) { assert_not_reached (); } string encoding; converter.get ("encoding", out encoding); } } int main (string[] args) { Test.init (ref args); Kkc.init (); TestSuite root = TestSuite.get_root (); root.add_suite (new EncodingConverterTests ().get_suite ()); Test.run (); return 0; } libkkc-0.3.5/tests/expression.vala000066400000000000000000000030431244473050600171710ustar00rootroot00000000000000class ExpressionTests : Kkc.TestCase { public ExpressionTests () { base ("Expression"); /* Set up the tests */ add_test ("eval", this.test_eval); } void test_eval () { assert (Kkc.Expression.eval ("(\\a)") == "(\\a)"); assert (Kkc.Expression.eval ("(concat \"DOS\\057V\")") == "DOS/V"); assert (Kkc.Expression.eval ("(concat \"DOS\\x2fV\")") == "DOS/V"); assert (Kkc.Expression.eval ("(concat \"DOS\\x2FV\")") == "DOS/V"); assert (Kkc.Expression.eval ("(pwd)") == Environment.get_current_dir ()); Kkc.Expression.eval ("(current-time-string)"); assert (Kkc.Expression.eval ("(unknown)") == "(unknown)"); assert (Kkc.Expression.eval ("(kkc-version)") == "%s/%s".printf (Config.PACKAGE_NAME, Config.PACKAGE_VERSION)); assert (Kkc.Expression.eval ("(concat \"\\141\")") == "a"); assert (Kkc.Expression.eval ("(concat \"\\1411\")") == "a1"); assert (Kkc.Expression.eval ("(concat \"\\090\")") == "\090"); assert (Kkc.Expression.eval ("(concat \"\\0/\")") == "\0/"); assert (Kkc.Expression.eval ("(concat \"\\x61g\")") == "ag"); assert (Kkc.Expression.eval ("(concat \"\\x61/\")") == "a/"); assert (Kkc.Expression.eval ("(concat \"\\x61`\")") == "a`"); } } int main (string[] args) { Test.init (ref args); Kkc.init (); TestSuite root = TestSuite.get_root (); root.add_suite (new ExpressionTests ().get_suite ()); Test.run (); return 0; } libkkc-0.3.5/tests/key-event.vala000066400000000000000000000060251244473050600167040ustar00rootroot00000000000000class KeyEventTests : Kkc.TestCase { public KeyEventTests () { base ("KeyEvent"); add_test ("properties", this.test_properties); add_test ("parse", this.test_parse); add_test ("keyname", this.test_keyname); add_test ("simple-filter", this.test_simple_filter); add_test ("kana-filter", this.test_kana_filter); add_test ("nicola-filter", this.test_nicola_filter); } void test_properties () { var key = new Kkc.KeyEvent.from_string ("(control a)"); string name; uint unicode; uint keyval; uint keycode; Kkc.ModifierType modifiers; key.get ("name", out name, "unicode", out unicode, "keyval", out keyval, "keycode", out keycode, "modifiers", out modifiers); assert (name == "a"); } void test_parse () { try { var from_str = "(shift control meta hyper super alt lshift rshift release a)"; var to_str = "(control meta hyper super alt lshift rshift release a)"; var key = new Kkc.KeyEvent.from_string (from_str); assert (key.to_string () == to_str); } catch (Kkc.KeyEventFormatError e) { assert_not_reached (); } try { new Kkc.KeyEvent.from_string ("(nonexistent a)"); assert_not_reached (); } catch (Kkc.KeyEventFormatError e) { } try { new Kkc.KeyEvent.from_string ("(control foo)"); assert_not_reached (); } catch (Kkc.KeyEventFormatError e) { } try { new Kkc.KeyEvent.from_string ("S-C-M-G-a"); } catch (Kkc.KeyEventFormatError e) { assert_not_reached (); } } void test_keyname () { var name = Kkc.KeyEventUtils.keyval_name (Kkc.Keysyms.VoidSymbol); assert (name == "VoidSymbol"); var keyval = Kkc.KeyEventUtils.keyval_from_name ("VoidSymbol"); assert (keyval == Kkc.Keysyms.VoidSymbol); } void test_simple_filter () { new Kkc.SimpleKeyEventFilter (); } void test_kana_filter () { var filter = new Kkc.KanaKeyEventFilter (); var from_key = new Kkc.KeyEvent.from_x_event (Kkc.Keysyms.backslash, 124, 0); var to_key = filter.filter_key_event (from_key); assert (to_key.keyval == Kkc.Keysyms.yen); } void test_nicola_filter () { var filter = new Kkc.NicolaKeyEventFilter (); var from_key = new Kkc.KeyEvent.from_x_event (Kkc.Keysyms.a, 0, 0); var to_key = filter.filter_key_event (from_key); } } int main (string[] args) { Test.init (ref args); Kkc.init (); TestSuite root = TestSuite.get_root (); root.add_suite (new KeyEventTests ().get_suite ()); Test.run (); return 0; } libkkc-0.3.5/tests/keymap.vala000066400000000000000000000031571244473050600162660ustar00rootroot00000000000000class KeymapTests : Kkc.TestCase { public KeymapTests () { base ("Keymap"); add_test ("creation", this.test_creation); add_test ("properties", this.test_properties); add_test ("lookup", this.test_lookup); } void test_creation () { Kkc.RuleMetadata? metadata; metadata = Kkc.RuleMetadata.find ("nonexistent"); assert (metadata == null); metadata = Kkc.RuleMetadata.find ("kana"); assert (metadata != null); } void test_properties () { var metadata = Kkc.RuleMetadata.find ("kana"); var rule = new Kkc.Rule (metadata); var keymap = rule.get_keymap (Kkc.InputMode.HIRAGANA) as Object; Kkc.Keymap parent; keymap.get ("parent", out parent); keymap.set ("parent", parent); } void test_lookup () { var metadata = Kkc.RuleMetadata.find ("kana"); var rule = new Kkc.Rule (metadata); var keymap = rule.get_keymap (Kkc.InputMode.HIRAGANA); string? command; command = keymap.lookup_key (new Kkc.KeyEvent.from_string ("(alt r)")); assert (command == "register"); Kkc.KeyEvent? key; key = keymap.where_is ("register"); assert (key.to_string () == "(alt r)"); var commands = keymap.commands (); var entries = keymap.entries (); assert (keymap.get_command_label ("register") == "Register Word"); } } int main (string[] args) { Test.init (ref args); Kkc.init (); TestSuite root = TestSuite.get_root (); root.add_suite (new KeymapTests ().get_suite ()); Test.run (); return 0; } libkkc-0.3.5/tests/language-model-metadata-bad1.json000066400000000000000000000000521244473050600222610ustar00rootroot00000000000000{ "name": "", "description": "" } libkkc-0.3.5/tests/language-model-metadata-bad2.json000066400000000000000000000001011244473050600222550ustar00rootroot00000000000000{ "name": "", "description": "", "type": "unknown" } libkkc-0.3.5/tests/language-model.vala000066400000000000000000000025151244473050600176560ustar00rootroot00000000000000class LanguageModelTests : Kkc.TestCase { public LanguageModelTests () { base ("LanguageModel"); add_test ("load", this.test_load); } void test_load () { try { Kkc.LanguageModel.load ("nonexistent"); assert_not_reached (); } catch (Kkc.LanguageModelError e) { } try { Kkc.LanguageModel.load ("text3"); } catch (Kkc.LanguageModelError e) { assert_not_reached (); } var srcdir = Environment.get_variable ("srcdir"); assert (srcdir != null); try { new Kkc.LanguageModelMetadata ( "bad1", Path.build_filename (srcdir, "language-model-metadata-bad1.json")); assert_not_reached (); } catch (Error e) { } try { new Kkc.LanguageModelMetadata ( "bad2", Path.build_filename (srcdir, "language-model-metadata-bad2.json")); assert_not_reached (); } catch (Error e) { } } } int main (string[] args) { Test.init (ref args); Kkc.init (); TestSuite root = TestSuite.get_root (); root.add_suite (new LanguageModelTests ().get_suite ()); Test.run (); return 0; } libkkc-0.3.5/tests/lib/000077500000000000000000000000001244473050600146735ustar00rootroot00000000000000libkkc-0.3.5/tests/lib/Makefile.am000066400000000000000000000017711244473050600167350ustar00rootroot00000000000000noinst_LTLIBRARIES = libkkc-test.la libkkc_test_la_SOURCES = test-case.vala test-utils.vala libkkc_test_la_CFLAGS = \ $(AM_CFLAGS) \ $(GIO_CFLAGS) \ $(GEE_CFLAGS) \ $(JSON_GLIB_CFLAGS) \ $(NULL) libkkc_test_la_CPPFLAGS = \ $(AM_CPPFLAGS) \ -I$(top_srcdir) \ -I$(top_builddir) \ $(NULL) libkkc_test_la_LIBADD = \ $(AM_LIBADD) \ $(top_builddir)/libkkc/libkkc-internals.la \ $(GIO_LIBS) \ $(GEE_LIBS) \ $(JSON_GLIB_LIBS) \ $(NULL) libkkc_test_la_VALAFLAGS = \ $(ERROR_VALAFLAGS) \ $(VALAFLAGS) \ --vapidir=$(top_srcdir)/libkkc \ --pkg gobject-2.0 \ --pkg gio-2.0 \ --pkg gee-0.8 \ --pkg json-glib-1.0 \ --pkg kkc-internals-1.0 \ --library kkc-test \ -H libkkc-test.h \ -g \ $(NULL) MAINTAINERCLEANFILES = \ $(libkkc_test_la_SOURCES:.vala=.c) \ libkkc_test_la_vala.stamp \ libkkc-test.h \ kkc-test.vapi \ $(NULL) EXTRA_DIST = \ $(MAINTAINERCLEANFILES) \ $(NULL) -include $(top_srcdir)/git.mk libkkc-0.3.5/tests/lib/test-case.vala000066400000000000000000000063341244473050600174360ustar00rootroot00000000000000/* testcase.vala * * Copyright (C) 2009 Julien Peeters * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * Author: * Julien Peeters * * Copied from libgee/tests/testcase.vala. */ public abstract class Kkc.TestCase : Object { private GLib.TestSuite _suite; private Adaptor[] _adaptors = new Adaptor[0]; public delegate void TestMethod (); public TestCase (string name) { this._suite = new GLib.TestSuite (name); } public void add_test (string name, TestMethod test) { var adaptor = new Adaptor (name, test, this); this._adaptors += adaptor; this._suite.add (new GLib.TestCase ( adaptor.name, adaptor.set_up, adaptor.run, adaptor.tear_down)); } public virtual void set_up () { } public virtual void tear_down () { } public GLib.TestSuite get_suite () { return this._suite; } private class Adaptor { public string name { get; private set; } private unowned TestMethod _test; private TestCase _test_case; public Adaptor (string name, TestMethod test, TestCase test_case) { this._name = name; this._test = test; this._test_case = test_case; } public void set_up (void* fixture) { GLib.set_printerr_handler (Adaptor._printerr_func_stack_trace); Log.set_default_handler (this._log_func_stack_trace); this._test_case.set_up (); } private static void _printerr_func_stack_trace (string? text) { if (text == null || str_equal (text, "")) return; stderr.printf (text); /* Print a stack trace since we've hit some major issue */ GLib.on_error_stack_trace ("libtool --mode=execute gdb"); } private void _log_func_stack_trace (string? log_domain, LogLevelFlags log_levels, string message) { Log.default_handler (log_domain, log_levels, message); /* Print a stack trace for any message at the warning level or above */ if ((log_levels & (LogLevelFlags.LEVEL_WARNING | LogLevelFlags.LEVEL_ERROR | LogLevelFlags.LEVEL_CRITICAL)) != 0) { GLib.on_error_stack_trace ("libtool --mode=execute gdb"); } } public void run (void* fixture) { this._test (); } public void tear_down (void* fixture) { this._test_case.tear_down (); } } } libkkc-0.3.5/tests/lib/test-utils.vala000066400000000000000000000065611244473050600176650ustar00rootroot00000000000000namespace Kkc.TestUtils { public static void remove_dir (string name) throws Error { var dir = Dir.open (name); string? child_name; while ((child_name = dir.read_name ()) != null) { var child_filename = Path.build_filename (name, child_name); if (FileUtils.test (child_filename, FileTest.IS_DIR)) remove_dir (child_filename); else FileUtils.remove (child_filename); } DirUtils.remove (name); } public static void check_conversion_result (Kkc.Context context, Json.Object expected) { if (expected.has_member ("output")) { var expected_output = expected.get_string_member ("output"); var output = context.poll_output (); assert (output == expected_output); } if (expected.has_member ("input")) { var expected_input = expected.get_string_member ("input"); assert (context.input == expected_input); } if (expected.has_member ("segments")) { var expected_segments = expected.get_string_member ("segments"); assert (context.segments.get_output () == expected_segments); } if (expected.has_member ("segments_size")) { var expected_segments_size = expected.get_int_member ("segments_size"); assert (context.segments.size == expected_segments_size); } if (expected.has_member ("segments_cursor_pos")) { var expected_segments_cursor_pos = expected.get_int_member ("segments_cursor_pos"); assert (context.segments.cursor_pos == expected_segments_cursor_pos); } if (expected.has_member ("candidates_size")) { var expected_candidates_size = expected.get_int_member ("candidates_size"); assert (context.candidates.size == expected_candidates_size); } if (expected.has_member ("input_cursor_pos")) { var expected_input_cursor_pos = expected.get_int_member ("input_cursor_pos"); assert (context.input_cursor_pos == expected_input_cursor_pos); } } public void do_conversions (Kkc.Context context, string filename) { Json.Parser parser = new Json.Parser (); try { if (!parser.load_from_file (filename)) assert_not_reached (); } catch (GLib.Error e) { assert_not_reached (); } var root = parser.get_root (); assert (root.get_node_type () == Json.NodeType.ARRAY); var array = root.get_array (); for (var i = 0; i < array.get_length (); i++) { var node = array.get_element (i); assert (node.get_node_type () == Json.NodeType.OBJECT); var object = node.get_object (); if (object.has_member ("auto_correct")) context.auto_correct = object.get_boolean_member ("auto_correct"); assert (object.has_member ("keys")); var keys = object.get_string_member ("keys"); try { context.process_key_events (keys); } catch (Kkc.KeyEventFormatError e) { assert_not_reached (); } check_conversion_result (context, object); context.reset (); context.clear_output (); } } } libkkc-0.3.5/tests/metadata-bad1.json000066400000000000000000000000061244473050600174010ustar00rootroot00000000000000false libkkc-0.3.5/tests/metadata-bad2.json000066400000000000000000000000321244473050600174010ustar00rootroot00000000000000{ "description": "" } libkkc-0.3.5/tests/metadata-bad3.json000066400000000000000000000000231244473050600174020ustar00rootroot00000000000000{ "name": "" } libkkc-0.3.5/tests/metadata-bad4.json000066400000000000000000000000021244473050600174000ustar00rootroot00000000000000{ libkkc-0.3.5/tests/metadata-file.vala000066400000000000000000000044301244473050600174700ustar00rootroot00000000000000class EmptyMetadata : Kkc.MetadataFile { public EmptyMetadata (string name, string filename) throws Error { base (name, filename); } public override bool parse (Json.Object object) throws Error { return true; } } class MetadataFileTests : Kkc.TestCase { public MetadataFileTests () { base ("MetadataFile"); add_test ("load", this.test_load); add_test ("properties", this.test_properties); } void test_load () { const string good[] = { "metadata" }; const string bad[] = { "metadata-bad1", "metadata-bad2", "metadata-bad3", "metadata-bad4" }; var srcdir = Environment.get_variable ("srcdir"); assert (srcdir != null); foreach (var name in good) { try { new EmptyMetadata ( name, Path.build_filename (srcdir, name + ".json")); } catch (Error e) { assert_not_reached (); } } foreach (var name in bad) { try { new EmptyMetadata ( name, Path.build_filename (srcdir, name + ".json")); assert_not_reached (); } catch (Error e) { } } } void test_properties () { var srcdir = Environment.get_variable ("srcdir"); assert (srcdir != null); Kkc.MetadataFile metadata; try { metadata = new EmptyMetadata ( "metadata", Path.build_filename (srcdir, "metadata.json")); } catch (Error e) { assert_not_reached (); } string name; string label; string description; string filename; metadata.get ("name", out name, "label", out label, "description", out description, "filename", out filename); } } int main (string[] args) { Test.init (ref args); Kkc.init (); TestSuite root = TestSuite.get_root (); root.add_suite (new MetadataFileTests ().get_suite ()); Test.run (); return 0; } libkkc-0.3.5/tests/metadata.json000066400000000000000000000000521244473050600165750ustar00rootroot00000000000000{ "name": "", "description": "" } libkkc-0.3.5/tests/rom-kana.vala000066400000000000000000000075751244473050600165150ustar00rootroot00000000000000class RomKanaTests : Kkc.TestCase { public RomKanaTests () { base ("RomKana"); add_test ("properties", this.test_properties); add_test ("default", this.test_default); add_test ("kana", this.test_kana); } void test_properties () { var metadata = Kkc.RuleMetadata.find ("default"); assert (metadata != null); var rule = new Kkc.Rule (metadata); var converter = new Kkc.RomKanaConverter (); Kkc.KanaMode mode; Kkc.PunctuationStyle style; string pending_output; string pending_input; Kkc.RomKanaCharacterList produced; converter.get ("rule", out rule, "kana-mode", out mode, "punctuation-style", out style, "pending-output", out pending_output, "pending-input", out pending_input, "produced", out produced); converter.set ("rule", rule, "kana-mode", mode, "punctuation-style", style); int size; (produced as Object).get ("size", out size); assert (size == 0); } void test_default () { var metadata = Kkc.RuleMetadata.find ("default"); assert (metadata != null); var rule = new Kkc.Rule (metadata); var converter = new Kkc.RomKanaConverter (); converter.rule = rule.rom_kana; assert (!converter.is_valid ((unichar) 257)); converter.append ('a'); assert (converter.get_produced_output () == "あ"); assert (converter.pending_output == ""); converter.produced.clear (); converter.kana_mode = Kkc.KanaMode.KATAKANA; converter.append ('a'); assert (converter.get_produced_output () == "ア"); assert (converter.pending_output == ""); converter.produced.clear (); converter.kana_mode = Kkc.KanaMode.HANKAKU_KATAKANA; converter.append ('a'); assert (converter.get_produced_output () == "ア"); assert (converter.pending_output == ""); converter.produced.clear (); converter.append ('k'); assert (converter.can_consume ('a')); converter.produced.clear (); converter.kana_mode = Kkc.KanaMode.HIRAGANA; converter.reset (); converter.auto_correct = true; converter.append_text ("convert"); assert (converter.get_produced_output () == "おんう゛ぇ"); converter.reset (); converter.auto_correct = false; converter.append_text ("convert"); assert (converter.get_produced_output () == "cおんう゛ぇr"); } void test_kana () { var metadata = Kkc.RuleMetadata.find ("kana"); assert (metadata != null); var rule = new Kkc.Rule (metadata); var converter = new Kkc.RomKanaConverter (); converter.rule = rule.rom_kana; converter.append ('a'); assert (converter.get_produced_output () == ""); assert (converter.pending_output == "ち"); converter.append ('@'); assert (converter.get_produced_output () == "ぢ"); assert (converter.pending_output == ""); converter.reset (); converter.append ('a'); converter.append ('>'); assert (converter.get_produced_output () == "ち。"); assert (converter.pending_output == ""); converter.produced.clear (); converter.kana_mode = Kkc.KanaMode.KATAKANA; converter.append_text ("4@"); assert (converter.get_produced_output () == "ヴ"); assert (converter.pending_output == ""); converter.produced.clear (); } } int main (string[] args) { Intl.setlocale (LocaleCategory.ALL, ""); Test.init (ref args); Kkc.init (); TestSuite root = TestSuite.get_root (); root.add_suite (new RomKanaTests ().get_suite ()); Test.run (); return 0; } libkkc-0.3.5/tests/rule-metadata-bad.json000066400000000000000000000001031244473050600202630ustar00rootroot00000000000000{ "name": "", "description": "", "filter": "unknown" } libkkc-0.3.5/tests/rule.vala000066400000000000000000000034551244473050600157500ustar00rootroot00000000000000class RuleTests : Kkc.TestCase { public RuleTests () { base ("Rule"); add_test ("properties", this.test_properties); add_test ("load", this.test_load); } void test_properties () { var rule = new Kkc.Rule (Kkc.RuleMetadata.find ("default")); Kkc.RuleMetadata metadata; rule.get ("metadata", out metadata); } void test_load () { const string good[] = { "test-empty" }; const string bad[] = { "test-bad1", "test-bad2", "test-bad3", "test-bad4", "test-bad5", "test-bad6", "test-bad7", "test-bad8", "test-bad9", "test-bad10" }; foreach (var name in good) { var metadata = Kkc.RuleMetadata.find (name); try { var rule = new Kkc.Rule (metadata); } catch (Error e) { assert_not_reached (); } } foreach (var name in bad) { var metadata = Kkc.RuleMetadata.find (name); try { var rule = new Kkc.Rule (metadata); assert_not_reached (); } catch (Error e) { } } var srcdir = Environment.get_variable ("srcdir"); assert (srcdir != null); try { new Kkc.RuleMetadata ( "bad", Path.build_filename (srcdir, "rule-metadata-bad.json")); assert_not_reached (); } catch (Error e) { } } } int main (string[] args) { Test.init (ref args); Kkc.init (); TestSuite root = TestSuite.get_root (); root.add_suite (new RuleTests ().get_suite ()); Test.run (); return 0; } libkkc-0.3.5/tests/segment-list.vala000066400000000000000000000012171244473050600174060ustar00rootroot00000000000000class SegmentListTests : Kkc.TestCase { public SegmentListTests () { base ("SegmentList"); add_test ("properties", this.test_properties); } void test_properties () { var segments = new Kkc.SegmentList () as Object; int cursor_pos; int size; segments.get ("cursor-pos", out cursor_pos, "size", out size); segments.set ("cursor-pos", cursor_pos); } } int main (string[] args) { Test.init (ref args); Kkc.init (); TestSuite root = TestSuite.get_root (); root.add_suite (new SegmentListTests ().get_suite ()); Test.run (); return 0; } libkkc-0.3.5/tests/segment.vala000066400000000000000000000011631244473050600164350ustar00rootroot00000000000000class SegmentTests : Kkc.TestCase { public SegmentTests () { base ("Segment"); add_test ("properties", this.test_properties); } void test_properties () { var segment = new Kkc.Segment ("input", "output"); string input; string output; segment.get ("input", out input, "output", out output); segment.set ("output", output); } } int main (string[] args) { Test.init (ref args); Kkc.init (); TestSuite root = TestSuite.get_root (); root.add_suite (new SegmentTests ().get_suite ()); Test.run (); return 0; } libkkc-0.3.5/tests/state.vala000066400000000000000000000015451244473050600161170ustar00rootroot00000000000000class StateTests : Kkc.TestCase { public StateTests () { base ("State"); add_test ("properties", this.test_properties); } void test_properties () { Kkc.LanguageModel model = Kkc.LanguageModel.load ("text3"); var state = new Kkc.State (model, new Kkc.DictionaryList ()); Kkc.InputMode mode; Kkc.PunctuationStyle style; Kkc.Rule rule; state.get ("input-mode", out mode, "punctuation-style", out style, "typing-rule", out rule); state.set ("input-mode", mode, "punctuation-style", style, "typing-rule", rule); } } int main (string[] args) { Test.init (ref args); Kkc.init (); TestSuite root = TestSuite.get_root (); root.add_suite (new StateTests ().get_suite ()); Test.run (); return 0; } libkkc-0.3.5/tests/system-dictionary.vala000066400000000000000000000040131244473050600204570ustar00rootroot00000000000000class SystemDictionaryTests : Kkc.TestCase { public SystemDictionaryTests () { base ("SystemDictionary"); add_test ("properties", this.test_properties); add_test ("load", this.test_load); } void test_properties () { Kkc.SystemSegmentDictionary? system_segment_dictionary = null; var srcdir = Environment.get_variable ("srcdir"); assert (srcdir != null); try { system_segment_dictionary = new Kkc.SystemSegmentDictionary ( Path.build_filename (srcdir, "system-segment-dictionary")); } catch (Error e) { stderr.printf ("%s\n", e.message); } } void test_load () { try { new Kkc.SystemSegmentDictionary ( "nonexistent-system-segment-dictionary"); } catch (Error e) { } var srcdir = Environment.get_variable ("srcdir"); assert (srcdir != null); try { new Kkc.SystemSegmentDictionary ( Path.build_filename (srcdir, "system-segment-dictionary"), "unknown encoding"); assert_not_reached (); } catch (Error e) { } try { new Kkc.SystemSegmentDictionary ( Path.build_filename (srcdir, "system-segment-dictionary-bad1")); assert_not_reached (); } catch (Error e) { } try { new Kkc.SystemSegmentDictionary ( Path.build_filename (srcdir, "system-segment-dictionary-bad2")); assert_not_reached (); } catch (Error e) { } try { new Kkc.SystemSegmentDictionary ( Path.build_filename (srcdir, "system-segment-dictionary-bad3")); assert_not_reached (); } catch (Error e) { } } } int main (string[] args) { Test.init (ref args); Kkc.init (); TestSuite root = TestSuite.get_root (); root.add_suite (new SystemDictionaryTests ().get_suite ()); Test.run (); return 0; } libkkc-0.3.5/tests/system-segment-dictionary000066400000000000000000001550521244473050600212070ustar00rootroot00000000000000;; -*- fundamental -*- ; coding: euc-jp -*- ;; Small size dictionary for SKK system ;; Copyright (C) 1988-1995, 1997, 1999-2003 ;; ;; Masahiko Sato ;; Hironobu Takahashi , ;; Masahiro Doteguchi, Miki Inooka, ;; Yukiyoshi Kameyama , ;; Akihiko Sasaki, Dai Ando, Junichi Okukawa, ;; Katsushi Sato and Nobuhiro Yamagishi ;; ;; Maintainer: SKK Development Team ;; Version: $Id: SKK-JISYO.S,v 1.55 2006/01/04 10:25:04 skk-cvs Exp $ ;; Keywords: japanese ;; Last Modified: $Date: 2006/01/04 10:25:04 $ ;; ;; This dictionary is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either versions 2, or (at your option) ;; any later version. ;; ;; This dictionary is distributed in the hope that it will be useful ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; ;; You should have received a copy of the GNU General Public License ;; along with Daredevil SKK, see the file COPYING. If not, write to the Free ;; Software Foundation Inc., 51 Franklin St, Fifth Floor, Boston, ;; MA 02110-1301, USA. ;; ;; okuri-ari entries. s // k // i // u // i // 錄t // 錄s // 錄r ///// 鷺w // 鷺u /// 魯r /˺/ 虜i // 狼s // 狼r // 狼k // 狼i // r // k /ʨ/ʬ/ b // s // r // m // k // i // b // s // t // 褽u // 褴s // 褴r // w // u // t /// s /// r /// m /// k // i //// b // y // s // m // i // 椿k /˭/ 椺t // 椺r // 椬n // 椬m // 椦s /ͭ/ w // u // s // r // k /// r //// r /// s // r // u // t /Ȭ/ 䤹r // 䤹s // 䤹m // 䤹k // 䤹i // 䤷u // 䤵s //ͥ/ t /Ȭ/ m /// k // w // u // t // i // e // 褪s // r /Ǵ/ t // s // r // m // är // äm // i // ⤰r // ⤦s // ⤦k /// y /dz/ t // s //dz/ r //ϳ// e /dz/ t /Ω/ ᤺s // ᤶs /ܻ/ ᤰr // ᤰm // s // t /ϻ/ ऺs // हb // यi // फe // t /ϻ/ s // r /// k // ߤr // ߤˤi // ߤm /ǧ/ ߤk // ߤg // ߤt // ߤk /Ƴ/ ߤs // ߤr // ߤr // ߤm /û/ ߤk /û/ ߤi /û/ ߤm // ߤk // ߤk // ߤt // t // s // r /// n // e // ޤs /// ޤr /// ޤm // ޤi /// ޤu // ޤi // ޤt // ޤr // ޤk // ޤ̤r // ޤb // ޤu // ޤr // ޤäk // ޤu /ְ/ ޤt /ְ/ ޤi /ְ/ ޤe /ְ/ ޤk // ޤs // ޤw // ޤe // ޤr // ޤr /ʶ/ ޤu // ޤs /Ǥ/ ޤr // z /// u // t // s // k /// g // ۤb // ۤɤs // ۤȤd // ۤs // ۤs // ۤr // ۤm // ۤi // ۤr // ۤr /ϯ/ ۤr // s /// r /Ħ// m /˫/ e // ؤt // r /// դu //ʳ/ դs // դm // դk // դi // դe // դr // դi // դb // դt // դg // դr // դn // դm // դm // դk // դi // y /// t // s // r //// n /Ƨ/ m /Ƨ/ k ///ʮ/Ϸ/ i // e /// Ҥu // Ҥm // Ҥi // Ҥg // Ҥ뤬s // Ҥ뤬r // Ҥk // Ҥi // Ҥk // Ҥt // Ҥs // Ҥr // Ҥs // Ҥr // Ҥm // Ҥs // Ҥm // Ҥk // Ҥi // Ҥi /Ψ/ Ҥr // Ҥr // Ҥe // Ҥd // y // r // m // k /// e // k // Ϥs /ȿ/ Ϥw /ʧ/ Ϥu /ʧ/ Ϥt /ʧ/ Ϥo /ʧ/ Ϥi /ʧ/ Ϥe /ʧ/ Ϥs /®// Ϥm //®/ Ϥk //®/ Ϥi /®// Ϥk // Ϥm // Ϥʤd // Ϥt // Ϥs /Υ/// Ϥr /Υ// Ϥk /Ư/ Ϥm // Ϥs // Ϥr // Ϥm // Ϥm /// Ϥr // Ϥm // Ϥb // Ϥs // Ϥm // Ϥr ///¬//// Ϥr // z // y // u // t //Ž/ r /ĥ/Ž// n /ķ/ k //// e //// Τs // Τr //// Τm /˾// Τk /// Τs // Τr // Τs /ƨ/ Τr /ƨ/ t // s /// r /// m // b //// ͤr // ͤu // ͤt // ͤi // ͤt /̲/ ͤr /̲/ ͤi /̲/ ͤr /Ǵ/ ͤu // ͤi // r /// ̤m // u /˥/ t // r //Ǩ/ k /ȴ/ i /ȴ/ g /æ/ ˤr // ˤi // ˤu /ô/ ˤs // ˤr // ˤs // ˤr // ˤm // ˤi // ˤw // ˤr // ˤi // ˤw // ˤu // ˤi // ˤe // ˤw // ˤu // ˤt // ˤi // y // r /// g /ƨ/ e // ʤu /// ʤb // ʤn /Ǻ/ ʤm /Ǻ/ ʤr // ʤk // ʤt // ʤm // ʤk // ʤk // ʤy // ʤm // ʤk /ò/ ʤm // ʤr // ʤs /ή/Ĺ/ ʤr /ή// ʤm /į/ ʤk /Ĺ/ ʤi /Ĺ// ʤb /Ⱦ/ ʤs //ľ/ ʤr //ľ/ s /̵// r ///// k /̵/// i /̵/˴/ g /// Ȥw /ȼ/ Ȥu /ȼ/ Ȥt /ȼ/ Ȥi /ȼ/ Ȥu /Ĥ/ Ȥs /˳/ Ȥr // Ȥe // Ȥɤr // Ȥk // ȤȤu //Ĵ/ ȤȤe //Ĵ/ Ȥg // Ȥs /// Ȥr // Ȥk // Ȥi // Ȥi /º// Ȥb /º// z // u // t // r ////// m ///α// k //// i // g /// b //ķ/ Ǥt // Ǥs // Ǥr // Ǥn // Ǥm // r // ƤĤk /³/ ƤĤt // ƤĤi // ƤĤe // Ƥs /Ŭ/ Ƥs // r // Ĥk // Ĥn /Ϣ/ Ĥm // Ĥk // Ĥi // Ĥt // Ĥg // Ĥs // Ĥr // Ĥu // Ĥi // Ĥm ///̳/ Ĥr // Ĥk /³/ ĤĤm /// Ĥm // Ĥu // Ĥw // Ĥu // Ĥe // Ĥu // Ĥu // Ĥr //¤/ Ĥw // Ĥu /// Ĥr // Ĥm /// Ĥi // Ĥe // Ĥy // Ĥe // t // r //Ϣ/ m //Ŧ// k /////// i // g ///// r // m // r // w // u // t // i // e // u // i // s // r // t // r // k /繥/ s // k // r // t // r /// t // s // ޤr // r /ί/ s // n // m // r /é/ e // Ƥޤr // äi //º/ äb /º// u /ɺ/ t /ľ/ s //â/ u //Ʈ/ m // k /á/ w // e // n //ˬ/ k // k // e // s // i // s // m // k // i // s // r // s // r /ʿ/ y // t /Ω///// s /­/ r //­/ m /ί// k // e /// b // z /¸/ s /°/ t /·/ i /·/ e /·/ k // w // e /// t // Τs // g // n /»/ u //ź/ t //ź/ r /ȿ/ m /// i // e /ź/ r // i // m // r // m /// r // i // y /®/ t // r // r // ʤt /¨/ n // r // s // m // m //// s // m // k // i // r // y // s // r /ͥ/ u // n // i // w // u // t // r //// m //// k //Ʃ/ i // g // e // b // z // k // i // s // ꤾk // b /Ĵ/ t // r // s /// r // r /// i // r // Ϥw /ʧ/ Ϥu /ʧ/ Ϥt /ʧ/ Ϥi /ʧ/ b //Ǧ/ r /ũ/ u // i // e // u // s // m //// k // r // m // t // r // g // s // r // n // m ////// k // i // t // r /// g // s // k // i // ޤg /˸/ s // r // k /// s /͡/ r // m // k // u /Ͷ/ k // s // e // b // r /õ/ s //õ/ r /// n // e // r // i // s ///// r // m /// k ///// g /// e // z /¸/ s // r // k /// i /// g /// s // g /ž/ b /ž/ r // k // m // m // Ȥr // n // e /// e // i // s // m // t // r // r // r // z /// s // y // u //// s ///Ķ/ r //Ĩ/ n // m // k /ǻ/ i /ǻ// g // e //Ķ// z // s // r // i // s // r // s // r // s // t // w // s // e // i // u // s // o // i // i // b // s // r // r // Ĥs /ʤ/ Ĥr /ʤ/ s // r // k // s // r // r // i // y // w // u /// t /// r ///// m /// i //// e // m //// w // u // t // i // m // i // t // s // k // i // i // e // u // k // s // m // s // r /// m // k /ʹ/İ/// i /İ/ e // t /ĥ/ r /ĥ/ s /˧/ i // e // z // s // 襤r /İ/ 襤k /İ/ 襤i /İ/ 襤g /İ/ r // k /// y // s // k // i // n // m // i // u // i // s // u // i // e // ʤz /ɬ/ u // s // d // g /ô/ r /˵/ r // k // r // m // i ///// e // g // i // r // n // u // m // s // r // r // k // w // r // g // e // r //// m /// s /// r /// w ////// u //// t /// s // r /////// n /// m // k /////// i // e ///// r // s // k // g // b // k // ⤷s // ⤷k // ⤷i // u // s // m // i /// e // Ӥk // z /Ʊ/ ɤk // ɤi // s // r /// k // Ȥe // Ȥr /ˬ/ Ȥr // r // r // y // w // u // s // r // k // i // e // i // m ////Ǽ/ e // k // u // r // s // r /// r //// u // m // s /// u /ʤ/ s /¿/ m /¿/ k //¿/ i /¿// z // w // u //// t // s //// r ///// k /// i ///Ϸ/ e // b // i // b // k // i // r // m // s // i /ͫ// e /ͫ// s // 뤪u // 뤪s // m // u // i // m // u // 䤦s // u /å/ t /å/ ʤs /¥/ m // i // Ĥs // s //// r //// äe // u // u /// r // m // k // i // u // r // k /ư/ ޤr // u /// i /// t ///Ƥ/ r //// m //// k //// i //ͫ/ e /// u // r // s // ޤm // r // m /ĩ/ Ȥm // Ĥr // Ĥs // t // s // k // i // k /ĺ// i // s // r // m //// i // s /˻/ g // i // m /ͦ/ u // i // t // r // ɤr /ʰ/ i // t // r // u /// r ////// m // k /// i // t // s /ʻ/ r // i /ø/ k // ꤬u /ͭ/ ꤬i /ͭ/ s ///ɽ/ r //ɽ/ 餿m // 餽u // u // t // i //// m // t // r /// r // u // s // b // y // s /;/ r /;/ i // e // n // r /˽/ k /˽/ ʤr // Ĥw // Ĥu // Ĥt // Ĥo // Ĥi // Ĥe // m // k //Ǯ// i /Ǯ/// s // m /// k /// r // e /Ϳ/ b /ͷ/ r // k // w /̣/ k // y // k // i // m // u // r // r /// n // i // k // i // r // w // u ///// t /// r /ͭ/// m // k /˰//// i /// g //// b // ;; okuri-nasi entries. # /#3/#1/#0/#2/#5/ Cyrillic ////////////////////////////////// Greek ///////////////////////// cyrillic ////////////////////////////////// greek ///////////////////////// ///// > // /;a////a\x20i/ // // // 褦 // // // // /// Ĥ // // /// //// // ܤ // /ī// /ī// // /­//// // /̣// // // // // // /// // /Ƭ/ // ä夯 // äȤƤ /Ū/ //// Ĥ // // Ƥ // /// // ʤ // // /// // ֤ /// /ŷ//// ޤ // // ///ŷ/ /ʸ/// // 餫 /ͽ/ 餬 // 餷 // // 뤸 // /ˢ// 碌 // ////////// /²/ 󤷤 /¿/ 󤼤 // ʤ // /////ͣ/ǡ/////////////////////////// // /ʲ/ /ǡ/ /ȵ/ // /ǡ/ /ʳ/ճ/ /©// //// // // /ո/ /ʹ/ܹ/ո/ /ʸ/ /// /ռ/ // // 礯 /ܿ/ /ݻ/ 礦 /ʾ/۾/ /ػ/ // // // // /¸/ // /ĺ/ ///// // 礦 // // //켡/ // Ф // // // ä // ä /쵤/ ä /츫/ ä // ä // ä // ä // ä // äƤ // äȤ // äѤ /ȯ/ äѤ // äѤƤ /Ū/ äݤ // äݤ // ///// //տ/ ɤ /ư/ // ʤ /ļ/ // // Τ // Τ /̿/ Ϥ /ȿ/ Ф // // /̣/ // ⤦ // // 餤 /// ꤰ // // // 路 // ///////////////// 󤵤 // 󤷤礦 // // 󤿤 // // 褦 // ///ͭ/////// // // // // Ȥˤ // // /// // // /// // // /// // // /¦/ /// Ĥ // // ʤ // // // // // ޤ // // // /΢// // 뤦 // 뤦ɤ /ǯ/ 뤷 // // 蘆 // //// 󤨤 // Ƥ /ž/ 褦 // ////////// /////////////////// /ʱ/ /Dz/ 礦 /ƶ/ 礦 /Ķ/ /Ѹ/ // /////// ᤤ /̾/ // ///// Τ // // ////ʥ/////////////////////// /鵻/ 󤽤 // //////ͺ// /// /////////////////// // 礦 // Ȥ // // /̹/ 褦 // // /ϵ/ // // // Ϥ // फ // // 䤱 // /// // // // ////// // //ͺ/ // ä // // // Ȥ // Ȥ // Ȥ // // // Τ // Τ // // /// ⤤ // ⤷ // /ɽ// भ // // // // /////// 󤬤 // // /////////////////////////////////////////// /////////////////////////////// // // // 礦 // // // // // // // // 㤯 // 夦 // 礦 // // 礦 // // // // // // // /¤/ Ƥ /Ŭ/ Ƥ /ž/ Ȥ // Ȥ // Ϥ /ȯ/ ؤ // ۤ // // // 礦 // // // // // // // // /ʳ/ // ///// /// // /////////////////////// /и/ /Ƽ/ /Ƽ/ /μ/ // 礦 /ĥ/ Ȥ // ˤ /ǧ/ Τ /Ǽ/ // /Ψ/Ω/ // // /// /ø/ // /϶/ /// /û/ // /ۻ/λ/// /μ/ // // // // // // /// /²/ /////// /Ҳ̾/ /Ũ/ // // ޤ // // // ä // ä // äѤ /ȯ/ //////////// Ĥ // Ĥɤ /ư/ Ĥ䤯 // Ĥ褦 // // Ƥ /// /// ɤ /Ư/ ɤ // // ʤ󤸤ؤ󤫤 /̾Ѵ/ ˤ夦 // /// ͤ /Ǯ/ // Τ /ǽ/ Τ /ǽ/ Τ // /// Ф // դ󤷤礦 /ʴ/ /// ֤ // ֤ // // ////// ޤ // ///ȱ// ߤʤ // ᤤ /̾/ // // //// // //// 餹 // // /// 夦 /ή/ // /¦///// // ////////ȡ//////////////////////////////////////////////////// 󤫤 // 󤭤礦 /Ķ/ 󤭤礦äƤ /Ķ/ 󤭤礦ؤ󤹤 /Ķѿ/ 󤱤 /ط/ 󤲤 // 󤳤 /ڹ/ 󤵤 // 󤷤 // 󤷤夦 // 󤷤 // /// 󤸤礦 // 󤹤 /ؿ/ 󤹤ᤤ /ؿ̾/ 󤻤 // 󤻤ĤƤ /Ū/ 󤼤 // 󤽤 // 󤽤 /¬/ 󤿤 /ñ/ Ƥ // Ȥ // Ȥ // ɤ /ư/ ڤ // // // ꤷ // ˤ // 礦 /λ/ /Ϣ/ ///////////// //////////////// // // // Ȥ // ͤ /ǰ/ // 褦 // ////// // // // // 礦ۤ // // ä /ز/ ä /ز/ ä /ع/ ä礦 /羧/ ä // // ޤ // // // //////////////// ///////////////////////////////////////////// // // /// /// // // 礦 /˹/ 礦 // //// // // //////////////////////////////////////////////////////////////////////// // // // // // 󤿤 // // // // // // /§/ /°/ // // // 礦 // ä // /////// Ƥ // ɤ /ư/ ˤ夦 // // ̤ // // Τ /ǽ// // // ֤ /ʬ/ ۤ // ۤƤ /Ū/ ܤ /˾/ // // 㤯 //// 㤯ۤ // 夦 ///////////////////////// 夦 /췿/ 夦礯 // 夦 /ٷ/ 夦夦 /彣/ 夦 // 夦礦 // //////////// 礦 ////////////////////////////////////////// 礦 // 礦夦 // 礦 // 礦夯 // 礦 // 礦礦 /Ĵ/ 礦Ĥ // 礦 // 礦 // 礦 /̣/ 礦椦 /ͭ/ 礦 /Ω/ 礦礯 /// 礫 // 礯 //// 礯礦 /˾/ 礯 /ü/ 礯ᤤ /̾/ 礯⤯ // 礸 // // ͤ /ǯ/ // /Υ/ ߤ // //̸/ /Ͽ/ ᡼Ȥ // // ////////////////////// /ᵦ/ 󤱤 // /ػ/ 󤸤 // ڤ // ܤ /˵/ /̳/ //////////////// // Ĥ /Ѽ/ ĤƤ /Ū/ // // // 㤯 /// 㤯󤹤 /մؿ/ 㤯夦 /ս/ 夦 // 夦ˤ夦 // ///// 礦 //////// 礦 /ȳ/ 礦 /ȼ/ 礯 // // /// ////////////////////// // // // // Ϥ // // // // // /// /ϩ/ // // // /ʵ/ // // Ӥ // ////// Ĥ // ȤƤ // ɤ /ư/ // // դ // ٤ // // /// ޤ /ë/ ޤ /ë/ // ߤ /ȹ/ // /// /¢// 餤 // /// // ʤ // // /ϫ/ /// ///// //// // ////// // Ƥ /Ū/ //// ///////// ///////////////////////////////////////// /ɰ/а/ /в/ /ײ/ /ٴ/ /и/ /θ/ // /Ǻ/ /׻/ /׻/ // 礦 /Ѿ/ // // /³/ // 䤯 // /ͳ/ // /ϩ/ // // 礦 // // ä // ä礯 // ä /빽/ ä /뺧/ ä // äƤ // äƤ // ///////// Ĥ // Ĥ // // // ////////////////////////////////////// // // 󤭤夦 // 󤭤夦 /漼/ 󤭤夦 // 󤭤夦 // 󤭤夦 // 󤳤 // 󤵤 // 󤸤礦 // 󤻤ĤƤ /Ū/ Ȥ /Ƥ/ // //// //// ////// 礦 // ä // // ////////////////// 󤤤 // // 󤭤夦 // 󤳤 // // 󤵤 // 󤶤 // // 󤷤礦 // 󤸤 // 󤸤ĤƤ /Ū/ 󤸤礦 // 󤽤 /§/ Ƥ // Ƥ // Ѥ /ȯ/ ߤ /̩/ ///////////////ʴ//////////////////// /// //////////////////////////////////////////////////////////////////////////////////////// /԰/ /ֱ// /// //ⳬ/ // // // /׸/ /⹻/ // /ͻ/ // // // // /®/ /®/ /¤/ // // // ɤ /ư/ ˤ夦 // Ϥ /Ⱦ/ Ҥ礦 /ɽ/ // ⤯ // /Ψ/ /θ/ /// /ɹ/ //////////ë/ // ʤ // // // // // // 礦 /ξ/ /Ŀ/ Ƥ /ĿŪ/ // // //// Ƥ // ////// Ȥ // Ȥ /ǯ/ Ȥ // Ȥ֤ // ɤ /Ҷ/ /ʴ/ ٤ // /// ޤ // // // // // ⤸ /ʸ/ // // // // // //////////////////// 󤫤 // 󤭤 // 󤲤 // 󤲤Ĥ // // 󤶤 // 󤷤夦 // 󤸤礦 // // ɤ /Ʊ/ ʤ // ˤ // ͤ /ǯ/ ݤ // // // ///////////////// /ո/ ///////////// // // // // /// // // // 餯 // // /// // //////////////// /////////////////////////////// /Dz/ 礦 /Ƕ/ /Ƕ/ /ǹ/ /Ǹ/ 夦 /ǽ/ 夦Ƥ /ǽŪ/ /ǽ/ 礦 /Ǿ/ 礦 /Ǿ/ /ǿ/ Ф /ǿ/ // // // // 夦 // Ƥ // // Ϥ // ܤ /˦/ 褦 // 褦 // // ///// /// // // // /// // /// ////// // 礦 // ////////////// // // // // ͤ /ǯ/ Ҥ // // /// // ˤ /п/ // // // ä /®/ ///////// Ĥ // /Τ/ // /// // 餤 // // /// 餹 // // // ////////////////// // 󤫤 /ü/ 󤳤 // 󤳤礦 /ͻ/ 󤳤֤󤱤 /ʸ/ // 󤷤礦 // 󤻤 // 礦 /ĺ/ /ϼ/ //// ////// ä // // //// ͤ /ǰ/ /////////////////////////////////////////////////////// // /ž/ ///Ĭ/ // /ʲ/ /ʲ/ // // /д/ ////// // // /ظ/ /͹/ /Ż/ // /ؼ/ٻ/ 礦 /˾/ // //ũ/ // // // /// // /// äѤ // /////////// Ĥ // Ĥ줤 // Ƥ // Ƥ /Ŧ/ Ƥ /Ŵ/ Ȥ // // // /// Ф // // ֤ /ë/ // ܤ // /// ߤ // ᤤ /̾/ // // /////////////// 㤤 /Ұ/ 㤫 /Ҳ/ 㤯 //////////// 㤷礦 /־/ 㤷 /̿/ ʤ // 礦 /ξ/ //////////////// 夦 /////////////////////////////// 夦 // 夦 // 夦 // 夦夦 // 夦 // 夦 /«/ 夦 // 夦礦 /Ĺ/ 夦Ƥ // 夦Ϥ /ȿ/ 夦ؤ // 夦ޤ // 夦礦 /λ/ 夦 // 夯 //////// 头 // 夵 // 夷 // 夸 // // // 礦 /ĥ/ ä /в/ ä礦 /ĥ/ äѤ /ȯ/ äѤ // äѤ󤷤 /Ǽ/ // Ĥ /б/ Ĥ礯 // ۤ /ˡ/ /̣/ 뤤 // //////// 󤫤 /ִ/ 󤳤 /׹/ ////////////// 礦 ////////////////////////////////////////////////////////////////////////////////// 礦 /Ҳ/ 礦 /㳲/ 礦 /õ/ 礦礦 // 礦礦Ƥ /Ū/ 礦 /ڵ/ 礦 /ȹ/ 礦 /ܺ/ 礦 // 礦礦 /ɾ/ 礦 // 礦ʤ // 礦ͤ /ǯ/ 礦Ф // 礦 // 礦Ҥ // 礦Ҥ礦 /ɸ/ 礦Ҥ礦 /ɸ/ 礦Ҥ // 礦 //Գ/ 礦ᤤ // 礦褦 // 礦餤 // 礦㤯 /ά/ 礦 // 礭 // 礭 // 礯 ////////////// 礯 // 礯ɤ /Ʋ/ 礷󤷤 /鿴/ 社 /°/ ᤤ /̾/ 椦 /ͭ/ // ꤱ // 褦 /// 褦ۤ /ˡ/ // // 礦 // // 뤷 // 줤 // //// /ǿ/ ///////////ä//////////////////////// 󤫤󤻤 // 󤬤 // 󤱤 // 󤱤 // 󤴤 // 󤵤 // 󤵤 /ǻ/ 󤷤 // 󤷤 // 󤸤夯 // 󤸤 // 󤻤Ҥ // 󤻤 // 󤻤 /// Ѥ // ֤ /ʹ/ // // 褦 // 餤 // 餤 // // //////////////ϩ///////////// /ռ/ // // /ľ// 礦 // 礦 // //// // /// // // // // ///Ͽ/ // 礦 // // /// // // // ä /²/ ä /¸/ ä /¹/ ä /º/ ä夦 /½/ ä // ä // /// Ĥ /¸/ Ĥ /º/ Ĥ褦 // Ĥ褦 /Ѳ/ Ĥ줤 // Ƥ // Ƥ󤷤 /ž/ ɤ /ư/ ɤ /ư/ ɤƤ /ưŪ/ ֤ /ʬ/ भ礯 /̳/ /ϸ/ /// 㤯 ////// ä /㴳/ // ////////// 夦 /////////////// 夦 /Ż/ 夦 // 夦 /ſ/ 夦 // 夦դ /ʣ/ 夦֤ /ʬ/ 夦褦 // 夦餤 // 夯 /// 夷 // /// /ʸ/ 褦 // /////////////// 󤫤 // 󤹤 // 礦 /Ĵ/ Ф // // 椦 /ͳ/ //ǡ//////// 礦 //////////////////////////// 礦 // 礦 /嵭/ 礦礦 // 礦 // 礦 // 礦 /Q/ 礦 // 礦 // 礦ۤ // 礦ۤ // 礦 // 礦夦 /ή/ 礦 /Ϣ/ 礬 // 礯 // 礷 // 礷 // 礻 // 椦 /ͥ/ 礯 // //////////////// 󤳤 /͹/ 󤻤 // //////////// ///////////////// // /¬/ // /////// // // ͤ /ǯ/ դ /ʬ/ // Ҥ // // /// /// /// // ֤ // // // // // // // ʤ /ľ/ ٤ // //ú// // /ˬ/ // //Ƭ/Ʀ/// //// ֤ /ʬ/ /޷/ // ////// ///////////////////////////////////̻/// // // /// // // 夦 // // // // // // /Ľ/ // 礦 // // // 礦 /Ĺ/ Ǥ /ŵ/ Ȥ // ȤƤ /Ū/ // Τ /ǽ/ Ҥ // 䤯 // // /Ω/ 줭 // // 夦 // ////ͼ/////////////////// ˤ /Ǥ/ // /ë/ // ä礯Ƥ /ѶŪ/ ä /߷/ ä /и/ äƤ // //////////// Ĥ礯 /㿫/ Ĥ /³/ Ĥᤤ // // // // // ˤ /ÿ/ /////////////////////////////////////// 󤲤 // 󤳤 // 󤷤 // 󤷤夦 /轵/ 󤷤失 /긢/ 󤸤 // 󤻤 // 󤽤 // 󤿤 /// // // ᡼Ȥ // Ǥ // Ȥ /Ƭ/ Ѥ // ᤤ // // // 褦 // /ϩ/ // //// /Ƕ/ ä // /// // // ///////// 󤤤 // 󤫤 // 󤫤 // 󤫤 /Ѳ̾/ 󤳤 // 󤳤Ƥ /Ū/ 󤷤 // 󤸤뤤 // 󤼤 // 󤿤 // Ƥ // // פ // ////////////////////// ///////////////////////////////////////////////£// // //ܺ/ٺ/ /Ϻ/ // // // // 㤯 // Ƥ // Ȥ // ۤ // 礦 // // /˳/ /­/¦/®/©/¨/¬/«/ª/§/¥/ /¦/ /®/ // /ȿ/ /Ψ/´/ Ĥ礦 /´/ /µ/ // /¶// // // // 줬 /˿/ /»/¸/½/¼/º/¹/ 󤱤 /º/ 󤶤 /¸/ 礦 /º/ /¡/£/¤/¢////// // /³/²/±/°/¯/ /°/ /¸/ /¸/ /¾//¿///// //////////////////////////// /б/ // /η/ /н/ 礦 /о/羭/ 礦 /о/ // Ƥ // Ǥ // // դ // ؤ // 礦 // /̯/ /// // /// // ///////////// // ///// /// 礦 /¿/ /¿/ // /ͣ// // /Ω/ /Ω/ /ä/ε/ã/ Ĥ /ç/ /è/// /ê/ /ë/ ˤ /¾/ ̤ /ì/ // /«/ //ι/ ֤ /¿ʬ/ ///// ޤ // ޤ // /̱/ // /í/ /î/ /ɶ/ /ñ/ü/ȿ////ÿ/û/ú/ù/ø/÷/ö/õ/ô/ó/ò/ð/ý/ /ñ/ 󤳤ܤ /ñ/ /ñ/ 󤸤 /ñ/ 󤸤礦 // 󤸤礦 // /ý/ 礦 /ñĴ/ Ȥ /ô/ Ѥ // ޤ /ü/ //////////// //////// // // /ر/ /絬/ /纬/ // // 礦 // // // Ҥä /ɴ/ Ҥ礦 /ɽ/ Ҥ礦Ƥ /ɽŪ/ ֤֤ /ʬ/ ᤤ /̾/ /// // /­/ /å/æ/ Ȥ // // /ï/ ////////// 󤫤 /ʳ/ 󤿤 // //////////////////// /ϰ/ /ϲ/ Ƥ /ϲŴ/ // 夦 /ϵ/ /϶/////// // /μ/ /Ͽ/ /// /// Ƥ /Ū/ Ƥ // Τ /ǽ/ ۤ // ޤ // // 㤯 /// 夦 /////////////// 夦 // 夦 // 夦 // 夦 // 夦 // 夦㤸礦 /־/ 夦 // 夦礦 // 夦 /濴/ 夦 // 夦⤯ // 夦 /ʸ/ 夦㤯 /ά/ //////// 礦 /Ĺ/Ķ/ȥ/Ĥ//Ģ/Ĵ/ĥ/Ļ/ĺ/ķ/ĵ/ij/IJ/ı/İ/į/Į/ĭ/Ĭ/ī/Ī/ĩ/Ĩ/ħ/Ħ/ģ/ġ/////// 礦 /Ĵ/ 礦 /Ĵ/ĸ/ 礦 /Ĵ/ 礦Ϥ /Ĺȱ/ 礦դ /ʣ/ 礯 /ľ/Ľ/ļ/ 礯 /ľ/ 礯 /ľ/ 礯 /ľ/ 礯ĤƤ /ľŪ/ 礯 /ľ/ 礵 // 礵 // 礵 // 礵֤ /ʪ/ 礷 // ä /ľ/ ///////Ŀ/ /// Ĥ /////// Ĥ /ɲ/ Ĥ /// Ĥ /̲/ Ĥ /˲/ Ĥ /̳/ Ĥ /̿/ Ĥ礦 /̾/ Ĥ // Ĥ // Ĥ // Ĥ //// Ĥ // Ĥ // Ĥ // Ĥ // Ĥ // Ĥ /Թ/ Ĥ // Ĥ // Ĥ // Ĥ /ˤ// ĤĤ // ĤŤ // Ĥɤ // Ĥ // Ĥ // Ĥ // Ĥ // ĤФ // ĤФ // ĤФ // Ĥ /γ/ Ĥ /// Ĥ /// Ĥ // Ĥ // Ĥम // Ĥ // Ĥ /Ϫ/ Ĥ // Ĥ /// Ĥ ///̢/ Ĥ뤮 // // Ƥ ///Ť/ţ/Ţ/š////////////////////////////// Ƥ // Ƥ // Ƥ // Ƥ礦 // Ƥ // Ƥ // Ƥ // ƤǤ // Ƥ // Ƥͤ /ǫ/ Ƥ // Ƥ // Ƥ /Ū/Ũ/ŭ/Ŭ/ū/ũ/ŧ/Ŧ/ Ƥ /Ŭ/ ƤȤ /Ŭ/ Ƥ /Ŭ/ Ƥ褦 /Ŭ/ Ƥ // Ƥ // Ƥ /Ŵ/ų/Ų/ű/Ű/ů/ ƤĤ /ů/ ƤĤ /ůؼ/ ƤĤɤ /Ŵƻ/ ƤĤ /Ű/ ƤӤ // Ƥդ /껥/ Ƥ // Ƥޤ // Ƥ /긵/ Ƥ // Ƥ //Ź/ŷ/ž/ſ/ż/Ż/ź/Ÿ/Ŷ/ŵ/Ž// Ƥ󤫤 /Ÿ/ Ƥ /ŷ/ Ƥ󤯤 /ŷ/ Ƥ󤳤 /ž/ Ƥ󤵤 /ž/ Ƥ󤽤 /ž/ // Ǥ /ť/ Ǥ //Ů/ Ǥ /и/ Ǥ ////// Ǥ /Ų/ Ǥ /ŵ/ Ǥ󤲤 /Ÿ/ Ǥ /Ż/ Ǥ󤷤 /ż/ Ǥ󤿤 /ã/ Ǥ // Ǥ // //////Ƭ/////////////////// Ȥ // Ȥ //Ƭ//Ƥ/ơ/////Ʈ/ƭ/ƫ/ƪ/Ʃ/ƨ/Ƨ/Ʀ/ƥ/ƣ/Ƣ///////////////////////////////ƻ/Ǽ// Ȥ // Ȥɤ /쳤ƻ/ Ȥ礦 // Ȥ礦 // Ȥ // Ȥ /ƽ/ Ȥ // Ȥ /Ƽ/ Ȥ礦 /Ʈ/ Ȥ // Ȥ // Ȥ礦 /о/ Ȥ // Ȥ㤯 // ȤҤ礦 /ɼ/ Ȥۤ // Ȥۤ // Ȥ // Ȥ /Ͽ/ Ȥ // Ȥ // Ȥ /Բ/ Ȥ //ƾ/ Ȥ ////////ƿ// Ȥ /û/ Ȥ /ü/ Ȥ夦 /ý/ Ȥ夦 /ý/ Ȥ // Ȥ礦 /ħ/ ȤƤ // ȤƤ // ȤФ // Ȥ٤ // Ȥ // Ȥ /// Ȥ // Ȥ /ǯ// Ȥ礫 /޽/ Ȥ //// Ȥ夦 // Ȥ /// ȤĤ // Ȥ // Ȥʤ // Ȥʤ // Ȥ // Ȥ // ȤӤ // Ȥ // Ȥ // Ȥ ///ͧ/ Ȥ /ͧã/ Ȥ // Ȥ //Ļ/ Ȥ // Ȥ /////////// ////// ɤ /ƻ/ư/Ʒ/Ƴ/Ʊ/Ƽ/ƹ/Ƹ/ƶ/Ƶ/ƴ/Ʋ/Ư/ ɤ /Ʊ/ ɤ /Ʊ/ ɤ /Ʊ/ ɤ /ƻ/ ɤ /ư/ ɤ /ư/Ʊ/ ɤ /Ʊ/ ɤ礦 /Ʊ/Ʊ/ ɤ /Ʊ/ ɤ礦 /ƱĴ/ ɤƤ /ưŪ/ ɤˤ夦 /Ƴ/ ɤ֤ /ưʪ/ ɤᤤ /Ʊ̾/ ɤ褦 /Ʊ/ ɤ /ƻϩ/ ɤ //// ɤ /ɼ/ ɤ /ȼ/ ɤ /Ω/ ɤ // ɤˤ // ɤ // ɤ褦 // ɤ礯 // ɤ /ť/ ɤ //// /̾////Ǽ// ʤ // ʤ // ʤ // ʤ褦 // ʤ // ʤ // ʤ /// ʤ // ʤ // ʤ // ʤ /// ʤ // ʤ // ʤ /̾Ų/ ʤ // ʤ // ʤ // ʤ // ʤ /Ǽ/ ʤäȤ /Ǽ/ ʤ /// ʤ // ʤ // ʤ // ʤ // ʤ // ʤޤ /̾/ ʤޤ // ʤ /// ʤߤ // ʤ /// ʤ /// ʤ // ʤ ///////Ǽ/ ʤ󤫤 // ʤ󤭤礯 // ʤ // ʤ // ʤˤ // ʤͤ /ǯ/ //////// ˤ // ˤ // ˤ // ˤ // ˤ // ˤ夦 // ˤ // ˤ // ˤ // ˤ // ˤ褦 // ˤäݤ // ˤۤ // ˤۤ󤬤 /¦/ ˤۤ /ܸ/ ˤۤ󤴤 /ܸ첽/ ˤۤ󤴤ˤ夦礯 /ܸ/ ˤۤ󤸤 /ܿ/ ˤ /ʪ/ ˤ㤯 // ˤ夦 /// ˤ夦 // ˤ夦 // ˤ夦礯 // ˤ //ǡ/ ˤ礦 /Ǣ// ˤ /ǣ/ ˤ // ˤȤ // ˤ //Ǥ/ǥ/Ǧ/ǧ/ ˤ /Ǥ/ ˤ /͵/ ˤ󤲤 /ʹ/ ˤ󤷤 /ǧ/ ˤ󤸤 /Ǧ/ ˤ󤺤 /Ϳ/ // ̤ // ̤ // ̤ // ̤ // /////Ǫ/ǩ/ ͤ /ǫ/Ǫ/ǩ/ ͤ /Ǭ/ ͤ /ǭ/ ͤ // ͤ /Ǯ/ ͤ /ǯ/ǰ/Ǵ/dz/Dz/DZ// ͤ󤫤 /ǯ/ ͤ /ǯ/ ͤФ /ǯ/ ͤ /dz/ ͤޤ /ǯ/ ͤ줤 /ǯ/ /Ǹ/Ƿ/Ƕ/ǵ// Τ //ǿ/Ǿ/ǽ/Ǽ/ǻ/Ǻ/ǹ/ Τ礦 // Τ /ǻ/ Τˤ夦 /Ǽ/ Τ礯 /ǽ/ Τ // Τ // Τ // Τ // Τ /ˡ// /////ü//////// Ϥ /İ/ Ϥ ////////////// Ϥ // Ϥ /ط/ Ϥ /Ҹ/ Ϥ /ѻ/ Ϥ // Ϥ // Ϥ // Ϥۤ /ˡ/ Ϥ // Ϥ // Ϥ // Ϥ /˲/ Ϥ // Ϥ // Ϥ // Ϥ /// Ϥ ///////////// Ϥ // Ϥ /Ȣ/ȡ/ Ϥ /ȣ/ Ϥ /Ȥ//ü/ Ϥ // Ϥ // Ϥ /ȥ/ Ϥ /ϡ/ Ϥ /Ȧ/ Ϥ // Ϥ /ȧ/ Ϥ /Ȩ///ü/Ȫ/ Ϥ /ȫ/Ȫ/ Ϥ /þ/ Ϥ /ȩ/ Ϥ // Ϥ /ȭ/Ȭ/˪/ Ϥ /ˡ/ Ϥä /ȯ/ Ϥä /ȯ/ Ϥä /ȯ/ Ϥä /ȯ/ Ϥä /ȯ/ȯ/ ϤäƤ /ȯŸ/ ϤäԤ礦 /ȯɽ/ Ϥ /ȱ//ȯ/Ȱ/Ȯ/ ϤĤ /ȯ/ ϤĤ /ȯ/ ϤĤФ /ȯ/ Ϥ /ɼ/ Ϥ /ȷ/ Ϥ //ɡ// Ϥʤ //ȸ/ Ϥʤ /ȹ/ Ϥ // Ϥ // ϤϤ // Ϥ // Ϥ // Ϥޤ /Ⱥ/ Ϥ䤷 // Ϥ֤ /Ȼ/ Ϥ /ʢ// Ϥ // Ϥ // Ϥ뤫 // Ϥ //Ⱦ//Ƚ/ȿ////////////////////ȼ// Ϥ /ϰ/ Ϥ󤨤 /ȿ/ Ϥ󤫤 /Ⱦ/ Ϥ󤫤 /ȾҲ̾/ Ϥ󤫤 /ȾѲ̾/ Ϥ󤭤礦 /ȿ/ Ϥ󤿤 /ȿ/ Ϥ /Ƚ/ ϤƤ /Ƚ/ ϤΤ /ȿ/ ϤФ // Ϥ /Ⱦü/ Ϥ֤ /Ⱦʬ/ Ϥ /ȿ/ ///// Ф // Ф //////////// Ф /ܿ/ Ф /ϼ/ Ф /////////˽// Ф // Ф礦 /ξ/ Ф /ȳ/ Фä /ȴ/ Ф /ȳ/ȶ/ȴ/Ȳ//ȵ/ Ф // Ф //Ƚ//////ȼ//// Ф󤰤 // Ф󤴤 /ֹ/ ////////////////////////////////ɹ/ Ҥ餮 /ɢ/ Ҥ /ɣ/ Ҥ // Ҥ // Ҥ // Ҥ /ﳲ/ Ҥ // Ҥ /ɤ/ɥ/ Ҥ // Ҥ /ɦ/ Ҥ /ɧ/ Ҥ /ɨ/ Ҥ /ɩ/ Ҥ /ɪ/ Ҥ礦 // Ҥ // Ҥ /Ω/ Ҥ // Ҥ // Ҥ꤬ /¦/ Ҥä /ɬ/ Ҥ /ɬ/ɯ/ɮ/ɭ/ɫ// ҤĤ // ҤĤ //̤/ ҤĤ褦 /ɬ/ ҤĤ褦 /ɬ/ ҤŤ // ҤƤ // Ҥ // Ҥ /// ҤȤ /͵/ ҤȤ // ҤȤ // ҤȤ /Ʒ/ ҤȤ // Ҥʤ // ҤΤ /ɰ/ ҤϤ /Ƚ/ Ҥ // Ҥ // Ҥߤ /̩/ Ҥ /ɲ/ɱ/ Ҥ /ɳ/ Ҥ㤯 /ɴ/ Ҥ礦 /ɽ/ɿ/ɾ/ɼ/ɺ/ɹ/ɸ/ɷ/ɶ//ʼ/ɻ/ Ҥ礦 /ɾ/ Ҥ礦 /ɽ/ Ҥ礦 /ɽ/ Ҥ礦 /ɽ/ Ҥ礦礦 /ɽ/ Ҥ礦 /ɽ/ Ҥ礦 /ɸ/ Ҥ礦Ƥ /ɸŪ/ Ҥ礦 /ɻý/ Ҥ礦Ф /ɾȽ/ Ҥ褦 // Ҥ /ʿ/ Ҥ //// Ҥ // Ҥ // Ҥ /͵/ Ҥ ///////// ҤѤ // /ɡ/////// Ӥ /ɡ/ Ӥ // Ӥ /̣/ Ӥߤ礦 /̯/ Ӥ㤯 // Ӥ夦 /ɵ/ Ӥ礦 //ʿ//////ǭ// Ӥ礦 /±/ Ӥ礦 /µ/ Ӥ /// Ӥ ///// Ӥ󤸤礦 /ؾ/ //////////////////////////// դ /԰/ դ ////// դ礦 /Ĭ/ դ /̣/ դ /ū/ դ /ղ/ դΤ /Բǽ/ դ /// դ夦 // դ /ʤ//ʢ/ʡ//ʣ//// դ /ʣ/ դ /ʣ/ դ夦 // դ /ʣ/ դ /ʣ/ դ // դ /Թ/ դ /沽/ դ /˼/ դ // դ /Ի׵/ դ /Լ/ դ // դ /­/ դ /// դ /л/ դ // դ /ô/ դ // դ // դ /ʥ// դ礦 /Ĵ/ դä // դ /ʨ/ʧ/ʦ/ դĤ // դĤ /Թ/ դ /ɮ/ դȤ // դ /ʫ/// դ /// դ٤ // դ /ʸ/ դᤤ // դ // դ褦 // դ /ʬ/ʵ/ʷ/ʶ/ʴ/ʳ/ʲ/ʱ/ʰ/ʯ/ʮ/ʭ/ դ󤷤 /ʶ/ /ʬ//̵///////// ֤ /Ե̣/ ֤ /̵/ ֤ // ֤ /ʪ/ʩ/ ֤ĤƤ /ʪŪ/ ֤ɤ /ƺ/ ֤ʤ /̵/ ֤Ҥ // ֤֤ /ʬ/ ֤ // ֤ /ʬ/ʸ/ʹ/ ֤ /ʸ/ ֤󤫤 /ʬ/ ֤󤱤 /ʸ/ ֤󤷤 /ʸ/ ֤󤷤礦 /ʸ/ ֤ݤ /ʸˡ/ ֤ /ʬ/ ֤뤤 /ʬ/ ؤ //ʿ//////ʾ/ʽ/ʼ/ʻ/ʺ// ؤ // ؤ /ʿ/ ؤ /ʿ/ ؤ /ʿ/ ؤ // ؤ ///// ؤ // ؤ // ؤ // ؤ // ؤ ///////// ؤ /Ѳ/ ؤ󤫤 /Ѵ/ ؤ󤱤 /и/ ؤ /Ѳ/ ؤ󤳤 /ѹ/ ؤ󤷤夦 /Խ/ ؤ /ֻ/ ؤ󤹤 /ѿ/ ؤ󤹤ᤤ /ѿ̾/ ؤȤ // ؤԤ // // ٤ // ٤ /ƹ/ ٤ä // ٤ //// ٤Ĥᤤ /̾/ ٤ // ٤ ////// ٤󤭤礦 /ٶ/ ٤ /ص/ ٤󤴤 /۸/ ٤Ȥ // ٤ // ڡ // ///////////// ۤ //ˡ/ˢ/ˤ///˲/˱/˰/˯/ˮ/˭/ˬ/˩/˨/˧/˦/ˣ//////////////˥//˫/˪/ ۤ // ۤ // ۤ // ۤ // ۤ // ۤ // ۤ夦 // ۤ // ۤ // ۤ /ˡ§/ ۤɤ /ƻ/ ۤ /˫/ ۤۤ /ˡ/ ۤ // ۤ /ˡΧ/ ۤ // ۤ /¾// ۤ // ۤ꤯ /Φ/ ۤ /ݸ/ ۤ /̷// ۤ /ݸ/ ۤ // ۤ礦 /ݾ/ ۤ /­/ ۤ /¸/ ۤ // ۤ /ˡ/ ۤäɤ /̳ƻ/ ۤ /ȯ/ ۤȤ /ʩ/ ۤȤ /ؤ/ ۤ // ۤ // ۤΤ // ۤ /ƶ/ ۤ // ۤ // ۤ ////ȿ/ ۤ /ܵ/ ۤ󤮤礦 /ܶ/ ۤ󤷤ĤƤ /ܼŪ/ ۤ󤸤 // ۤ󤻤 // ۤ󤿤 // ۤ // ۤȤ // ۤˤ /ܿ/ ۤ // ֤ۤ /ʸ/ ۤ /ܲ/ ۤ䤯 // ۤ餤 // ///////// ܤ /첻/ ܤ /˿/˸/////////˾/˽/˼/˻/˺/˷/˶/˵/˴/˳///˹/ ܤ /˹/ ܤ /˽/ ܤȤ /Ƭ/ ܤ /////////// ܤ // ܤ夦 /罸/ ܤ // ܤ // ܤ /˷/ ܤ /// ܤ /// ///////// ޤ //////// ޤ // ޤˤ // ޤ // ޤ // ޤ // ޤ //// ޤ // ޤ /// ޤ // ޤ // ޤ // ޤ /¹/ ޤ /// ޤ // ޤ ///// ޤ //// ޤ //Į/ ޤ ///// ޤĤꤴ // ޤ // ޤ /Ū/ ޤ // ޤɤ // ޤʤ // ޤ // ޤҤ // ޤۤ /ˡ/ ޤܤ // ޤ // ޤߤʤ // ޤ /Ʀ/ ޤ // ޤ椺 // ޤʤ // ޤ // ޤ // ޤ ///̡//̢/ ޤ󤨤 // ޤ /̡/ ޤ󤾤 /­/ //̣///̤/̧/̦/̥/ ߤ // ߤ // ߤ /¦/ ߤȤΤ // ߤ // ߤ /̨/ ߤ // ߤ // ߤ // ߤ /Ź/ ߤ /̣/ ߤ // ߤ // ߤ /ƻ/ ߤ /̪/̩/ ߤƤ /̤/ ߤɤ /̤/ ߤɤ // ߤ // ߤʤ // ߤʤ /̫// ߤʤ // ߤʤ // ߤ // ߤ /̬/ ߤΤ /̭/ ߤ // ߤ㤯 /̮/ ߤ // ߤ䤳 // ߤ礦 /̾//̿/̯/ ߤ礦ˤ // ߤ餤 /̤/ ߤ /̰/ ߤ᡼Ȥ /̰/ ߤ /̲/̱/ /̴/̵/̸/̷/̶/̳//ϻ// त /ϻ/ त /̵̣/ फ // फ󤱤 /̵ط/ म // य /̺/ ल /̵/ ळ /̻/ ळ /̵/ ष /̵// ष礦 /̵/ ह /©/ ह /̼/ ऻ /̵/ ऻˤ /̵Ǥ/ ऻ /̵/ /̵/ /// //// Τ /̵ǽ/ //¼/ 餵 // /̵/ 礦 /̵/ // // ///// ᤤ /̾//̿//////̽/ ᤤ // ᤤ // ᤤ /̾/ ᤤ /̾/ ᤤ礦 /̾/ ᤤ // ᤤ줤 /̿/ ᤤ勞 // ᤷ // ᤹ /// // /////// 󤭤 /ȵ/ ɤ // ///// ⤦ /////////˴/˾/ ⤯ ///// ⤯ /ܼ/ ⤯Ƥ /Ū/ ⤯Ҥ礦 /ɸ/ ⤸ /ʸ/ ⤸ /ʸ/ /// // äȤ // /ʪ/ ///// Ȥ // ʤ // /ʪ// Τ /ʪ/ // // // //ʸ////ʹ/ /ʸ/ // Ƥ // // ///////////Ȭ/ 䤭夦 // 䤯 //////// 䤯 // 䤯 /«/ 䤯夦 // 䤯ۤ // 䤯 // 䤷 // 䤸 // 䤹 // ä // // // ʤ // // // ޤ // // /͡//ͳ/͢/////ͷ/ 椤 /ͳ/ͣ/ 椤 /ͣ/ 椦 /ͭ/ͥ/ͳ/ͼ/ͧ/͹/Ͷ/͵/ͻ/ͷ//ͦ/ͺ/ʹ/ͫ/ͩ/ͪ/ͯ/ͱ/ͨ/ͤ/͸/Ͳ/ͬ/Ͱ/ͮ/ 椦 /ͭ/ 椦 /Ͷ/ 椦 /ͥ/ 椦 /ͼ/ 椦 /ͭ/ 椦礦 /ͥ/ 椦 /ͧ/ 椦 /ͥ/ 椦ᤤ /ͭ̾/ 椦ᤤ /ͭ̾/ 椦褦 /ͭ/ 椦礯 /ͭ/ 椨 // 椫 // 椭 // 椿 /͵/ // // /̴/ ///;//ͽ////Ϳ// 褤 // 褦 ///////////////////////////Ȭ/ 褦 /Ѱ/ư/ 褦夦 /׵/ 褦 /ѻ/ 褦 /ͻ/ 褦 // 褦 // 褦 // 褦ۤ /ˡ/ 褦ܤ /˾/ 褦䤯 // 褦礦 // 褯 //////// 褳 // 褳Ϥ // 褷 /ͳ/ 褽 /ͽ/ 褽 /ͽ¬/ /;/ Ƥ /ͽ/ // ʤ // // ֤ /;ʬ/ // 椦 /;͵/ // // // ///// 餤 ////// 餤夦 /轵/ 餤ͤ /ǯ/ 餯 ////// ///////// /΢/Τ/Υ///Ρ/Σ////// ꤨ // ꤫ // ꤭ // ꤯ /Φ/ ꤸ // /Χ/ ä /Ω/ /Ψ/Ω/Ϊ/Χ/ Ƥ // 㤯 /ά/Ϋ/ 夦 /ή/δ/Ω/ζ/ε/γ/β/α/ί/έ// 夦夦 /ΰ/ 夦 /ή/ 夦Ĥ /ή/ 椦 /ͳ/ /κ/ι/θ/η/ 礦 ///ξ//////////////ο/ν/μ/λ/// 礦 /ΰ/ 礦 /λ/ 礦 // 礦 /ɹ/ 礦 /ξ/ 礦ۤ /ξ/ 礦 /ξ/ 礦 // 礯 /// 褦 // 褦 /Ѽ/ // Ƥ /Ū/ ///////////// /Ӹ/ 󤻤 // /ή// 뤤 ///// 줤 ////////////////// 줤 /㳰/ 줭 /// 줭 // ä // ///// //ϡ/Ϣ////////ϣ/ 󤭤夦 /Ϣ/ 󤵤 /Ϣ/ 󤷤夦 // 󤾤 /Ϣ³/ 󤾤 /Ϣ³/ 餯 /Ϣ/ 餯 /Ϣ/ /Ϫ/ϩ/ϧ/Ϧ/ϥ/Ϥ/ /ϯ/Ϻ/Ϲ/ϸ/Ϸ/ϴ/ϳ/ϲ/ϱ/ϰ/Ϯ/Ϭ/ϫ//Ϫ/ϵ/ϭ/϶/ /ϭ/ /ϲ/ 礯 /ϫ/ //Ͽ/Ͼ/Ͻ/ϻ/ /Ͽ/ // // ֤ /ʸ/ // ////// 襤 // 襤 /Ϩ/ 來 // 勞 /// 勞 // 櫓 // 虜 /// 路 // 路 /ü/ 錄 // 錄 // 錄 // // // // // /Ƹ/ // Ф /Ȥ/ // ///// libkkc-0.3.5/tests/system-segment-dictionary-bad1000066400000000000000000000000271244473050600220030ustar00rootroot00000000000000;; okuri-nasi entries. libkkc-0.3.5/tests/system-segment-dictionary-bad2000066400000000000000000000000321244473050600220000ustar00rootroot00000000000000;; okuri-ari entries. bad libkkc-0.3.5/tests/system-segment-dictionary-bad3000066400000000000000000000000261244473050600220040ustar00rootroot00000000000000;; okuri-ari entries. libkkc-0.3.5/tests/template.vala000066400000000000000000000030241244473050600166040ustar00rootroot00000000000000class TemplateTests : Kkc.TestCase { public TemplateTests () { base ("Template"); add_test ("properties", this.test_properties); } void test_properties () { Kkc.Template template; string source; bool okuri; template = new Kkc.SimpleTemplate ("source"); template.get ("source", out source, "okuri", out okuri); assert (source == "source"); assert (!okuri); template = new Kkc.OkuriganaTemplate ("かう"); template.get ("source", out source, "okuri", out okuri); assert (source == "かu"); assert (okuri); template = new Kkc.NumericTemplate ("だい11かい"); template.get ("source", out source, "okuri", out okuri); assert (source == "だい#かい"); assert (!okuri); assert (template.expand ("第#0回") == "第11回"); assert (template.expand ("第#1回") == "第11回"); assert (template.expand ("第#2回") == "第一一回"); assert (template.expand ("第#3回") == "第十一回"); // Unsupported. assert (template.expand ("第#4回") == "第11回"); assert (template.expand ("第#9回") == "第11回"); } } int main (string[] args) { Intl.setlocale (LocaleCategory.ALL, ""); Test.init (ref args); Kkc.init (); TestSuite root = TestSuite.get_root (); root.add_suite (new TemplateTests ().get_suite ()); Test.run (); return 0; } libkkc-0.3.5/tests/trellis-node.vala000066400000000000000000000044731244473050600174030ustar00rootroot00000000000000class TrellisNodeTests : Kkc.TestCase { public TrellisNodeTests () { base ("TrellisNode"); add_test ("unigram", this.test_unigram); add_test ("bigram", this.test_bigram); } void test_unigram () { Kkc.TrellisNode node; var entry = Kkc.LanguageModelEntry () { input = "foo", output = "bar", id = 0 }; node = new Kkc.UnigramTrellisNode (entry, entry.input.char_count ()); assert (node.input == "foo"); assert (node.to_string () == ""); var entries = node.entries; assert (entries.length == 1); assert (entries[0] == entry); } void test_bigram () { var left_entry = Kkc.LanguageModelEntry () { input = "left", output = "LEFT", id = 0 }; var left_node = new Kkc.UnigramTrellisNode ( left_entry, left_entry.input.char_count ()); var right_entry = Kkc.LanguageModelEntry () { input = "right", output = "RIGHT", id = 0 }; var right_node = new Kkc.UnigramTrellisNode ( right_entry, left_node.endpos + right_entry.input.char_count ()); Kkc.TrellisNode node; node = new Kkc.BigramTrellisNode (left_node, right_node, right_node.endpos); assert (node.endpos == right_node.endpos); assert (node.input == left_node.input + right_node.input); assert (node.output == left_node.output + right_node.output); assert (node.to_string () == ""); var entries = node.entries; assert (entries.length == 2); assert (entries[0] == left_entry); assert (entries[1] == right_entry); node = new Kkc.BigramTrellisNode (left_node, right_node, left_node.endpos); assert (node.input == left_node.input); assert (node.output == left_node.output); } } int main (string[] args) { Test.init (ref args); Kkc.init (); TestSuite root = TestSuite.get_root (); root.add_suite (new TrellisNodeTests ().get_suite ()); Test.run (); return 0; } libkkc-0.3.5/tests/user-dictionary.vala000066400000000000000000000230751244473050600201220ustar00rootroot00000000000000class UserSegmentDictionaryTests : Kkc.TestCase { public UserSegmentDictionaryTests () { base ("UserSegmentDictionary"); add_test ("load", this.test_load); add_test ("write", this.test_write); } void test_load () { try { new Kkc.UserSegmentDictionary ( "test-user-segment-dictionary"); } catch (Error e) { assert_not_reached (); } var srcdir = Environment.get_variable ("srcdir"); assert (srcdir != null); try { new Kkc.UserSegmentDictionary ( Path.build_filename (srcdir, "user-segment-dictionary-good")); } catch (Error e) { assert_not_reached (); } try { new Kkc.UserSegmentDictionary ( Path.build_filename (srcdir, "user-segment-dictionary-bad1")); assert_not_reached (); } catch (Error e) { } try { new Kkc.UserSegmentDictionary ( Path.build_filename (srcdir, "user-segment-dictionary-bad2")); assert_not_reached (); } catch (Error e) { } } void test_write () { Kkc.SegmentDictionary? dictionary = null; try { dictionary = new Kkc.UserSegmentDictionary ( "test-user-segment-dictionary"); } catch (Error e) { assert_not_reached (); } dictionary.select_candidate ( new Kkc.Candidate ("あい", false, "愛")); dictionary.select_candidate ( new Kkc.Candidate ("あお", false, "青")); dictionary.select_candidate ( new Kkc.Candidate ("あ お", false, "青 ")); dictionary.select_candidate ( new Kkc.Candidate ("あ/お", false, "青/")); dictionary.select_candidate ( new Kkc.Candidate ("あu", true, "会u")); dictionary.select_candidate ( new Kkc.Candidate ("あe", true, "会e")); var candidate = new Kkc.Candidate ("あw", true, "会w"); dictionary.select_candidate (candidate); dictionary.purge_candidate (candidate); dictionary.save (); try { dictionary = new Kkc.UserSegmentDictionary ( "test-user-segment-dictionary"); } catch (Error e) { assert_not_reached (); } Kkc.Candidate[] candidates; dictionary.lookup_candidates ("あ お", false, out candidates); assert (candidates.length == 1 && candidates[0].output == "青 "); dictionary.lookup_candidates ("あ/お", false, out candidates); assert (candidates.length == 1 && candidates[0].output == "青/"); } public override void set_up () { FileUtils.remove ("test-user-segment-dictionary"); } } class UserSentenceDictionaryTests : Kkc.TestCase { public UserSentenceDictionaryTests () { base ("UserSentenceDictionary"); add_test ("load", this.test_load); add_test ("write", this.test_write); } void test_load () { try { new Kkc.UserSentenceDictionary ( "user-sentence-dictionary"); } catch (Error e) { assert_not_reached (); } var srcdir = Environment.get_variable ("srcdir"); assert (srcdir != null); try { new Kkc.UserSentenceDictionary ( Path.build_filename (srcdir, "user-sentence-dictionary-good")); } catch (Error e) { assert_not_reached (); } try { new Kkc.UserSentenceDictionary ( Path.build_filename (srcdir, "user-sentence-dictionary-bad1")); assert_not_reached (); } catch (Error e) { } try { new Kkc.UserSentenceDictionary ( Path.build_filename (srcdir, "user-sentence-dictionary-bad2")); assert_not_reached (); } catch (Error e) { } } void test_write () { Kkc.SentenceDictionary? dictionary = null; try { dictionary = new Kkc.UserSentenceDictionary ( "test-user-sentence-dictionary"); } catch (Error e) { assert_not_reached (); } Kkc.Segment[] segments = {}; segments += new Kkc.Segment ("left", "LEFT"); segments += new Kkc.Segment ("right", "RIGHT"); segments += new Kkc.Segment ("\n", "\\"); dictionary.select_segments (segments); dictionary.save (); } public override void set_up () { FileUtils.remove ("test-user-sentence-dictionary"); } } class UserDictionaryWithContextTests : Kkc.TestCase { Kkc.Context context; Kkc.UserDictionary user_dictionary; public UserDictionaryWithContextTests () { base ("UserDictionaryWithContext"); try { Kkc.LanguageModel model = Kkc.LanguageModel.load ("sorted3"); context = new Kkc.Context (model); } catch (Kkc.LanguageModelError e) { stderr.printf ("%s\n", e.message); } add_test ("conversion", this.test_conversion); add_test ("phrase-conversion", this.test_phrase_conversion); add_test ("register", this.test_register); } void test_conversion () { var srcdir = Environment.get_variable ("srcdir"); assert (srcdir != null); Kkc.TestUtils.do_conversions (context, Path.build_filename ( srcdir, "conversions-user-dictionary.json")); context.dictionaries.save (); try { new Kkc.UserDictionary ("test-user-dictionary"); } catch (Error e) { assert_not_reached (); } user_dictionary.reload (); } void test_phrase_conversion () { var srcdir = Environment.get_variable ("srcdir"); assert (srcdir != null); Kkc.TestUtils.do_conversions (context, Path.build_filename ( srcdir, "conversions-user-dictionary-phrase.json")); context.dictionaries.save (); } void test_register () { var handler_id = context.request_selection_text.connect (() => { context.set_selection_text ("abc"); }); try { context.process_key_events ("A-r a i SPC RET"); } catch (Kkc.KeyEventFormatError e) { assert_not_reached (); } context.reset (); context.clear_output (); try { context.process_key_events ("a i SPC"); } catch (Kkc.KeyEventFormatError e) { assert_not_reached (); } assert (context.segments.size == 1); assert (context.segments.get_output () == "abc"); context.reset (); context.clear_output (); context.dictionaries.save (); context.disconnect (handler_id); context.request_selection_text.connect (() => { context.set_selection_text (null); }); try { context.process_key_events ("A-r a i SPC"); } catch (Kkc.KeyEventFormatError e) { assert_not_reached (); } context.reset (); context.clear_output (); try { new Kkc.UserDictionary ("test-user-dictionary"); } catch (Error e) { assert_not_reached (); } try { context.process_key_events ("a TAB"); } catch (Kkc.KeyEventFormatError e) { assert_not_reached (); } context.reset (); context.clear_output (); try { context.process_key_events ("a i SPC C-BackSpace"); } catch (Kkc.KeyEventFormatError e) { assert_not_reached (); } context.reset (); context.clear_output (); try { context.process_key_events ("a i SPC"); } catch (Kkc.KeyEventFormatError e) { assert_not_reached (); } assert (context.segments.size == 1); assert (context.segments.get_output () != "abc"); context.reset (); context.clear_output (); } public override void set_up () { if (FileUtils.test ("test-user-dictionary", FileTest.EXISTS)) { try { Kkc.TestUtils.remove_dir ("test-user-dictionary"); } catch (Error e) { assert_not_reached (); } } try { user_dictionary = new Kkc.UserDictionary ( "test-user-dictionary"); context.dictionaries.add (user_dictionary); } catch (Error e) { assert_not_reached (); } try { var srcdir = Environment.get_variable ("srcdir"); assert (srcdir != null); var dictionary = new Kkc.SystemSegmentDictionary ( Path.build_filename (srcdir, "system-segment-dictionary")); context.dictionaries.add (dictionary); } catch (Error e) { stderr.printf ("%s\n", e.message); } } public override void tear_down () { context.dictionaries.clear (); } } int main (string[] args) { Intl.setlocale (LocaleCategory.ALL, ""); Test.init (ref args); Kkc.init (); TestSuite root = TestSuite.get_root (); root.add_suite (new UserSegmentDictionaryTests ().get_suite ()); root.add_suite (new UserSentenceDictionaryTests ().get_suite ()); root.add_suite (new UserDictionaryWithContextTests ().get_suite ()); Test.run (); return 0; } libkkc-0.3.5/tests/user-rule.vala000066400000000000000000000035071244473050600167220ustar00rootroot00000000000000class UserRuleTests : Kkc.TestCase { public UserRuleTests () { base ("UserRule"); add_test ("creation", this.test_creation); add_test ("write", this.test_write); } public override void set_up () { if (FileUtils.test ("test-user-rule", FileTest.EXISTS)) { try { Kkc.TestUtils.remove_dir ("test-user-rule"); } catch (Error e) { assert_not_reached (); } } } void test_creation () { var parent = Kkc.RuleMetadata.find ("kana"); assert (parent != null); var rule = new Kkc.UserRule (parent, "test-user-rule", "test"); assert (rule != null); } void test_write () { var parent = Kkc.RuleMetadata.find ("kana"); assert (parent != null); Kkc.UserRule rule = new Kkc.UserRule (parent, "test-user-rule", "test"); assert (rule != null); var event0 = new Kkc.KeyEvent.from_string ("C-a"); rule.get_keymap (Kkc.InputMode.HIRAGANA).set (event0, "abort"); rule.write (Kkc.InputMode.HIRAGANA); rule = new Kkc.UserRule (parent, "test-user-rule", "test"); assert (rule != null); var event1 = new Kkc.KeyEvent.from_string ("C-a"); var command = rule.get_keymap (Kkc.InputMode.HIRAGANA).lookup_key (event1); assert (command == "abort"); bool found = false; var rules = Kkc.Rule.list (); foreach (var metadata in rules) { if (metadata.name == "test:kana") { found = true; break; } } assert (!found); } } int main (string[] args) { Test.init (ref args); Kkc.init (); TestSuite root = TestSuite.get_root (); root.add_suite (new UserRuleTests ().get_suite ()); Test.run (); return 0; } libkkc-0.3.5/tests/user-segment-dictionary-bad1000066400000000000000000000000271244473050600214350ustar00rootroot00000000000000;; okuri-nasi entries. libkkc-0.3.5/tests/user-segment-dictionary-bad2000066400000000000000000000000321244473050600214320ustar00rootroot00000000000000;; okuri-ari entries. bad libkkc-0.3.5/tests/user-segment-dictionary-good000066400000000000000000000001411244473050600215530ustar00rootroot00000000000000;; okuri-ari entries. ;; okuri-nasi entries. #あん /#3案/ あああ /亜ああ/ / /\x2f/\x2f/ libkkc-0.3.5/tests/user-sentence-dictionary-bad1000066400000000000000000000000231244473050600215730ustar00rootroot00000000000000;; phrase entries. libkkc-0.3.5/tests/user-sentence-dictionary-bad2000066400000000000000000000000331244473050600215750ustar00rootroot00000000000000;; constraint entries. bad libkkc-0.3.5/tests/user-sentence-dictionary-good000066400000000000000000000001411244473050600217150ustar00rootroot00000000000000;; constraint entries. からきこく /2,5/ ;; phrase entries. から きこく /から/帰国/ libkkc-0.3.5/tools/000077500000000000000000000000001244473050600141235ustar00rootroot00000000000000libkkc-0.3.5/tools/Makefile.am000066400000000000000000000024461244473050600161650ustar00rootroot00000000000000# Copyright (C) 2011-2014 Daiki Ueno # Copyright (C) 2011-2014 Red Hat, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . AM_CPPFLAGS = -include $(CONFIG_HEADER) bin_PROGRAMS = kkc bin_SCRIPTS = kkc-package-data kkc_VALAFLAGS = \ --vapidir=$(top_srcdir)/libkkc \ --vapidir=$(top_srcdir)/tools \ --pkg config \ --pkg kkc-1.0 \ $(VALAFLAGS) kkc_CFLAGS = \ -I$(top_srcdir) \ $(LIBKKC_CFLAGS) \ -DDATADIR=\"$(datadir)\" \ -DPKGDATADIR=\"$(pkgdatadir)\" \ -DLOCALEDIR=\"$(datadir)/locale\" \ $(NULL) kkc_LDADD = $(top_builddir)/libkkc/libkkc.la $(LIBKKC_LIBS) kkc_SOURCES = kkc.vala DISTCLEANFILES = kkc-package-data EXTRA_DIST = kkc-package-data.in -include $(top_srcdir)/git.mk libkkc-0.3.5/tools/kkc-package-data.in000066400000000000000000000064531244473050600175330ustar00rootroot00000000000000#!/bin/sh # Copyright (C) 2011-2014 Daiki Ueno # Copyright (C) 2011-2014 Red Hat, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . tmpfiles="" trap 'rm -fr $tmpfiles' 1 2 3 15 opt_text=text3 opt_sorted=sorted3 opt_package_name=libkkc-data opt_package_version=@PACKAGE_VERSION@ opt_package_bugreport=@PACKAGE_BUGREPORT@ prefix=@prefix@ datarootdir=@datarootdir@ opt_template=@datadir@/libkkc/templates/libkkc-data opt_input= exit_cmd=: func_error () { echo "$1" exit_cmd=exit } { while test $# -gt 0; do opt="$1" shift case $opt in --type|-t) test $# = 0 && func_error "missing argument for $opt" && break opt_sorted="$1" ;; --package-name|-N) test $# = 0 && func_error "missing argument for $opt" && break opt_package_name="$1" ;; --package-version|-V) test $# = 0 && func_error "missing argument for $opt" && break opt_package_version="$1" ;; --package-bugreport|-B) test $# = 0 && func_error "missing argument for $opt" && break opt_package_bugreport="$1" ;; --template|-T) test $# = 0 && func_error "missing argument for $opt" && break opt_template="$1" ;; --help) cat < configure.ac mv "data/models/Makefile.${opt_sorted}" data/models/Makefile.am cp "${opt_input}" "data/models/${opt_text}/data.arpa" mkdir m4 touch NEWS README AUTHORS ChangeLog autoreconf -f -i ./configure make make distcheck cp "${opt_package_name}-${opt_package_version}.tar.xz" "$basedir" cd "$basedir" rm -rf "$workdir" libkkc-0.3.5/tools/kkc.vala000066400000000000000000000211651244473050600155450ustar00rootroot00000000000000/* * Copyright (C) 2012-2014 Daiki Ueno * Copyright (C) 2012-2014 Red Hat, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ using Gee; static string opt_model = null; static string opt_system_dictionary; static string opt_user_dictionary; static string opt_typing_rule; static const OptionEntry[] model_entries = { { "model", 'm', 0, OptionArg.STRING, ref opt_model, N_("Language model"), null }, { null } }; static OptionGroup model_group; static const OptionEntry[] decoder_entries = { { null } }; static const OptionEntry[] context_entries = { { "system-dictionary", 's', 0, OptionArg.STRING, ref opt_system_dictionary, N_("Path to a system dictionary"), null }, { "user-dictionary", 'u', 0, OptionArg.STRING, ref opt_user_dictionary, N_("Path to a user dictionary"), null }, { "rule", 'r', 0, OptionArg.STRING, ref opt_typing_rule, N_("Typing rule (use \"?\" to list available rules)"), null }, { null } }; static void usage (string[] args, FileStream output) { var o = new OptionContext (_("COMMAND")); o.set_help_enabled (false); try { o.parse (ref args); } catch (Error e) { } o.set_description ( _("""Commands: help Shows this information decoder Run decoder context Run context Use "%s COMMAND --help" to get help on each command. """).printf ( Path.get_basename (args[0]))); var s = o.get_help (false, null); output.printf ("%s", s); } static int main (string[] args) { Intl.setlocale (LocaleCategory.ALL, ""); Intl.bindtextdomain (Config.GETTEXT_PACKAGE, Config.LOCALEDIR); Intl.bind_textdomain_codeset (Config.GETTEXT_PACKAGE, "UTF-8"); Intl.textdomain (Config.GETTEXT_PACKAGE); model_group = new OptionGroup ("model", N_("Model options:"), N_("Options specifying the language model")); model_group.add_entries (model_entries); Kkc.init (); var new_args = args[1:args.length]; if (new_args.length < 1) new_args += "decoder"; Environment.set_prgname ("%s %s".printf (args[0], new_args[0])); Repl repl; if (new_args[0] == "decoder") repl = new DecoderRepl (); else if (new_args[0] == "context") repl = new ContextRepl (); else if (new_args[0] == "help") { usage (args, stdout); return 0; } else { stderr.printf ("Unknown command: %s\n", new_args[0]); usage (args, stderr); return 1; } try { repl.parse_arguments (new_args); } catch (Error e) { usage (args, stderr); return 1; } try { repl.run (); } catch (Error e) { return 1; } return 0; } interface Repl : Object { public abstract bool parse_arguments (string[] args) throws Error; public abstract bool run () throws Error; } class DecoderRepl : Object, Repl { public bool parse_arguments (string[] args) throws Error { var o = new OptionContext ( _("- run decoder on the command line")); o.add_main_entries (decoder_entries, "libkkc"); o.add_group ((owned) model_group); return o.parse (ref args); } public bool run () throws Error { Kkc.LanguageModel model; try { var name = opt_model == null ? "sorted3" : opt_model; model = Kkc.LanguageModel.load (name); } catch (Kkc.LanguageModelError e) { stderr.printf ("%s\n", e.message); return false; } var decoder = Kkc.Decoder.create (model); stdout.printf ("Type kana sentence in the following form:\n" + "SENTENCE [N-BEST [SEGMENT-BOUNDARY...]]\n"); while (true) { stdout.printf (">> "); stdout.flush (); var line = stdin.read_line (); if (line == null) break; var nbest = 1; var strv = line.strip ().split (" "); if (strv.length == 0) continue; if (strv.length >= 2) nbest = int.parse (strv[1]); int[] constraints = new int[strv.length > 2 ? strv.length - 2 : 0]; for (var i = 0; i < constraints.length; i++) { constraints[i] = int.parse (strv[2 + i]); } var segments = decoder.decode (strv[0], nbest, constraints); for (var index = 0; index < segments.length; index++) { stdout.printf ("%d: ", index); var segment = segments[index]; while (segment != null) { stdout.printf ("<%s/%s>", segment.output, segment.input); segment = segment.next; } stdout.printf ("\n"); } } return true; } } class ContextRepl : Object, Repl { public bool parse_arguments (string[] args) throws Error { var o = new OptionContext ( _("- run context on the command line")); o.add_main_entries (context_entries, "libkkc"); o.add_group ((owned) model_group); return o.parse (ref args); } public bool run () throws Error { if (opt_typing_rule == "?") { var rules = Kkc.Rule.list (); foreach (var rule in rules) { stdout.printf ("%s - %s: %s\n", rule.name, rule.label, rule.description); } return true; } Kkc.LanguageModel model; try { var name = opt_model == null ? "sorted3" : opt_model; model = Kkc.LanguageModel.load (name); } catch (Kkc.LanguageModelError e) { stderr.printf ("%s\n", e.message); return false; } var context = new Kkc.Context (model); if (opt_user_dictionary != null) { try { context.dictionaries.add ( new Kkc.UserDictionary (opt_user_dictionary)); } catch (GLib.Error e) { stderr.printf ("can't open user dictionary %s: %s", opt_user_dictionary, e.message); return false; } } if (opt_system_dictionary == null) opt_system_dictionary = Path.build_filename (Config.DATADIR, "skk", "SKK-JISYO.L"); try { context.dictionaries.add ( new Kkc.SystemSegmentDictionary (opt_system_dictionary)); } catch (GLib.Error e) { stderr.printf ("can't open system dictionary %s: %s", opt_system_dictionary, e.message); return false; } if (opt_typing_rule != null) { try { var metadata = Kkc.RuleMetadata.find (opt_typing_rule); context.typing_rule = new Kkc.Rule (metadata); } catch (Kkc.RuleParseError e) { stderr.printf ("can't load rule \"%s\": %s\n", opt_typing_rule, e.message); return false; } } stdout.printf ("Type key event sequence separated by space\n"); while (true) { stdout.printf (">> "); stdout.flush (); var line = stdin.read_line (); if (line == null) break; try { context.process_key_events (line); } catch (Kkc.KeyEventFormatError e) { stderr.printf ("%s\n", e.message); continue; } print ("input: %s\n", context.input); print ("segments:\n"); for (var i = 0; i < context.segments.size; i++) { print (" input[%d]: %s\n", i, context.segments[i].input); print (" output[%d]: %s\n", i, context.segments[i].output); } print ("output: %s\n", context.poll_output ()); } return true; } }