texi2html-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Texi2html-cvs] texi2html ChangeLog Makefile.am Makefile.in NEW...


From: Patrice Dumas
Subject: [Texi2html-cvs] texi2html ChangeLog Makefile.am Makefile.in NEW...
Date: Sun, 02 Aug 2009 14:12:11 +0000

CVSROOT:        /cvsroot/texi2html
Module name:    texi2html
Changes by:     Patrice Dumas <pertusus>        09/08/02 14:12:11

Modified files:
        .              : ChangeLog Makefile.am Makefile.in NEWS TODO 
                         buildt2h.sh texi2html.init texi2html.pl 
        formats        : html.init info.init 
Added files:
        .              : documentlanguages.pl 
                         regenerate_documentlanguages.pl 

Log message:
                * texi2html.pl, texi2html.init: treat @alias like a normal misc
                commmand.
                Keep @macros definitions in output, treat them as raw 
environments
                that can be nested.
                Warn for deprecated commands.
                * texi2html.init: @syncodeindex and @finalout swallow end of 
line.
                * formats/html.init: Don't double in title when the @top and 
                @settitle are the same.
                * texi2html.pl: add 0x7F as a comment character.
                Still provide the default output with --macro-expand.
                warning if macro with an argument number different than 1 
                is called without a {}.
                Read TEXINFO_OUTPUT_FORMAT in env to determine the output 
format, 
                if not overridden by a command line option.
                More error and warning messages, especially for info.
                Warn for superfluous @node arguments.
                Remove whitespaces after formats, even in last pass.
                * Makefile.am, documentlanguages.pl, 
regenerate_documentlanguages.pl:
                Gather language codes and regions from the iana registery file.
                * formats/info.init: remove last end of line in @image file.txt
                Warn if there is a float or anchor before first node.
                * tests/*: run only once to generate the the texi_* output.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/texi2html/ChangeLog?cvsroot=texi2html&r1=1.399&r2=1.400
http://cvs.savannah.gnu.org/viewcvs/texi2html/Makefile.am?cvsroot=texi2html&r1=1.51&r2=1.52
http://cvs.savannah.gnu.org/viewcvs/texi2html/Makefile.in?cvsroot=texi2html&r1=1.72&r2=1.73
http://cvs.savannah.gnu.org/viewcvs/texi2html/NEWS?cvsroot=texi2html&r1=1.102&r2=1.103
http://cvs.savannah.gnu.org/viewcvs/texi2html/TODO?cvsroot=texi2html&r1=1.111&r2=1.112
http://cvs.savannah.gnu.org/viewcvs/texi2html/buildt2h.sh?cvsroot=texi2html&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/texi2html/texi2html.init?cvsroot=texi2html&r1=1.209&r2=1.210
http://cvs.savannah.gnu.org/viewcvs/texi2html/texi2html.pl?cvsroot=texi2html&r1=1.301&r2=1.302
http://cvs.savannah.gnu.org/viewcvs/texi2html/documentlanguages.pl?cvsroot=texi2html&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texi2html/regenerate_documentlanguages.pl?cvsroot=texi2html&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/texi2html/formats/html.init?cvsroot=texi2html&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/texi2html/formats/info.init?cvsroot=texi2html&r1=1.14&r2=1.15

Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/texi2html/texi2html/ChangeLog,v
retrieving revision 1.399
retrieving revision 1.400
diff -u -b -r1.399 -r1.400
--- ChangeLog   31 Jul 2009 15:56:27 -0000      1.399
+++ ChangeLog   2 Aug 2009 14:12:10 -0000       1.400
@@ -1,3 +1,28 @@
+2009-08-02   Patrice Dumas  <address@hidden>
+
+       * texi2html.pl, texi2html.init: treat @alias like a normal misc
+       commmand.
+       Keep @macros definitions in output, treat them as raw environments
+       that can be nested.
+       Warn for deprecated commands.
+       * texi2html.init: @syncodeindex and @finalout swallow end of line.
+       * formats/html.init: Don't double in title when the @top and 
+       @settitle are the same.
+       * texi2html.pl: add 0x7F as a comment character.
+       Still provide the default output with --macro-expand.
+       warning if macro with an argument number different than 1 
+       is called without a {}.
+       Read TEXINFO_OUTPUT_FORMAT in env to determine the output format, 
+       if not overridden by a command line option.
+       More error and warning messages, especially for info.
+       Warn for superfluous @node arguments.
+       Remove whitespaces after formats, even in last pass.
+       * Makefile.am, documentlanguages.pl, regenerate_documentlanguages.pl:
+       Gather language codes and regions from the iana registery file.
+       * formats/info.init: remove last end of line in @image file.txt
+       Warn if there is a float or anchor before first node.
+       * tests/*: run only once to generate the the texi_* output.
+
 2009-07-31   Patrice Dumas  <address@hidden>
 
        * texi2html.pl: warn for double menu entry and also for up in 

Index: Makefile.am
===================================================================
RCS file: /cvsroot/texi2html/texi2html/Makefile.am,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -b -r1.51 -r1.52
--- Makefile.am 28 Jul 2009 18:41:53 -0000      1.51
+++ Makefile.am 2 Aug 2009 14:12:10 -0000       1.52
@@ -16,7 +16,8 @@
        texi2html.init \
        translations.pl \
        examples/l2h.init \
-       T2h_l2h.pm
+       T2h_l2h.pm \
+       documentlanguages.pl
 
 texi2html_formats = \
        formats/html.init \
@@ -39,6 +40,7 @@
        texi2html.spec \
        texi2html.spec.in \
        texi2html.pl \
+       regenerate_documentlanguages.pl \
        $(texi2html_additional_scripts) \
        $(texi2html_formats)
 
@@ -142,14 +144,6 @@
        images/xy_up.png \
        images/xy_up_gr.png
 
-#texi2html: $(texi2html_sources)
-#      sed -e "/@MYSIMPLE@/r $(srcdir)/MySimple.pm" \
-#          -e "/@INIT@/r $(srcdir)/texi2html.init" \
-#          -e "/@T2H_TRANSLATIONS_FILE@/r $(srcdir)/translations.pl" \
-#          -e "/@T2H_L2H_INIT@/r $(srcdir)/l2h.init" \
-#          -e "/@T2H_I18N@/r $(srcdir)/T2h_i18n.pm" \
-#          -e "/@T2H_L2H@/r $(srcdir)/T2h_l2h.pm" $< >$@
-#      chmod a+x $@
 texi2html.temp: $(texi2html_sources)
        $(SHELL) $(srcdir)/buildt2h.sh $@ $^
 

Index: Makefile.in
===================================================================
RCS file: /cvsroot/texi2html/texi2html/Makefile.in,v
retrieving revision 1.72
retrieving revision 1.73
diff -u -b -r1.72 -r1.73
--- Makefile.in 28 Jul 2009 18:41:53 -0000      1.72
+++ Makefile.in 2 Aug 2009 14:12:10 -0000       1.73
@@ -191,7 +191,8 @@
        texi2html.init \
        translations.pl \
        examples/l2h.init \
-       T2h_l2h.pm
+       T2h_l2h.pm \
+       documentlanguages.pl
 
 texi2html_formats = \
        formats/html.init \
@@ -213,6 +214,7 @@
        texi2html.spec \
        texi2html.spec.in \
        texi2html.pl \
+       regenerate_documentlanguages.pl \
        $(texi2html_additional_scripts) \
        $(texi2html_formats)
 
@@ -825,14 +827,6 @@
        uninstall-dist_pkgdataDATA
 
 
-#texi2html: $(texi2html_sources)
-#      sed -e "/@MYSIMPLE@/r $(srcdir)/MySimple.pm" \
-#          -e "/@INIT@/r $(srcdir)/texi2html.init" \
-#          -e "/@T2H_TRANSLATIONS_FILE@/r $(srcdir)/translations.pl" \
-#          -e "/@T2H_L2H_INIT@/r $(srcdir)/l2h.init" \
-#          -e "/@T2H_I18N@/r $(srcdir)/T2h_i18n.pm" \
-#          -e "/@T2H_L2H@/r $(srcdir)/T2h_l2h.pm" $< >$@
-#      chmod a+x $@
 texi2html.temp: $(texi2html_sources)
        $(SHELL) $(srcdir)/buildt2h.sh $@ $^
 

Index: NEWS
===================================================================
RCS file: /cvsroot/texi2html/texi2html/NEWS,v
retrieving revision 1.102
retrieving revision 1.103
diff -u -b -r1.102 -r1.103
--- NEWS        30 Jul 2009 09:54:18 -0000      1.102
+++ NEWS        2 Aug 2009 14:12:10 -0000       1.103
@@ -8,12 +8,16 @@
 * new info and plaintext backends, ready for world domination!
   Corresponding test results are added.
 
-* main program handles --xml, --docbook, --info and --html.
+* main program handles --xml, --docbook, --info, --html and --plaintext.
 
 * Handle @DH{}, @dh{}, @TH{}, @th{}. 
 
 * Handle -o /dev/null (or NUL) like makeinfo.
 
+* Read TEXINFO_OUTPUT_FORMAT in env to determine the output format.
+
+* add 0x7F as a comment character.
+
 * BUG FIXES
   ---------
 
@@ -21,6 +25,10 @@
 
 * ignore @setfilename in @include'd files, as told in the texinfo manual.
 
+* many warning messages added, especially for Info to match makeinfo.
+
+* Still provide the default output with --macro-expand.
+
 * COMPATIBILITY
   -------------
 

Index: TODO
===================================================================
RCS file: /cvsroot/texi2html/texi2html/TODO,v
retrieving revision 1.111
retrieving revision 1.112
diff -u -b -r1.111 -r1.112
--- TODO        31 Jul 2009 15:56:27 -0000      1.111
+++ TODO        2 Aug 2009 14:12:10 -0000       1.112
@@ -63,6 +63,10 @@
   new argument of printindex
   new arguments of $unknown_style
   NODE_FILENAMES
+  $Texi2HTML::THISDOC{'format_from_command_line'}
+  language_codes
+  region_codes
+  
 
 * document the 'math' in 'args', in style_map, and simple_*math*. It
   could also be more flexible and similar with other environments, that
@@ -71,8 +75,6 @@
 
 * document the new $image arguments/API
 
-* don't double in title when the @top and @settitle are the same
-
 * the following is erroneous, but maybe it could be better handled anyway
 -> error with @item on same line than @table
 @xref{node,
@@ -193,7 +195,7 @@
   smalldisplay will use the class of the above format, and lose the 
   small font property.
 
-* decide @documentencoding @. And maybe change regexp.
+* decide @documentencoding @. And maybe change regexp. (?)
 
 * html32 
 For headings. In normal it is strong.
@@ -235,7 +237,7 @@
 * makeinfo has a lot of other short command line switches, but implement
   only those that are documented, in --help or info makeinfo.
 
-* does documentlanguage cmd line apply to first or all files? 
+* does --document-language cmd line apply to first or all files? 
   ask on bug-texinfo.
 
 * now config variables are read-only after command line switches
@@ -278,23 +280,8 @@
 @include d2t_singular/surf_lib_noEx.tex
   for texi2html they are the same.
 
-* makeinfo keeps @macro definitions in -E output. Maybe it should be done, 
-  too, for expansion in places that are only expanded by texi2dvi, namely
-  in @*headings, it could be better to delay @macro expansion to allow for
-  different expansions at different places in the document, something that 
-  cannot be done with texi2html -E.
-
-* add 0x7F as a comment character (ignore to eol).
-
-* texi2html's option -E suppresses creation of the default output
-     file.  Since texi2html shall replace makeinfo completely, it
-     should rather produce the output file instead for compatibility.
-  report from Werner LEMBERG.
-
 * @chapter following a @appendix still uses a number for numbering, and
-  is not affected by the @appendix number
-
-* @syncodeindex and @finalout should swallow end of line
+  is not affected by the @appendix number. Karl is ok with that.
 
 * @kbdinputstyle should be taken into account in html output, which
   means distinguish between preformatted, code_style and normal text 
@@ -302,8 +289,6 @@
   Also it should be dynamical, ie in pass 2 too (FIXME in the code).
   In info it is right to have it always in quotes.
 
-* @image in info, remove last end of line in file.txt
-
 * have a special debug mode where text processing is traced. It means
   that PASS_TEXT/SCAN_TEXT is shown and substitute_line (and maybe 
   other like substitute_text) and shown, now that there is a nice 
@@ -334,8 +319,6 @@
   There is also a check in layout/formatting_exotic with 
   --internal-links=/dev/null which is not portable
 
-* warning if macro without argument is called without a {}.
-
 * when determining the different letters and later sorting them, there 
   should not be transliteration, but instead perl sorting and i18n stuff
   should be used. Cf testcases in encoding/encoding_index*.
@@ -347,48 +330,21 @@
 
 * utf8.init doesn't work with info.init (see encodings/nodetest_to_utf8_latin1)
 
-* makeinfo: index entry out of document leads to a message 
-  (outside of any node).
-  instead of node name and line numbers in printindex. 
-  multiple index entries have <1>... appended.
+* makeinfo: multiple index entries have <1>... appended.
+  or they are removed. Ask on the list.
 
 * A lone node without associated sectionning command nor directions leads
   to an error message in makeinfo. Since there is no way to go out of the 
   node, it should certainly be noticed. Another possibility would be to
   have automatic directions set in that case too, and use the @menu stuff
-  to determine the directions, and warn if the node is not the top node and 
-  don't appear in menu.
+  to determine the directions
 ../../node_footnote.texi:14: Node `@'a' requires a sectioning command (e.g., 
@top).
 
-*   `makeinfo' also reads the environment variable
-`TEXINFO_OUTPUT_FORMAT' to determine the output format, if not
-overridden by a command line option.  The possible values are:
-
-     docbook  html  info  plaintext  xml
-
 * ../../sectionning.texi:4: warning: Must specify a title with least one of 
@settitle or @top.
 
-* error message when xref is followed by something else than . is missing.
-  ../../templates.texi:287: warning: `.' or `,' must follow @xref, not `f'.
-
-* warning when doing info and there is no node at all
-  warning when doing info and there is no Top node
-
 * Perhaps we should also make an option -Werror which turns all warnings
   into errors.
 
-* footnote before any node should trigger an error in info:
-  ../../before_node_and_section.texi:8: Footnote defined without parent node.
-
-* missing error messages
-../..//rendition.texi:59: warning: @allow-recursion is deprecated; please use 
@rmacro instead.
-../..//rendition.texi:60: warning: @quote-arg is deprecated; arguments are 
quoted by default.
-
-../..//d2t_singular/brnoeth_lib.tex:1097: warning: @strong{Note...} produces a 
spurious cross-reference in Info; reword to avoid that.
-
-* in novalidate.texi, fifth node argument should trigger an error
-  @node other node in menu before top, node not existing,,,first
-
 * only texi2html warns about:
 ** Empty index entry for @vtable (l. 26)
 
@@ -397,10 +353,6 @@
 
 * invalid/node_in_copying there is no error message
 
-* makeinfo creates a Top node when there is a menu seen before any @node
-  example in sectionning/one_section
-../../one_section.texi:11: warning: @menu seen before first @node, creating 
`Top' node.
-
 * info/long_uref_after_item.texi report from Kevin Ryde,
   it would be logical to treat the space after the itemize mark as 
   a tie instead of a breakpoint.
@@ -426,12 +378,6 @@
   directory or both?
 
 * error messages
address@hidden unknown
address@hidden another_UNKNOWN
-../../unknown_language.texi:6: warning: no default territory known for 
language `unknown'.
-../../unknown_language.texi:6: warning: unknown is not a valid ISO 639 
language code.
-../../unknown_language.texi:13: warning: another is not a valid ISO 639 
language code.
-
   ** `second node' doesn't appear in menus
   warning: unreferenced node `second node'.
 
@@ -444,6 +390,11 @@
   *** Unknown node in menu entry `node inexistant in menu' (l. 19)
   Menu reference to nonexistent node `node inexistant in menu' (perhaps 
incorrect sectioning?).
 
+  ** macro `splitrcskeyword' already defined (l. 86) redefined (l. 103)
+  ../../cvs.texi:106: warning: macro `splitrcskeyword' previously defined.
+  ../../cvs.texi:86: warning: here is the previous definition of 
`splitrcskeyword'.
+
+
   ** Bad index name: bidule (l. 11)
   ../../index_no_node.texi:11: Unknown index `bidule' in @printindex.
 
@@ -478,15 +429,9 @@
   not done in texi2html:
   ../../invalid_command_in_table.texi:8: table requires an argument: the 
formatter for @item.
 
-  ** Unknown command address@hidden,,' (left as is) (l. 9)
-  ../../invalid_command_in_table.texi:9: Unknown command `itemTop,,'.
-
   *** Undefined node `EExpansion' in @xref (l. 263)
   ../../templates.texi:287: Cross reference to nonexistent node `EExpansion' 
(perhaps incorrect sectioning?).
 
-* warning for @anchors and @float appearing before the first node, since
-  they are not recorded as Ref:. (for example formatting/float_copying).
-
 * in formatting/table_in_table_item.texi, some lines maybe have too much 
   leading spaces (precisely in @code in @table in @table @item, line
 in nested table line
@@ -505,20 +450,39 @@
 
   without an empty line added after the title. Maybe there should be one.
 
-* generic tests missing, in sectionning:
-  novalidate menu-whitespace node-whitespace two_footnotes_in_nodes
-  
-  macros:
-  value_in_pass0_macros macros_in_pass0_macros node-expand
-
-  formatting:
-  simple_images html-extrali
-
-  indices:
-  index_nodes
-
 * In japanese.texi lines are not cut right.
 
 * formatting/float_copying index entries in insertcopying are not right.
   Maybe it is because they are in footnotes. Or maybe because they are
   in a caption.
+
+* it would better to output just the basenames in the Info preamble.
+
+* This input:
+
+---------------------------
address@hidden Figure,a44
+First figure.
address@hidden caption.}
address@hidden float
+
+List of figures:
address@hidden Figure
address@hidden
+--------------------
+
+should actually produce something like:
+
+------------------------------
+First figure.
+
+Figure 1: Example caption.
+
+   List of figures:
+
+* Menu:
+
+* Figure 1: a44.            Example caption.
+
+
+

Index: buildt2h.sh
===================================================================
RCS file: /cvsroot/texi2html/texi2html/buildt2h.sh,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- buildt2h.sh 22 May 2009 18:50:27 -0000      1.3
+++ buildt2h.sh 2 Aug 2009 14:12:10 -0000       1.4
@@ -1,10 +1,10 @@
 #! /bin/sh
 
-if [ -z $8 ]; then
+if [ -z $9 ]; then
        exit 1
 fi
 
-echo "regenerating $1 from $3 $4 $5 $6 $2 $7 $8" 
+echo "regenerating $1 from $3 $4 $5 $6 $2 $7 $8 $9" 
 
 sed -e "/@MYSIMPLE@/r $3" \
            -e "/@T2H_I18N@/r $4" \
@@ -12,4 +12,5 @@
            -e "/@T2H_TRANSLATIONS_FILE@/r $6" \
            -e "/@T2H_L2H_INIT@/r $7" \
            -e "/@T2H_L2H@/r $8" \
+           -e "/@T2H_DOCUMENT_LANGUAGES@/r $9" \
                        $2 >$1

Index: texi2html.init
===================================================================
RCS file: /cvsroot/texi2html/texi2html/texi2html.init,v
retrieving revision 1.209
retrieving revision 1.210
diff -u -b -r1.209 -r1.210
--- texi2html.init      31 Jul 2009 10:16:45 -0000      1.209
+++ texi2html.init      2 Aug 2009 14:12:10 -0000       1.210
@@ -12,7 +12,7 @@
 # Afterwards, load the file with command-line 
 # option -init-file <your_init_file>
 #
-# $Id: texi2html.init,v 1.209 2009/07/31 10:16:45 pertusus Exp $
+# $Id: texi2html.init,v 1.210 2009/08/02 14:12:10 pertusus Exp $
 
 ######################################################################
 # The following variables can also be set by command-line options
@@ -1073,6 +1073,7 @@
   if (defined($t2h_default_formats_load_table{$format}))
   {
      &{$t2h_default_formats_load_table{$format}}($from_command_line);
+     $Texi2HTML::THISDOC{'format_from_command_line'} = $format if 
($from_command_line);
   }
   else
   {
@@ -1907,6 +1908,11 @@
 #     give them another name, and assign them to the respective
 #     $<fnc> variable (below).
 
+%deprecated_commands = (
+  'ctrl' => '',
+  'allow-recursion' => 'please use @macro instead.',
+  'quote-arg' => 'arguments are quoted by default.',
+);
 
 #
 # This hash should have keys corresponding with the nonletter command accent
@@ -4043,6 +4049,7 @@
      'ifnotdocbook' => 1, 
      'direntry' => 'normal',
      'verbatim' => 'raw', 
+     'macro' => 'raw', 
      'ifclear' => 'value', 
      'ifset' => 'value' ,
      );
@@ -4193,6 +4200,7 @@
         # set, clear
         'set' => {'skip' => 'line'}, # special arg
         'clear' => {'skip' => 'line'}, # special arg
+        'alias' => {'args' => 3, 'skip' => 'line'}, # special arg
         # comments
         'comment' => {'arg' => 'line'},
         'c' => {'arg' => 'line'},
@@ -4214,7 +4222,7 @@
                          # with direntry is significant
         'pagesizes' => {'skip' => 'line', 'arg' => 'line'}, # can have 2 args 
                                  # or one? 200mm,150mm 11.5in
-        'finalout' => {}, # no arg
+        'finalout' => {'skip' => 'line'}, # no arg
         'paragraphindent' => {'skip' => 'line', 'arg' => 1}, # arg none asis 
                              # or a number and forbids anything else on the 
line
         'firstparagraphindent' => {'skip' => 'line', 'arg' => 1}, # none insert
@@ -4253,9 +4261,9 @@
         'author' => {'arg' => 'line'},
         'subtitle' => {'arg' => 'line'},
         'title' => {'arg' => 'line'},
-        'syncodeindex' => {'skip' => 'linespace', 'arg' => 2}, 
+        'syncodeindex' => {'skip' => 'line', 'arg' => 2}, 
                           # args are index identifiers
-        'synindex' => {'skip' => 'linespace', 'arg' => 2},
+        'synindex' => {'skip' => 'line', 'arg' => 2},
         'defindex' => {'skip' => 'line', 'arg' => 1}, # one identifier arg
         'defcodeindex' => {'skip' => 'line', 'arg' => 1}, # one identifier arg
         #'documentlanguage' => {'skip' => 'whitespace', 'arg' => 1}, 

Index: texi2html.pl
===================================================================
RCS file: /cvsroot/texi2html/texi2html/texi2html.pl,v
retrieving revision 1.301
retrieving revision 1.302
diff -u -b -r1.301 -r1.302
--- texi2html.pl        31 Jul 2009 15:56:27 -0000      1.301
+++ texi2html.pl        2 Aug 2009 14:12:10 -0000       1.302
@@ -86,7 +86,7 @@
 }
 
 # CVS version:
-# $Id: texi2html.pl,v 1.301 2009/07/31 15:56:27 pertusus Exp $
+# $Id: texi2html.pl,v 1.302 2009/08/02 14:12:10 pertusus Exp $
 
 # Homepage:
 my $T2H_HOMEPAGE = "http://www.nongnu.org/texi2html/";;
@@ -636,6 +636,9 @@
 %command_handler
 %special_style
 %null_device_file
+%language_codes
+%region_codes
+%deprecated_commands
 );
 
 # subject to change
@@ -1405,6 +1408,17 @@
   }
   return '';
 }
+
+# leave this within comments, and keep the require statement
+# This way, you can directly run texi2html.pl, 
+# if $T2H_HOME/documentlanguages.pl exists.
+#
+# @T2H_DOCUMENT_LANGUAGES@
+
+require "$T2H_HOME/documentlanguages.pl"
+    if ($0 =~ /\.pl$/ &&
+        -e "$T2H_HOME/documentlanguages.pl" && -r 
"$T2H_HOME/documentlanguages.pl");
+
 # leave this within comments, and keep the require statement
 # This way, you can directly run texi2html.pl, if 
 # $T2H_HOME/texi2html.init exists.
@@ -2112,19 +2126,38 @@
 
 #
 # called on -lang, and when a @documentlanguage appears
-sub set_document_language ($)
+sub set_document_language ($$;$)
 {
     my $lang = shift;
+    my $silent = shift;
+    my $line_nr = shift;
 
     my @langs = ($lang);
 
+    my $lang_code = $lang;
+    my $region_code;
+
     my $main_lang;
+
     if ($lang =~ /^([a-z]+)_([A-Z]+)/)
     {
         $main_lang = $1;
+        $region_code = $2;
+        $lang_code = $main_lang;
         push @langs, $main_lang;
     }
 
+    if (!$silent)
+    {
+        if (! $Texi2HTML::Config::language_codes{$lang_code})
+        { # i18n
+            always_warn("$lang_code is not a valid language code.", $line_nr);
+        }
+        if (defined($region_code) and ! 
$Texi2HTML::Config::region_codes{$region_code})
+        { # i18n
+            always_warn("$region_code is not a valid region code.", $line_nr);
+        }
+    }
     my @files = locate_init_file("$i18n_dir/$lang", 1);
     if (! scalar(@files) and defined($main_lang))
     {
@@ -3254,6 +3287,11 @@
     }
 }
 
+if (! $Texi2HTML::THISDOC{'format_from_command_line'} and 
defined($ENV{'TEXINFO_OUTPUT_FORMAT'}) and $ENV{'TEXINFO_OUTPUT_FORMAT'} ne '')
+{
+  Texi2HTML::Config::t2h_default_load_format($ENV{'TEXINFO_OUTPUT_FORMAT'}, 
0); 
+}
+
 # $T2H_DEBUG and $T2H_VERBOSE are shorthands
 $T2H_DEBUG = $Texi2HTML::Config::DEBUG;
 $T2H_VERBOSE = $Texi2HTML::Config::VERBOSE;
@@ -4111,10 +4149,11 @@
 
     # set the translations now. This means at the beginning of each phase.
     my $lang = Texi2HTML::Config::get_conf('documentlanguage');
-    if (!set_document_language($lang))
+#print STDERR "$pass $lang\n";
+    if (!set_document_language($lang, 1))
     {
        warn "Translations for '$lang' not found. Using 'en'.\n" if ($pass == 
2);
-       set_document_language('en');
+       set_document_language('en', 1);
     }
     # All the initialization used the informations still there at the 
     # end of the previous pass.
@@ -4360,6 +4399,7 @@
     my $node_arg = '';
     while (1)
     {
+        # macro_regexp
         if ($node_line =~ 
s/^([^{},@]*)\@(["'address@hidden,\.!\?\s\*\-\^`=:\|\/\\])//o or $node_line =~ 
s/^([^{}@,]*)\@([a-zA-Z][\w-]*)(address@hidden)/$3/o or $node_line =~ 
s/^([^{},@]*)\@([a-zA-Z][\w-]*)$//o)
         {
             $node_arg .= $1;
@@ -4490,6 +4530,10 @@
                     my $auto_directions;
                     my @node_res = scan_node_line($cline);
                     $auto_directions = 1 if (scalar(@node_res) == 1);
+                    if (@node_res > 4)
+                    {
+                        echo_warn("Superfluous arguments for node", $line_nr);
+                    }
                     my ($node, $node_next, $node_prev, $node_up) = @node_res;
                     if (defined($node) and ($node ne ''))
                     {
@@ -4751,7 +4795,7 @@
         my $prev_lang = Texi2HTML::Config::get_conf('documentlanguage');
         if ($lang and Texi2HTML::Config::set_conf('documentlanguage', $lang))
         {
-            $return_value = set_document_language($lang);
+            $return_value = set_document_language($lang, $silent, $line_nr);
             if (!$return_value)
             {
                 Texi2HTML::Config::set_conf('documentlanguage', $prev_lang);
@@ -4966,6 +5010,17 @@
             }
          }
       }
+      elsif ($macro eq 'alias')
+      { 
+          if ($line =~ /(\s+)([a-zA-Z][\w-]*)(\s*=\s*)([a-zA-Z][\w-]*)(\s*)/)
+          {
+               $alias{$2} = $4;
+          }
+          else
+          {
+               echo_error ("bad address@hidden line", $line_nr);
+          }
+      }
       else
       {
           if ($macro eq 'setfilename' and $Texi2HTML::Config::USE_SETFILENAME)
@@ -5426,7 +5481,8 @@
     {
         if ($node_menu_ref->{'menu_up'} and !$node_menu_ref->{'external_node'})
         {
-           echo_warn ("Double entry in menu for `$node' (also below 
`$node_menu_ref->{'menu_up'}->{'texi'}')", $line_nr);
+           # This is not an error. This is used a lot in real life manuals
+           #echo_warn ("Double entry in menu for `$node' (also below 
`$node_menu_ref->{'menu_up'}->{'texi'}')", $line_nr);
         }
         $node_menu_ref->{'menu_up'} = $state->{'node_ref'};
         $node_menu_ref->{'menu_up_hash'}->{$state->{'node_ref'}->{'texi'}} = 1;
@@ -8221,6 +8277,8 @@
         my $chomped_line = $line;
         $file->{'line_nr'}++ if (defined($line) and chomp($chomped_line));
         $line_number->{'line_nr'} = $file->{'line_nr'};
+        # do that right now, before any other treatement
+        $line =~ s/\x{7F}.*\s*// if (defined($line));
         return($line, $input_spool) if (defined($line));
         no strict "refs";
         close($fh);
@@ -8230,6 +8288,21 @@
     return(undef, $input_spool);
 }
 
+sub always_warn($;$)
+{
+    my $text = shift;
+    chomp ($text);
+    my $line_number = shift;
+    if (defined($line_number))
+    {
+         echo_warn ($text, $line_number);
+    }
+    else
+    {
+        warn "$text\n";
+    }
+}
+
 # echo a warning
 sub echo_warn($;$)
 {
@@ -9785,6 +9858,10 @@
             begin_format($text, $stack, $state, 'menu_comment', $line, 
$line_nr);
         }
     }
+    # this is useful for @©enter, and also if there was something on the 
+    # line after a format that isn't there anymore, like
+    address@hidden   @c
+    $line =~ s/^\s*// unless ($macro eq 'center' and $line =~ /^\s*$/);
     return $line;
 }
 
@@ -10798,18 +10875,20 @@
     my $remaining_on_the_line = shift;
 
     $state->{'macro_inside'}--;
-    return 0 if ($state->{'ignored'});
+    return (0, undef) if ($state->{'ignored'});
     if ($state->{'macro_inside'})
     {
         $state->{'macro'}->{'body'} .= $end_string;
-        return 0;
+        return (0, undef);
     }
+    my $macro_text = $state->{'macro'}->{'header'} . 
$state->{'macro'}->{'body'}.$end_string;
     chomp $state->{'macro'}->{'body'};
     print STDERR "# end macro def. Body:\n$state->{'macro'}->{'body'}"
       if ($T2H_DEBUG & $DEBUG_MACROS);
+    $macros->{$state->{'macro'}->{'name'}} = $state->{'macro'} unless 
($state->{'arg_expansion'});
     delete $state->{'macro'};
-    return 1 if ($remaining_on_the_line =~ /^\s*$/);
-    return 0;
+    return (1, $macro_text.$remaining_on_the_line) if ($remaining_on_the_line 
=~ /^\s*$/);
+    return (0, $macro_text);
 }
 
 sub close_macro_arg($$$)
@@ -10955,7 +11034,9 @@
             #if ($cline =~ s/^(.*?)address@hidden//o or $cline =~ 
s/^(.*?)address@hidden//o)
             if ($cline =~ s/^(address@hidden)$//o or $cline =~ 
s/^(address@hidden)//o)
             {
-                 return if (end_macro($state, $1, $cline));
+                 my ($no_remaining, $result) = end_macro($state, $1, $cline);
+                 add_prev ($text, $stack, $result) if (defined($result));
+                 return 1 if ($no_remaining);
                  next;
             }
 
@@ -10963,7 +11044,8 @@
             {
                  $state->{'macro'}->{'body'} .= $cline unless 
($state->{'ignored'});
                  $state->{'macro_inside'}++;
-                 return;
+                 #return;
+                 return 1;
             }
             elsif ($cline =~ s/^\@(.)//)
             {
@@ -10987,7 +11069,8 @@
                  if ($cline =~ /^$/)
                  {
                       $state->{'macro'}->{'body'} .= $cline;
-                      return;
+                      #return;
+                      return 1;
                  }
                  next;
             }
@@ -11184,36 +11267,36 @@
         elsif ($cline =~ 
s/^(address@hidden)\@(["'address@hidden,\.!\?\s\*\-\^`=:\|\/\\])//o or $cline 
=~ s/^(address@hidden)\@([a-zA-Z][\w-]*)//o)
         {# ARG_EXPANSION
             add_prev($text, $stack, $1) unless $state->{'ignored'};
-            my $macro = $2;
+            my $command = $2;
             # FIXME: if it is an alias, it is substituted below, in the
-            # diverse add_prev and output of address@hidden Maybe it could be
+            # diverse add_prev and output of address@hidden Maybe it could be
             # kept and only substituted in the last passes?
-            $macro = $alias{$macro} if (exists($alias{$macro}));
-           #print STDERR "MACRO $macro\n";
+            $command = $alias{$command} if (exists($alias{$command}));
+           #print STDERR "MACRO $command\n";
             # handle skipped @-commands
-            $state->{'bye'} = 1 if ($macro eq 'bye' and !$state->{'ignored'} 
and !$state->{'arg_expansion'});
+            $state->{'bye'} = 1 if ($command eq 'bye' and !$state->{'ignored'} 
and !$state->{'arg_expansion'});
             # 'ignored' and 'arg_expansion' are handled in misc_command_texi
             # these are the commands in which the @value and @macro
             # and @-commands in general should not be expanded
-            if (defined($Texi2HTML::Config::misc_command{$macro}) and
-                 ($macro eq 'c' or $macro eq 'comment' or $macro eq 'set' 
-                   or $macro eq 'clear' or $macro eq 'bye'))
+            if (defined($Texi2HTML::Config::misc_command{$command}) and
+                 ($command eq 'c' or $command eq 'comment' or $command eq 
'set' 
+                   or $command eq 'clear' or $command eq 'bye' or $command eq 
'alias'))
             {
-                ($cline, $line) = misc_command_texi($cline, $macro, $state,
+                ($cline, $line) = misc_command_texi($cline, $command, $state,
                        $line_nr);
-                add_prev ($text, $stack, "address@hidden" . $line) unless 
$state->{'ignored'};
+                add_prev ($text, $stack, "address@hidden" . $line) unless 
$state->{'ignored'};
             }
-            elsif ($macro eq 'setfilename' or $macro eq 'documentencoding'
-                      or $macro eq 'definfoenclose' or $macro eq 'include')
+            elsif ($command eq 'setfilename' or $command eq 'documentencoding'
+                      or $command eq 'definfoenclose' or $command eq 'include')
             { # special commands whose arguments will have @macro and
               # @value expanded, and that are processed in this pass
-                if ($state->{'ignored'} or ($line_nr->{'file_name'} ne 
$Texi2HTML::THISDOC{'input_file_name'} and $macro eq 'setfilename'))
+                if ($state->{'ignored'} or ($line_nr->{'file_name'} ne 
$Texi2HTML::THISDOC{'input_file_name'} and $command eq 'setfilename'))
                 {
                     $cline = '';
                 }
                 elsif ($state->{'arg_expansion'})
                 {
-                    add_prev($text, $stack, "address@hidden" . $cline);
+                    add_prev($text, $stack, "address@hidden" . $cline);
                     return;
                 }
                 else
@@ -11225,13 +11308,13 @@
                     $space = '' if (!defined($space));
                     if (!$state->{'line_command'})
                     { 
-                        #print STDERR "LINE_COMMAND Start line_command $macro, 
cline $cline";
-                        $state->{'line_command'} = $macro;
-                        push @$stack, { 'line_command' => $macro, 'text' => 
$space };
+                        #print STDERR "LINE_COMMAND Start line_command 
$command, cline $cline";
+                        $state->{'line_command'} = $command;
+                        push @$stack, { 'line_command' => $command, 'text' => 
$space };
                     }
                     else
                     {# FIXME warn/error? or just discard?
-                        add_prev($text, $stack, "address@hidden" . $space);
+                        add_prev($text, $stack, "address@hidden" . $space);
                     }
                 }
             }
@@ -11243,43 +11326,47 @@
             # args. Likewise it seems that the @value are not expanded
             # in macro definitions
 
-            elsif ($macro =~ /^r?macro$/)
-            { #FIXME what to do if 'arg_expansion' is true (ie within another
-              # macro call arguments?
+            elsif ($command =~ /^r?macro$/)
+            { # in 'arg_expansion' (ie within another macro call arguments)
+              # the macro is parsed as usual, but isn't registered in 
+              # end_macro.
                 if ($cline =~ /^\s+(\w[\w-]*)\s*(.*)/)
                 {
                     my $name = $1;
-                    unless ($state->{'ignored'})
+                    my $args_def = $2;
+                    unless ($state->{'ignored'} or $state->{'arg_expansion'})
                     {
                          if (exists($macros->{$name}))
                          {
                              echo_warn ("macro `$name' already defined " . 
                                  
format_line_number($macros->{$name}->{'line_nr'}) . " redefined", $line_nr);
                          }
-                         
                     }
                     $state->{'macro_inside'} = 1;
+
                     next if ($state->{'ignored'});
-                    # if in 'arg_expansion' we really want to take into account
-                    # that we are in an ignored ifclear.
                     my @args = ();
+                    if ($args_def =~ /^\s*{\s*(.*?)\s*}\s*/)
+                    {
                     @args = split(/\s*,\s*/ , $1)
-                       if ($2 =~ /^\s*{\s*(.*?)\s*}\s*/);
+                    }
                     # keep the context information of the definition
-                    $macros->{$name}->{'line_nr'} = { 'file_name' => 
$line_nr->{'file_name'}, 
+                    my $macro = { 'name' => $name };
+                    $macro->{'line_nr'} = { 'file_name' => 
$line_nr->{'file_name'}, 
                          'line_nr' => $line_nr->{'line_nr'}, 'macro' => 
$line_nr->{'macro'} } if (defined($line_nr));
-                    $macros->{$name}->{'args'} = address@hidden;
+                    $macro->{'args'} = address@hidden;
+                    $macro->{'header'} = "address@hidden" .$cline;
                     my $arg_index = 0;
                     my $debug_msg = '';
                     foreach my $arg (@args)
                     { # when expanding macros, the argument index is retrieved
                       # with args_index
-                        $macros->{$name}->{'args_index'}->{$arg} = $arg_index;
+                        $macro->{'args_index'}->{$arg} = $arg_index;
                         $debug_msg .= "$arg($arg_index) ";
                         $arg_index++;
                     }
-                    $macros->{$name}->{'body'} = '';
-                    $state->{'macro'} = $macros->{$name};
+                    $macro->{'body'} = '';
+                    $state->{'macro'} = $macro;
                     print STDERR "# macro def $name: $debug_msg\n"
                          if ($T2H_DEBUG & $DEBUG_MACROS);
                 }
@@ -11288,33 +11375,33 @@
                     echo_error ("Macro definition without macro name $cline", 
$line_nr)
                         unless ($state->{'ignored'});
                 }
-                return;
+                return 1;
             }
-            elsif (defined($Texi2HTML::Config::texi_formats_map{$macro}))
+            elsif (defined($Texi2HTML::Config::texi_formats_map{$command}))
             {
                 my $tag;
-                ($cline, $tag) = do_text_macro($macro, $cline, $state, $stack, 
$line_nr); 
+                ($cline, $tag) = do_text_macro($command, $cline, $state, 
$stack, $line_nr); 
                 # if it is a raw formatting command or a menu command
                 # we must keep it for later, unless we are in an 'ignored'.
                 # if in 'arg_expansion' we keep everything.
-                my $macro_kept;
-                if ((($state->{'raw'} or 
($Texi2HTML::Config::texi_formats_map{$macro} eq 'normal') or 
(exists($region_lines{$macro}))) and !$state->{'ignored'}) or 
$state->{'arg_expansion'})
+                my $command_kept;
+                if ((($state->{'raw'} or 
($Texi2HTML::Config::texi_formats_map{$command} eq 'normal') or 
(exists($region_lines{$command}))) and !$state->{'ignored'}) or 
$state->{'arg_expansion'})
                 {
                     add_prev($text, $stack, $tag);
-                    $macro_kept = 1;
+                    $command_kept = 1;
                 }
                 #dump_stack ($text, $stack, $state);
-                next if $macro_kept;
+                next if $command_kept;
                 return if ($cline =~ /^\s*$/);
             }
-            elsif ($macro eq 'value')
+            elsif ($command eq 'value')
             {
                 if ($cline =~ s/^{($VARRE)}//)
                 {
                     my $value = $1;
                     if ($state->{'arg_expansion'})
                     {
-                        add_prev($text, $stack, "address@hidden" .'{'. $value 
.'}');
+                        add_prev($text, $stack, "address@hidden" .'{'. $value 
.'}');
                         next;
                     }
                     next if ($state->{'ignored'});
@@ -11326,14 +11413,14 @@
                 {
                     if ($state->{'arg_expansion'})
                     {
-                        add_prev($text, $stack, "address@hidden");
+                        add_prev($text, $stack, "address@hidden");
                         next;
                     }
                     next if ($state->{'ignored'});
                     echo_error ("bad address@hidden macro", $line_nr);
                 }
             }
-            elsif ($macro eq 'unmacro')
+            elsif ($command eq 'unmacro')
             { #FIXME with 'arg_expansion' should it be passed unmodified ?
                 if ($state->{'ignored'})
                 {
@@ -11346,26 +11433,7 @@
                 return if ($cline =~ /^\s*$/);
                 $cline =~ s/^\s*//;
             }
-            elsif ($macro eq 'alias')
-            { # FIXME what to do with 'arg_expansion' ?
-                if ($cline =~ 
s/(\s+)([a-zA-Z][\w-]*)(\s*=\s*)([a-zA-Z][\w-]*)(\s*)//)
-                {
-                    if ($state->{'arg_expansion'})
-                    {
-                         my $line = "address@hidden" . $1.$2.$3.$4;
-                         $line .= $5 if (defined($4));
-                         add_prev($text, $stack, $line); 
-                         next;
-                    }
-                    next if $state->{'ignored'};
-                    $alias{$2} = $4;
-                }
-                else
-                {
-                    echo_error ("bad address@hidden line", $line_nr);
-                }
-            }
-            elsif (exists($macros->{$macro}))
+            elsif (exists($macros->{$command}))
             {# it must be before the handling of {, otherwise it is considered
              # to be regular texinfo @-command. Maybe it could be placed higher
              # if we want user defined macros to override texinfo @-commands
@@ -11373,25 +11441,27 @@
              # in 'ignored' we parse macro defined args anyway as it removes 
              # some text, but we don't expand the macro
 
-                my $ref = $macros->{$macro}->{'args'};
+                my $ref = $macros->{$command}->{'args'};
+                my $args_number = $#$ref +1;
                 # we remove any space/new line before the argument
                 if ($cline =~ s/^\s*{\s*//)
                 { # the macro has args
                     $state->{'macro_args'} = [ "" ];
-                    $state->{'macro_name'} = $macro;
+                    $state->{'macro_name'} = $command;
                     $state->{'macro_depth'} = 1;
                 }
-                elsif (($#$ref >= 1) or ($#$ref <0))
+                elsif (($args_number >= 2) or ($args_number <1))
                 { # no brace -> no arg
                     #$cline = 
-                    expand_macro ($macro, [], $cline, $line_nr, $state);
+                    echo_warn("address@hidden defined with $args_number 
arguments should be invoked with {}", $line_nr);
+                    expand_macro ($command, [], $cline, $line_nr, $state);
                     return;
                 }
                 else
                 { # macro with one arg on the line
                     chomp $cline;
                     #$cline = 
-                    expand_macro ($macro, [$cline], "\n", $line_nr, $state);
+                    expand_macro ($command, [$cline], "\n", $line_nr, $state);
                     return;
                 }
             }
@@ -11401,7 +11471,7 @@
              # we add it the comands even in 'ignored' as their result is 
              # discarded when the closing brace appear, or the ifset or 
              # iclear is closed.
-                if ($macro eq 'verb')
+                if ($command eq 'verb')
                 {
                     if ($cline =~ /^$/)
                     {
@@ -11414,11 +11484,11 @@
                         $state->{'verb'} = $1;
                     }
                 }
-                push (@$stack, { 'style' => $macro, 'text' => '' });
+                push (@$stack, { 'style' => $command, 'text' => '' });
             }
             else
             {
-                $cline = do_unknown(0, $macro, $cline, $text, $stack, $state, 
$line_nr);
+                $cline = do_unknown(0, $command, $cline, $text, $stack, 
$state, $line_nr);
             }
             next;
         }
@@ -11765,11 +11835,28 @@
                 exit 1;
             }
             ################# end debug 
+            if ($tag eq 'macro')
+            {
+                if ($cline =~ /address@hidden(\w[\w-]*)\s*(.*)/)
+                {
+                    $state->{$tag}++;
+                }
+            }
             # macro_regexp
             if ($cline =~ /^(.*?)address@hidden([a-zA-Z][\w-]*)/o and ($2 eq 
$tag))
             {
-                $cline =~ s/^(.*?)address@hidden//;
+                $cline =~ s/^(.*?)(address@hidden)//;
                 add_prev ($text, $stack, $1);
+                my $end_text = $2;
+                if ($tag eq 'macro')
+                {
+                    $state->{$tag}--;
+                    if ($state->{$tag})
+                    {
+                        add_prev ($text, $stack, $end_text);
+                        next;
+                    }
+                }
                 delete $state->{'raw'};
                 my $style = pop @$stack;
                 if (defined($Texi2HTML::Config::command_handler{$tag})) 
@@ -11778,7 +11865,6 @@
                     {
                         add_prev ($text, $stack, 
init_special($style->{'style'}, $style->{'text'}));
                     }
-                    
                 }
                 else
                 {
@@ -11827,6 +11913,17 @@
             my $macro = $2;
             #print STDERR "MACRO $macro\n";
             $macro = $alias{$macro} if (exists($alias{$macro}));
+            if (defined($Texi2HTML::Config::deprecated_commands{$macro}))
+            {
+                if ($Texi2HTML::Config::deprecated_commands{$macro} eq '')
+                {
+                   echo_warn("address@hidden is obsolete.", $line_nr);
+                }
+                else
+                {
+                   echo_warn("address@hidden is obsolete; 
$Texi2HTML::Config::deprecated_commands{$macro}", $line_nr);
+                }
+            }
             if (defined($Texi2HTML::Config::misc_command{$macro}))
             {
                 my $line;
@@ -11926,6 +12023,7 @@
                 if ($Texi2HTML::Config::texi_formats_map{$macro} eq 'raw')
                 {
                     $state->{'raw'} = $macro;
+                    $state->{$macro}++ if ($macro eq 'macro');
                     #print STDERR "RAW\n";
                 }
                 elsif ($Texi2HTML::Config::texi_formats_map{$macro} eq 
'normal')
@@ -12494,14 +12592,31 @@
         if (defined($state->{'raw'})) 
         {
             (dump_stack($text, $stack, $state), die "Bug for raw 
($state->{'raw'})") if (! @$stack or ! ($stack->[-1]->{'style'} eq 
$state->{'raw'}));
+            if ($state->{'raw'} eq 'macro')
+            {
+                if ($cline =~ /address@hidden(\w[\w-]*)\s*(.*)/)
+                {
+                    $state->{$state->{'raw'}}++;
+                }
+            }
             # macro_regexp
             if ($cline =~ /^(.*?)address@hidden([a-zA-Z][\w-]*)/o and ($2 eq 
$state->{'raw'}))
             # don't protect html, it is done by Texi2HTML::Config::raw if 
needed
             {
-                $cline =~ s/^(.*?)address@hidden>{'raw'}//;
+                $cline =~ s/^(.*?)(address@hidden>{'raw'})//;
+                my $remaining = $1;
+                my $end_text = $2;
+                if ($state->{'raw'} eq 'macro')
+                {
+                    $state->{$state->{'raw'}}--;
+                    if ($state->{$state->{'raw'}})
+                    {
+                        add_prev ($text, $stack, $remaining.$end_text);
+                        last;
+                    }
+                }
                 check_bad_end_argument ($state->{'raw'}, $cline, $line_nr);
-                print STDERR "# end raw $state->{'raw'}\n" if ($T2H_DEBUG & 
$DEBUG_FORMATS);
-                add_prev ($text, $stack, $1);
+                add_prev ($text, $stack, $remaining);
                 my $style = pop @$stack;
                 if ($style->{'text'} !~ /^\s*$/)
                 {
@@ -12878,7 +12993,7 @@
             if ($state->{'keep_texi'})
             {
                 # We treat specially formats accepting {} on command line
-                if ($macro eq 'multitable' or 
defined($Texi2HTML::Config::def_map{$macro}) or defined($sec2level{$macro}))
+                if ($macro eq 'multitable' or 
defined($Texi2HTML::Config::def_map{$macro}) or defined($sec2level{$macro}) or 
$macro eq 'macro')
                 {
                     add_prev($text, $stack, "address@hidden" . $cline);
                     $cline = '';
@@ -12898,6 +13013,7 @@
                 if ($Texi2HTML::Config::texi_formats_map{$macro} and 
$Texi2HTML::Config::texi_formats_map{$macro} eq 'raw')
                 {
                     $state->{'raw'} = $macro;
+                    $state->{$macro}++ if ($macro eq 'macro');
                     push (@$stack, {'style' => $macro, 'text' => ''});
                 }
                 next;
@@ -12916,7 +13032,8 @@
                 }
                 $state->{'raw'} = $macro;
                 push (@$stack, {'style' => $macro, 'text' => ''});
-                return if ($cline =~ /^\s*$/);
+                $state->{$macro}++ if ($macro eq 'macro');
+                return if ($cline =~ /^\s*$/ or ($macro eq 'macro'));
                 next;
             }
             my $simple_macro = 1;
@@ -13886,7 +14003,7 @@
     }
     elsif ($pass == 2)
     {
-         echo_warn ("Unknown command address@hidden' (left as is)", $line_nr);
+         echo_warn ("Unknown command address@hidden'", $line_nr);
          add_prev ($text, $stack, do_text("address@hidden"));
          return $line;
     }
@@ -13974,7 +14091,8 @@
 
     if ($state->{'macro'})
     {
-       end_macro($state, '@end macro', '');
+       my ($no_remaining, $result) = end_macro($state, '@end macro', "\n");
+       add_prev ($text, $stack, $result) if (defined($result));
        echo_warn ("closing macro", $line_nr); 
     }
     elsif ($state->{'macro_name'})
@@ -15179,12 +15297,13 @@
       dump_texi($doc_lines, 'first', $doc_numbers);
       if (defined($Texi2HTML::Config::MACRO_EXPAND and 
$Texi2HTML::Config::DUMP_TEXI))
       {
-          unshift (@$doc_lines, @$first_texi_lines);
-          push (@$doc_lines, "address@hidden");
-          dump_texi($doc_lines, '', undef, $Texi2HTML::Config::MACRO_EXPAND . 
".first");
+          my @all_doc_lines = (@$first_texi_lines, @$doc_lines);
+          #push (@$doc_lines, "address@hidden");
+          dump_texi(address@hidden, '', undef, 
$Texi2HTML::Config::MACRO_EXPAND . ".first");
       }
    }
-   next if ($Texi2HTML::Config::DUMP_TEXI or 
defined($Texi2HTML::Config::MACRO_EXPAND));
+   # makeinfo also expands the format normally
+   next if ($Texi2HTML::Config::DUMP_TEXI);# or 
defined($Texi2HTML::Config::MACRO_EXPAND));
 
    foreach my $style (keys(%special_commands))
    {

Index: formats/html.init
===================================================================
RCS file: /cvsroot/texi2html/texi2html/formats/html.init,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- formats/html.init   6 Jul 2009 21:59:18 -0000       1.7
+++ formats/html.init   2 Aug 2009 14:12:11 -0000       1.8
@@ -6,7 +6,7 @@
 # A copy of this file is pasted into the beginning of texi2html by
 # running './configure'.
 #
-# $Id: html.init,v 1.7 2009/07/06 21:59:18 pertusus Exp $
+# $Id: html.init,v 1.8 2009/08/02 14:12:11 pertusus Exp $
 
 use strict;
 
@@ -1027,7 +1027,7 @@
 {
     my $fh = shift;
     my $longtitle = "$Texi2HTML::THISDOC{'fulltitle_simple_format'}";
-    $longtitle .= ": $Texi2HTML::SIMPLE_TEXT{'This'}" if (defined 
($Texi2HTML::SIMPLE_TEXT{'This'}) and ($Texi2HTML::SIMPLE_TEXT{'This'} !~ 
/^\s*$/) and get_conf('SPLIT'));
+    $longtitle .= ": $Texi2HTML::SIMPLE_TEXT{'This'}" if (defined 
($Texi2HTML::SIMPLE_TEXT{'This'}) and ($Texi2HTML::SIMPLE_TEXT{'This'} !~ 
/^\s*$/) and get_conf('SPLIT') and 
($Texi2HTML::THISDOC{'fulltitle_simple_format'} ne 
$Texi2HTML::SIMPLE_TEXT{'This'}));
     my $description = $Texi2HTML::THISDOC{'DOCUMENT_DESCRIPTION'};
     $description = $longtitle if (!defined($description));
     $description = "<meta name=\"description\" content=\"$description\">" if

Index: formats/info.init
===================================================================
RCS file: /cvsroot/texi2html/texi2html/formats/info.init,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- formats/info.init   31 Jul 2009 15:56:28 -0000      1.14
+++ formats/info.init   2 Aug 2009 14:12:11 -0000       1.15
@@ -1124,7 +1124,15 @@
                       $text_added .= $pending;
                   }
               }
-              if ($content->{'command'} eq 'anchor' or ($content->{'command'} 
eq 'float' and $content->{'anchor_reference'}))
+              if ($content->{'command'} eq 'strong')
+              {
+                  my ($current_next, $index_next, $close_next, $text_next, 
$command_next) = info_default_next ($current, $index, $close);
+                  if (defined($text_next) and $text_next =~ /^Note\b/i)
+                  {
+                     main::echo_warn("address@hidden produces a spurious 
cross-reference in Info; reword to avoid that.", $content->{'line_nr'});
+                  }
+              }
+              elsif ($content->{'command'} eq 'anchor' or 
($content->{'command'} eq 'float' and $content->{'anchor_reference'}))
               {
                   #print STDERR "anchor: offset_in_file 
$info_state->{'offset_in_file'}, line_count $info_state->{'line_count'}, 
line_char_counter $line_char_counter pending_added_length 
$pending_added_length\n";
                   $content->{'anchor_reference'}->{'info_offset'} = $length + 
$info_state->{'offset_in_file'} + $pending_added_length;
@@ -1246,7 +1254,6 @@
               }
               elsif ($content->{'command'} eq 'noindent')
               {
-
                   $info_state->{'indent_para'} = 0;
               }
               elsif ($content->{'command'} eq 'sp')
@@ -1275,6 +1282,19 @@
                      }
                   }
               }
+              elsif ($content->{'command'} eq 'xref')
+              { # warn if there is no punctuation following
+                  my ($current_next, $index_next, $close_next, $text_next, 
$command_next) = info_default_next ($current, $index, $close);
+                  if (!defined($text_next) or $text_next !~ /^./)
+                  {
+                      main::echo_warn("`.' or `,' must follow address@hidden", 
$Texi2HTML::THISDOC{'line_nr'});
+                  }
+                  elsif ($text_next !~ /^[\.,]/)
+                  {
+                      my $char = substr($text_next, 0, 1);
+                      main::echo_warn("`.' or `,' must follow address@hidden, 
not $char.", $Texi2HTML::THISDOC{'line_nr'});
+                  }
+              }
               elsif ($content->{'definition_line'})
               {
                   
@@ -1779,6 +1799,7 @@
    #return if $no_close;
    $command_entries->{'begin'} = $begin;
    $command_entries->{'end'} = $end;
+   $command_entries->{'line_nr'} = $Texi2HTML::THISDOC{'line_nr'};
    foreach my $key (keys(%$command_entries))
    {
       $info_state->{'current'}->{$key} = $command_entries->{$key} 
@@ -1813,6 +1834,7 @@
    $text_entries->{'text'} = $text if (defined($text));
    $text_entries->{'command'} = $command if (defined($command));
    $text_entries->{'parent'} = $info_state->{'current'};
+   $text_entries->{'line_nr'} = $Texi2HTML::THISDOC{'line_nr'};
    push @{$info_state->{'current'}->{'content'}}, $text_entries;
    return info_default_output($info_state)
      if (!defined($info_state->{'current'}->{'command'}));
@@ -2303,6 +2325,7 @@
     my $in_special_region = shift;
     return '' if ($in_special_region);
     #print STDERR "Storing anchor $anchor_reference->{'text'}\n";
+    main::echo_warn("anchor outside of any node, it won't be registered", 
$Texi2HTML::THISDOC{'line_nr'}) if (!defined($info_default_current_node));
    return info_default_store_text(undef,undef,'anchor',{'anchor_reference' => 
$anchor_reference});
 }
 
@@ -2333,7 +2356,11 @@
    my $state = $Texi2HTML::THISDOC{'state'};
    my $info_state = info_default_get_state ($state);
    my $indirect = 0;
-   return unless (defined ($info_state->{'pending_tags'}));
+   if (!defined ($info_state->{'pending_tags'}))
+   { # i18n
+      warn "Document without nodes.\n";
+      return;
+   }
    $indirect = 1 if ($info_default_out_file_nr > 1);
    if ($indirect)
    {
@@ -2361,12 +2388,18 @@
    {
        print $fh "(Indirect)\n";
    }
+   my $Top_seen;
    foreach my $element (@{$info_state->{'pending_tags'}})
    {
       my $prefix;
       $prefix = 'Node' if ($element->{'node'});
       $prefix = 'Ref' if ($element->{'anchor'} or $element->{'float'});
       print $fh "$prefix: $element->{'text'}\x{7F}$element->{'info_offset'}\n";
+      $Top_seen = 1 if ($element->{'text'} =~ /^top$/i);
+   }
+   if (!$Top_seen)
+   {# i18n
+      warn "Document without Top node.\n";
    }
    print $fh "\x{1F}\nEnd Tag Table\n";
    if (defined($Texi2HTML::THISDOC{'DOCUMENT_ENCODING'}))
@@ -2600,6 +2633,7 @@
     my ($begin, $end);
     if ($name eq 'menu')
     {
+        main::echo_warn("address@hidden before first node", 
$Texi2HTML::THISDOC{'line_nr'}) if (!defined($info_default_current_node));
         $begin = "* Menu:\n\n";
     }
     elsif ($name eq 'direntry')
@@ -2793,6 +2827,8 @@
           {
               $text .= $img_txt;
           }
+          # remove last end of line
+          chomp ($text);
           $text .= ']' if ($in_paragraph or $preformatted);
           close(TXT);
        }
@@ -2892,6 +2928,14 @@
 
     return '' if ($index_entry_ref->{'hidden'});
     $entry = main::substitute_line($index_entry_ref->{'texi'}, "index entry in 
address@hidden");
+    #if 
(!defined($info_default_index_entries_counts{$index_entry_ref->{'index_name'}}->{$index_entry_ref->{'texi'}}))
+    #{
+    #   
$info_default_index_entries_counts{$index_entry_ref->{'index_name'}}->{$index_entry_ref->{'texi'}}
 = 0;
+    #}
+    #else
+    #{
+    #   
$info_default_index_entries_counts{$index_entry_ref->{'index_name'}}->{$index_entry_ref->{'texi'}}++;
+    #}
 
     my $result = "* $entry: ";
     if (length($result) < $info_default_index_length_to_node)
@@ -2971,7 +3015,14 @@
     my $footnote_text = "($info_default_footnote_index)";
     my $node_name;
     $node_name = '';
-    $node_name = $info_default_current_node->{'text'} if 
defined($info_default_current_node);
+    if (defined($info_default_current_node))
+    {
+        $node_name = $info_default_current_node->{'text'};
+    }
+    else
+    { # i18n
+        main::echo_error("Footnote defined without parent node", 
$Texi2HTML::THISDOC{'line_nr'});
+    }
     if (get_conf('footnotestyle') eq 'separate')
     {
         $footnote_text .=  ' (' . info_default_normal_reference('pxref', 
["${node_name}-Footnote-${info_default_footnote_index}"]) . ')';
@@ -3308,6 +3359,7 @@
     if (exists($float->{'id'}))
     {
         $additional_arguments->{'anchor_reference'} = $float;
+        main::echo_warn("float reference outside of any node, it won't be 
registered", $Texi2HTML::THISDOC{'line_nr'}) if 
(!defined($info_default_current_node));
     }
     my $caption_text = '';
 

Index: documentlanguages.pl
===================================================================
RCS file: documentlanguages.pl
diff -N documentlanguages.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ documentlanguages.pl        2 Aug 2009 14:12:10 -0000       1.1
@@ -0,0 +1,7640 @@
+%language_codes = (
+'aa' => 1,
+'ab' => 1,
+'ae' => 1,
+'af' => 1,
+'ak' => 1,
+'am' => 1,
+'an' => 1,
+'ar' => 1,
+'as' => 1,
+'av' => 1,
+'ay' => 1,
+'az' => 1,
+'ba' => 1,
+'be' => 1,
+'bg' => 1,
+'bh' => 1,
+'bi' => 1,
+'bm' => 1,
+'bn' => 1,
+'bo' => 1,
+'br' => 1,
+'ca' => 1,
+'ce' => 1,
+'ch' => 1,
+'co' => 1,
+'cr' => 1,
+'cs' => 1,
+'cu' => 1,
+'cv' => 1,
+'cy' => 1,
+'da' => 1,
+'de' => 1,
+'dv' => 1,
+'dz' => 1,
+'ee' => 1,
+'el' => 1,
+'en' => 1,
+'eo' => 1,
+'es' => 1,
+'et' => 1,
+'eu' => 1,
+'fa' => 1,
+'ff' => 1,
+'fi' => 1,
+'fj' => 1,
+'fo' => 1,
+'fr' => 1,
+'fy' => 1,
+'ga' => 1,
+'gd' => 1,
+'gl' => 1,
+'gn' => 1,
+'gu' => 1,
+'gv' => 1,
+'ha' => 1,
+'he' => 1,
+'hi' => 1,
+'ho' => 1,
+'ht' => 1,
+'hu' => 1,
+'hy' => 1,
+'hz' => 1,
+'ia' => 1,
+'ie' => 1,
+'ig' => 1,
+'ii' => 1,
+'ik' => 1,
+'io' => 1,
+'is' => 1,
+'it' => 1,
+'iu' => 1,
+'iw' => 1,
+'ja' => 1,
+'ji' => 1,
+'jv' => 1,
+'jw' => 1,
+'ka' => 1,
+'kg' => 1,
+'ki' => 1,
+'kj' => 1,
+'kk' => 1,
+'kl' => 1,
+'km' => 1,
+'kn' => 1,
+'ko' => 1,
+'kr' => 1,
+'ks' => 1,
+'ku' => 1,
+'kv' => 1,
+'kw' => 1,
+'ky' => 1,
+'la' => 1,
+'lb' => 1,
+'lg' => 1,
+'li' => 1,
+'ln' => 1,
+'lo' => 1,
+'lt' => 1,
+'lu' => 1,
+'lv' => 1,
+'mg' => 1,
+'mh' => 1,
+'mi' => 1,
+'mk' => 1,
+'ml' => 1,
+'mn' => 1,
+'mo' => 1,
+'mr' => 1,
+'ms' => 1,
+'mt' => 1,
+'my' => 1,
+'na' => 1,
+'nd' => 1,
+'ne' => 1,
+'ng' => 1,
+'nl' => 1,
+'no' => 1,
+'nr' => 1,
+'nv' => 1,
+'ny' => 1,
+'oc' => 1,
+'oj' => 1,
+'om' => 1,
+'or' => 1,
+'os' => 1,
+'pa' => 1,
+'pi' => 1,
+'pl' => 1,
+'ps' => 1,
+'pt' => 1,
+'qu' => 1,
+'rm' => 1,
+'rn' => 1,
+'ro' => 1,
+'ru' => 1,
+'rw' => 1,
+'sa' => 1,
+'sc' => 1,
+'sd' => 1,
+'se' => 1,
+'sg' => 1,
+'sh' => 1,
+'si' => 1,
+'sk' => 1,
+'sl' => 1,
+'sm' => 1,
+'sn' => 1,
+'so' => 1,
+'sq' => 1,
+'ss' => 1,
+'st' => 1,
+'su' => 1,
+'sv' => 1,
+'sw' => 1,
+'ta' => 1,
+'te' => 1,
+'tg' => 1,
+'th' => 1,
+'ti' => 1,
+'tk' => 1,
+'tl' => 1,
+'tn' => 1,
+'to' => 1,
+'tr' => 1,
+'ts' => 1,
+'tt' => 1,
+'ty' => 1,
+'ug' => 1,
+'uk' => 1,
+'ur' => 1,
+'uz' => 1,
+'ve' => 1,
+'vi' => 1,
+'vo' => 1,
+'wa' => 1,
+'wo' => 1,
+'xh' => 1,
+'yi' => 1,
+'yo' => 1,
+'za' => 1,
+'zh' => 1,
+'zu' => 1,
+'aaa' => 1,
+'aab' => 1,
+'aac' => 1,
+'aad' => 1,
+'aaf' => 1,
+'aag' => 1,
+'aah' => 1,
+'aai' => 1,
+'aak' => 1,
+'aal' => 1,
+'aam' => 1,
+'aan' => 1,
+'aap' => 1,
+'aaq' => 1,
+'aas' => 1,
+'aau' => 1,
+'aav' => 1,
+'aaw' => 1,
+'aax' => 1,
+'aaz' => 1,
+'aba' => 1,
+'abb' => 1,
+'abc' => 1,
+'abd' => 1,
+'abe' => 1,
+'abf' => 1,
+'abg' => 1,
+'abi' => 1,
+'abj' => 1,
+'abl' => 1,
+'abm' => 1,
+'abn' => 1,
+'abo' => 1,
+'abp' => 1,
+'abq' => 1,
+'abr' => 1,
+'abs' => 1,
+'abt' => 1,
+'abu' => 1,
+'abw' => 1,
+'abx' => 1,
+'aby' => 1,
+'abz' => 1,
+'aca' => 1,
+'acb' => 1,
+'acd' => 1,
+'ace' => 1,
+'acf' => 1,
+'ach' => 1,
+'aci' => 1,
+'ack' => 1,
+'acl' => 1,
+'acn' => 1,
+'acp' => 1,
+'acr' => 1,
+'acs' => 1,
+'act' => 1,
+'acu' => 1,
+'acv' => 1,
+'acz' => 1,
+'ada' => 1,
+'adb' => 1,
+'add' => 1,
+'ade' => 1,
+'adg' => 1,
+'adh' => 1,
+'adi' => 1,
+'adj' => 1,
+'adl' => 1,
+'adn' => 1,
+'ado' => 1,
+'adp' => 1,
+'adq' => 1,
+'adr' => 1,
+'ads' => 1,
+'adt' => 1,
+'adu' => 1,
+'adw' => 1,
+'adx' => 1,
+'ady' => 1,
+'adz' => 1,
+'aea' => 1,
+'aed' => 1,
+'aee' => 1,
+'aek' => 1,
+'ael' => 1,
+'aem' => 1,
+'aen' => 1,
+'aeq' => 1,
+'aer' => 1,
+'aes' => 1,
+'aeu' => 1,
+'aew' => 1,
+'aey' => 1,
+'aez' => 1,
+'afa' => 1,
+'afd' => 1,
+'afe' => 1,
+'afg' => 1,
+'afh' => 1,
+'afi' => 1,
+'afk' => 1,
+'afn' => 1,
+'afo' => 1,
+'afp' => 1,
+'afs' => 1,
+'aft' => 1,
+'afu' => 1,
+'afz' => 1,
+'aga' => 1,
+'agb' => 1,
+'agc' => 1,
+'agd' => 1,
+'age' => 1,
+'agf' => 1,
+'agg' => 1,
+'agh' => 1,
+'agi' => 1,
+'agj' => 1,
+'agk' => 1,
+'agl' => 1,
+'agm' => 1,
+'agn' => 1,
+'ago' => 1,
+'agp' => 1,
+'agq' => 1,
+'agr' => 1,
+'ags' => 1,
+'agt' => 1,
+'agu' => 1,
+'agv' => 1,
+'agw' => 1,
+'agx' => 1,
+'agy' => 1,
+'agz' => 1,
+'aha' => 1,
+'ahb' => 1,
+'ahg' => 1,
+'ahh' => 1,
+'ahi' => 1,
+'ahk' => 1,
+'ahl' => 1,
+'ahm' => 1,
+'ahn' => 1,
+'aho' => 1,
+'ahp' => 1,
+'ahr' => 1,
+'ahs' => 1,
+'aht' => 1,
+'aia' => 1,
+'aib' => 1,
+'aic' => 1,
+'aid' => 1,
+'aie' => 1,
+'aif' => 1,
+'aig' => 1,
+'aih' => 1,
+'aij' => 1,
+'aik' => 1,
+'ail' => 1,
+'aim' => 1,
+'ain' => 1,
+'aio' => 1,
+'aip' => 1,
+'aiq' => 1,
+'air' => 1,
+'ais' => 1,
+'ait' => 1,
+'aiw' => 1,
+'aix' => 1,
+'aiy' => 1,
+'aja' => 1,
+'ajg' => 1,
+'aji' => 1,
+'ajw' => 1,
+'ajz' => 1,
+'akb' => 1,
+'akc' => 1,
+'akd' => 1,
+'ake' => 1,
+'akf' => 1,
+'akg' => 1,
+'akh' => 1,
+'aki' => 1,
+'akj' => 1,
+'akk' => 1,
+'akl' => 1,
+'akm' => 1,
+'ako' => 1,
+'akp' => 1,
+'akq' => 1,
+'akr' => 1,
+'aks' => 1,
+'akt' => 1,
+'aku' => 1,
+'akv' => 1,
+'akw' => 1,
+'akx' => 1,
+'aky' => 1,
+'akz' => 1,
+'ala' => 1,
+'alc' => 1,
+'ald' => 1,
+'ale' => 1,
+'alf' => 1,
+'alg' => 1,
+'alh' => 1,
+'ali' => 1,
+'alj' => 1,
+'alk' => 1,
+'all' => 1,
+'alm' => 1,
+'alo' => 1,
+'alp' => 1,
+'alq' => 1,
+'alr' => 1,
+'alt' => 1,
+'alu' => 1,
+'alv' => 1,
+'alw' => 1,
+'alx' => 1,
+'aly' => 1,
+'alz' => 1,
+'ama' => 1,
+'amb' => 1,
+'amc' => 1,
+'ame' => 1,
+'amf' => 1,
+'amg' => 1,
+'ami' => 1,
+'amj' => 1,
+'amk' => 1,
+'aml' => 1,
+'amm' => 1,
+'amn' => 1,
+'amo' => 1,
+'amp' => 1,
+'amq' => 1,
+'amr' => 1,
+'ams' => 1,
+'amt' => 1,
+'amu' => 1,
+'amv' => 1,
+'amw' => 1,
+'amx' => 1,
+'amy' => 1,
+'amz' => 1,
+'ana' => 1,
+'anb' => 1,
+'anc' => 1,
+'and' => 1,
+'ane' => 1,
+'anf' => 1,
+'ang' => 1,
+'anh' => 1,
+'ani' => 1,
+'anj' => 1,
+'ank' => 1,
+'anl' => 1,
+'anm' => 1,
+'ann' => 1,
+'ano' => 1,
+'anp' => 1,
+'anq' => 1,
+'anr' => 1,
+'ans' => 1,
+'ant' => 1,
+'anu' => 1,
+'anv' => 1,
+'anw' => 1,
+'anx' => 1,
+'any' => 1,
+'anz' => 1,
+'aoa' => 1,
+'aob' => 1,
+'aoc' => 1,
+'aod' => 1,
+'aoe' => 1,
+'aof' => 1,
+'aog' => 1,
+'aoh' => 1,
+'aoi' => 1,
+'aoj' => 1,
+'aok' => 1,
+'aol' => 1,
+'aom' => 1,
+'aon' => 1,
+'aor' => 1,
+'aos' => 1,
+'aot' => 1,
+'aox' => 1,
+'aoz' => 1,
+'apa' => 1,
+'apb' => 1,
+'ape' => 1,
+'apg' => 1,
+'aph' => 1,
+'api' => 1,
+'apj' => 1,
+'apk' => 1,
+'apl' => 1,
+'apm' => 1,
+'apn' => 1,
+'apo' => 1,
+'app' => 1,
+'apq' => 1,
+'apr' => 1,
+'aps' => 1,
+'apt' => 1,
+'apu' => 1,
+'apv' => 1,
+'apw' => 1,
+'apx' => 1,
+'apy' => 1,
+'apz' => 1,
+'aqa' => 1,
+'aqc' => 1,
+'aqg' => 1,
+'aql' => 1,
+'aqm' => 1,
+'aqn' => 1,
+'aqp' => 1,
+'aqr' => 1,
+'arc' => 1,
+'ard' => 1,
+'are' => 1,
+'arh' => 1,
+'ari' => 1,
+'arj' => 1,
+'ark' => 1,
+'arl' => 1,
+'arn' => 1,
+'aro' => 1,
+'arp' => 1,
+'arr' => 1,
+'art' => 1,
+'aru' => 1,
+'arv' => 1,
+'arw' => 1,
+'arx' => 1,
+'asa' => 1,
+'asb' => 1,
+'asc' => 1,
+'asd' => 1,
+'ase' => 1,
+'asf' => 1,
+'asg' => 1,
+'ash' => 1,
+'asi' => 1,
+'asj' => 1,
+'ask' => 1,
+'asl' => 1,
+'asn' => 1,
+'aso' => 1,
+'asp' => 1,
+'asq' => 1,
+'asr' => 1,
+'ass' => 1,
+'ast' => 1,
+'asu' => 1,
+'asv' => 1,
+'asw' => 1,
+'asx' => 1,
+'asy' => 1,
+'asz' => 1,
+'ata' => 1,
+'atb' => 1,
+'atc' => 1,
+'atd' => 1,
+'ate' => 1,
+'atg' => 1,
+'ath' => 1,
+'ati' => 1,
+'atj' => 1,
+'atk' => 1,
+'atl' => 1,
+'atm' => 1,
+'atn' => 1,
+'ato' => 1,
+'atp' => 1,
+'atq' => 1,
+'atr' => 1,
+'ats' => 1,
+'att' => 1,
+'atu' => 1,
+'atv' => 1,
+'atw' => 1,
+'atx' => 1,
+'aty' => 1,
+'atz' => 1,
+'aua' => 1,
+'aub' => 1,
+'auc' => 1,
+'aud' => 1,
+'aue' => 1,
+'auf' => 1,
+'aug' => 1,
+'auh' => 1,
+'aui' => 1,
+'auj' => 1,
+'auk' => 1,
+'aul' => 1,
+'aum' => 1,
+'aun' => 1,
+'auo' => 1,
+'aup' => 1,
+'auq' => 1,
+'aur' => 1,
+'aus' => 1,
+'aut' => 1,
+'auu' => 1,
+'auw' => 1,
+'aux' => 1,
+'auy' => 1,
+'avb' => 1,
+'avd' => 1,
+'avi' => 1,
+'avk' => 1,
+'avn' => 1,
+'avo' => 1,
+'avs' => 1,
+'avt' => 1,
+'avu' => 1,
+'avv' => 1,
+'awa' => 1,
+'awb' => 1,
+'awc' => 1,
+'awd' => 1,
+'awe' => 1,
+'awh' => 1,
+'awi' => 1,
+'awk' => 1,
+'awm' => 1,
+'awn' => 1,
+'awo' => 1,
+'awr' => 1,
+'aws' => 1,
+'awt' => 1,
+'awu' => 1,
+'awv' => 1,
+'aww' => 1,
+'awx' => 1,
+'awy' => 1,
+'axb' => 1,
+'axg' => 1,
+'axk' => 1,
+'axm' => 1,
+'axx' => 1,
+'aya' => 1,
+'ayb' => 1,
+'ayd' => 1,
+'aye' => 1,
+'ayg' => 1,
+'ayi' => 1,
+'ayk' => 1,
+'ayo' => 1,
+'ayq' => 1,
+'ays' => 1,
+'ayt' => 1,
+'ayu' => 1,
+'ayx' => 1,
+'ayy' => 1,
+'ayz' => 1,
+'aza' => 1,
+'azc' => 1,
+'azg' => 1,
+'azm' => 1,
+'azo' => 1,
+'azt' => 1,
+'azz' => 1,
+'baa' => 1,
+'bab' => 1,
+'bac' => 1,
+'bad' => 1,
+'bae' => 1,
+'baf' => 1,
+'bag' => 1,
+'bah' => 1,
+'bai' => 1,
+'baj' => 1,
+'bal' => 1,
+'ban' => 1,
+'bao' => 1,
+'bap' => 1,
+'bar' => 1,
+'bas' => 1,
+'bat' => 1,
+'bau' => 1,
+'bav' => 1,
+'baw' => 1,
+'bax' => 1,
+'bay' => 1,
+'baz' => 1,
+'bba' => 1,
+'bbb' => 1,
+'bbc' => 1,
+'bbd' => 1,
+'bbe' => 1,
+'bbf' => 1,
+'bbg' => 1,
+'bbh' => 1,
+'bbi' => 1,
+'bbj' => 1,
+'bbk' => 1,
+'bbl' => 1,
+'bbm' => 1,
+'bbn' => 1,
+'bbo' => 1,
+'bbp' => 1,
+'bbq' => 1,
+'bbr' => 1,
+'bbs' => 1,
+'bbt' => 1,
+'bbu' => 1,
+'bbv' => 1,
+'bbw' => 1,
+'bbx' => 1,
+'bby' => 1,
+'bca' => 1,
+'bcb' => 1,
+'bcd' => 1,
+'bce' => 1,
+'bcf' => 1,
+'bcg' => 1,
+'bch' => 1,
+'bci' => 1,
+'bcj' => 1,
+'bck' => 1,
+'bcm' => 1,
+'bcn' => 1,
+'bco' => 1,
+'bcp' => 1,
+'bcq' => 1,
+'bcr' => 1,
+'bcs' => 1,
+'bct' => 1,
+'bcu' => 1,
+'bcv' => 1,
+'bcw' => 1,
+'bcy' => 1,
+'bcz' => 1,
+'bda' => 1,
+'bdb' => 1,
+'bdc' => 1,
+'bdd' => 1,
+'bde' => 1,
+'bdg' => 1,
+'bdh' => 1,
+'bdi' => 1,
+'bdj' => 1,
+'bdk' => 1,
+'bdl' => 1,
+'bdm' => 1,
+'bdn' => 1,
+'bdo' => 1,
+'bdp' => 1,
+'bdq' => 1,
+'bdr' => 1,
+'bds' => 1,
+'bdu' => 1,
+'bdv' => 1,
+'bdw' => 1,
+'bdx' => 1,
+'bdy' => 1,
+'bdz' => 1,
+'bea' => 1,
+'beb' => 1,
+'bec' => 1,
+'bed' => 1,
+'bee' => 1,
+'bef' => 1,
+'beg' => 1,
+'beh' => 1,
+'bei' => 1,
+'bej' => 1,
+'bek' => 1,
+'bem' => 1,
+'beo' => 1,
+'bep' => 1,
+'beq' => 1,
+'ber' => 1,
+'bes' => 1,
+'bet' => 1,
+'beu' => 1,
+'bev' => 1,
+'bew' => 1,
+'bex' => 1,
+'bey' => 1,
+'bez' => 1,
+'bfa' => 1,
+'bfb' => 1,
+'bfc' => 1,
+'bfd' => 1,
+'bfe' => 1,
+'bff' => 1,
+'bfg' => 1,
+'bfh' => 1,
+'bfi' => 1,
+'bfj' => 1,
+'bfk' => 1,
+'bfl' => 1,
+'bfm' => 1,
+'bfn' => 1,
+'bfo' => 1,
+'bfp' => 1,
+'bfq' => 1,
+'bfr' => 1,
+'bfs' => 1,
+'bft' => 1,
+'bfu' => 1,
+'bfw' => 1,
+'bfy' => 1,
+'bfz' => 1,
+'bga' => 1,
+'bgb' => 1,
+'bgc' => 1,
+'bgd' => 1,
+'bge' => 1,
+'bgf' => 1,
+'bgg' => 1,
+'bgi' => 1,
+'bgj' => 1,
+'bgk' => 1,
+'bgl' => 1,
+'bgm' => 1,
+'bgo' => 1,
+'bgr' => 1,
+'bgs' => 1,
+'bgt' => 1,
+'bgu' => 1,
+'bgv' => 1,
+'bgw' => 1,
+'bgx' => 1,
+'bgy' => 1,
+'bgz' => 1,
+'bha' => 1,
+'bhb' => 1,
+'bhc' => 1,
+'bhd' => 1,
+'bhe' => 1,
+'bhf' => 1,
+'bhg' => 1,
+'bhh' => 1,
+'bhi' => 1,
+'bhj' => 1,
+'bhl' => 1,
+'bhm' => 1,
+'bhn' => 1,
+'bho' => 1,
+'bhp' => 1,
+'bhq' => 1,
+'bhs' => 1,
+'bht' => 1,
+'bhu' => 1,
+'bhv' => 1,
+'bhw' => 1,
+'bhx' => 1,
+'bhy' => 1,
+'bhz' => 1,
+'bia' => 1,
+'bib' => 1,
+'bic' => 1,
+'bid' => 1,
+'bie' => 1,
+'bif' => 1,
+'big' => 1,
+'bij' => 1,
+'bik' => 1,
+'bil' => 1,
+'bim' => 1,
+'bin' => 1,
+'bio' => 1,
+'bip' => 1,
+'biq' => 1,
+'bir' => 1,
+'bit' => 1,
+'biu' => 1,
+'biv' => 1,
+'biw' => 1,
+'bix' => 1,
+'biy' => 1,
+'biz' => 1,
+'bja' => 1,
+'bjb' => 1,
+'bjc' => 1,
+'bjd' => 1,
+'bje' => 1,
+'bjf' => 1,
+'bjg' => 1,
+'bjh' => 1,
+'bji' => 1,
+'bjj' => 1,
+'bjk' => 1,
+'bjl' => 1,
+'bjm' => 1,
+'bjo' => 1,
+'bjr' => 1,
+'bjs' => 1,
+'bjt' => 1,
+'bju' => 1,
+'bjv' => 1,
+'bjw' => 1,
+'bjx' => 1,
+'bjy' => 1,
+'bjz' => 1,
+'bka' => 1,
+'bkb' => 1,
+'bkc' => 1,
+'bkd' => 1,
+'bkf' => 1,
+'bkg' => 1,
+'bkh' => 1,
+'bki' => 1,
+'bkj' => 1,
+'bkk' => 1,
+'bkl' => 1,
+'bkm' => 1,
+'bkn' => 1,
+'bko' => 1,
+'bkp' => 1,
+'bkq' => 1,
+'bkr' => 1,
+'bks' => 1,
+'bkt' => 1,
+'bku' => 1,
+'bkv' => 1,
+'bkw' => 1,
+'bkx' => 1,
+'bky' => 1,
+'bkz' => 1,
+'bla' => 1,
+'blb' => 1,
+'blc' => 1,
+'bld' => 1,
+'ble' => 1,
+'blf' => 1,
+'blg' => 1,
+'blh' => 1,
+'bli' => 1,
+'blj' => 1,
+'blk' => 1,
+'bll' => 1,
+'blm' => 1,
+'blo' => 1,
+'blp' => 1,
+'blq' => 1,
+'blr' => 1,
+'bls' => 1,
+'blt' => 1,
+'blv' => 1,
+'blw' => 1,
+'blx' => 1,
+'bly' => 1,
+'blz' => 1,
+'bma' => 1,
+'bmb' => 1,
+'bmc' => 1,
+'bmd' => 1,
+'bme' => 1,
+'bmf' => 1,
+'bmg' => 1,
+'bmh' => 1,
+'bmi' => 1,
+'bmj' => 1,
+'bmk' => 1,
+'bml' => 1,
+'bmn' => 1,
+'bmo' => 1,
+'bmp' => 1,
+'bmq' => 1,
+'bmr' => 1,
+'bms' => 1,
+'bmt' => 1,
+'bmu' => 1,
+'bmv' => 1,
+'bmw' => 1,
+'bmx' => 1,
+'bmy' => 1,
+'bmz' => 1,
+'bna' => 1,
+'bnb' => 1,
+'bnc' => 1,
+'bnd' => 1,
+'bne' => 1,
+'bnf' => 1,
+'bng' => 1,
+'bni' => 1,
+'bnj' => 1,
+'bnk' => 1,
+'bnl' => 1,
+'bnm' => 1,
+'bnn' => 1,
+'bno' => 1,
+'bnp' => 1,
+'bnq' => 1,
+'bnr' => 1,
+'bns' => 1,
+'bnt' => 1,
+'bnu' => 1,
+'bnv' => 1,
+'bnw' => 1,
+'bnx' => 1,
+'bny' => 1,
+'bnz' => 1,
+'boa' => 1,
+'bob' => 1,
+'boe' => 1,
+'bof' => 1,
+'bog' => 1,
+'boh' => 1,
+'boi' => 1,
+'boj' => 1,
+'bok' => 1,
+'bol' => 1,
+'bom' => 1,
+'bon' => 1,
+'boo' => 1,
+'bop' => 1,
+'boq' => 1,
+'bor' => 1,
+'bot' => 1,
+'bou' => 1,
+'bov' => 1,
+'bow' => 1,
+'box' => 1,
+'boy' => 1,
+'boz' => 1,
+'bpa' => 1,
+'bpb' => 1,
+'bpd' => 1,
+'bpg' => 1,
+'bph' => 1,
+'bpi' => 1,
+'bpj' => 1,
+'bpk' => 1,
+'bpl' => 1,
+'bpm' => 1,
+'bpn' => 1,
+'bpo' => 1,
+'bpp' => 1,
+'bpq' => 1,
+'bpr' => 1,
+'bps' => 1,
+'bpt' => 1,
+'bpu' => 1,
+'bpv' => 1,
+'bpw' => 1,
+'bpx' => 1,
+'bpy' => 1,
+'bpz' => 1,
+'bqa' => 1,
+'bqb' => 1,
+'bqc' => 1,
+'bqd' => 1,
+'bqf' => 1,
+'bqg' => 1,
+'bqh' => 1,
+'bqi' => 1,
+'bqj' => 1,
+'bqk' => 1,
+'bql' => 1,
+'bqm' => 1,
+'bqn' => 1,
+'bqo' => 1,
+'bqp' => 1,
+'bqq' => 1,
+'bqr' => 1,
+'bqs' => 1,
+'bqt' => 1,
+'bqu' => 1,
+'bqv' => 1,
+'bqw' => 1,
+'bqx' => 1,
+'bqy' => 1,
+'bqz' => 1,
+'bra' => 1,
+'brb' => 1,
+'brc' => 1,
+'brd' => 1,
+'brf' => 1,
+'brg' => 1,
+'brh' => 1,
+'bri' => 1,
+'brj' => 1,
+'brk' => 1,
+'brl' => 1,
+'brm' => 1,
+'brn' => 1,
+'bro' => 1,
+'brp' => 1,
+'brq' => 1,
+'brr' => 1,
+'brs' => 1,
+'brt' => 1,
+'bru' => 1,
+'brv' => 1,
+'brw' => 1,
+'brx' => 1,
+'bry' => 1,
+'brz' => 1,
+'bsa' => 1,
+'bsb' => 1,
+'bsc' => 1,
+'bse' => 1,
+'bsf' => 1,
+'bsg' => 1,
+'bsh' => 1,
+'bsi' => 1,
+'bsj' => 1,
+'bsk' => 1,
+'bsl' => 1,
+'bsm' => 1,
+'bsn' => 1,
+'bso' => 1,
+'bsp' => 1,
+'bsq' => 1,
+'bsr' => 1,
+'bss' => 1,
+'bst' => 1,
+'bsu' => 1,
+'bsv' => 1,
+'bsw' => 1,
+'bsx' => 1,
+'bsy' => 1,
+'bta' => 1,
+'btb' => 1,
+'btc' => 1,
+'btd' => 1,
+'bte' => 1,
+'btf' => 1,
+'btg' => 1,
+'bth' => 1,
+'bti' => 1,
+'btk' => 1,
+'btl' => 1,
+'btm' => 1,
+'btn' => 1,
+'btp' => 1,
+'btq' => 1,
+'btr' => 1,
+'bts' => 1,
+'btt' => 1,
+'btu' => 1,
+'btv' => 1,
+'btw' => 1,
+'btx' => 1,
+'bty' => 1,
+'btz' => 1,
+'bua' => 1,
+'bub' => 1,
+'buc' => 1,
+'bud' => 1,
+'bue' => 1,
+'buf' => 1,
+'bug' => 1,
+'buh' => 1,
+'bui' => 1,
+'buj' => 1,
+'buk' => 1,
+'bum' => 1,
+'bun' => 1,
+'buo' => 1,
+'bup' => 1,
+'buq' => 1,
+'bus' => 1,
+'but' => 1,
+'buu' => 1,
+'buv' => 1,
+'buw' => 1,
+'bux' => 1,
+'buy' => 1,
+'buz' => 1,
+'bva' => 1,
+'bvb' => 1,
+'bvc' => 1,
+'bvd' => 1,
+'bvf' => 1,
+'bvg' => 1,
+'bvh' => 1,
+'bvi' => 1,
+'bvj' => 1,
+'bvk' => 1,
+'bvl' => 1,
+'bvm' => 1,
+'bvn' => 1,
+'bvo' => 1,
+'bvq' => 1,
+'bvr' => 1,
+'bvt' => 1,
+'bvv' => 1,
+'bvw' => 1,
+'bvx' => 1,
+'bvz' => 1,
+'bwa' => 1,
+'bwb' => 1,
+'bwc' => 1,
+'bwd' => 1,
+'bwe' => 1,
+'bwf' => 1,
+'bwg' => 1,
+'bwh' => 1,
+'bwi' => 1,
+'bwj' => 1,
+'bwk' => 1,
+'bwl' => 1,
+'bwm' => 1,
+'bwn' => 1,
+'bwo' => 1,
+'bwp' => 1,
+'bwq' => 1,
+'bwr' => 1,
+'bws' => 1,
+'bwt' => 1,
+'bwu' => 1,
+'bww' => 1,
+'bwx' => 1,
+'bwy' => 1,
+'bwz' => 1,
+'bxa' => 1,
+'bxb' => 1,
+'bxc' => 1,
+'bxd' => 1,
+'bxe' => 1,
+'bxf' => 1,
+'bxg' => 1,
+'bxh' => 1,
+'bxi' => 1,
+'bxj' => 1,
+'bxl' => 1,
+'bxn' => 1,
+'bxo' => 1,
+'bxp' => 1,
+'bxq' => 1,
+'bxs' => 1,
+'bxv' => 1,
+'bxw' => 1,
+'bxx' => 1,
+'bxz' => 1,
+'bya' => 1,
+'byb' => 1,
+'byc' => 1,
+'byd' => 1,
+'bye' => 1,
+'byf' => 1,
+'byg' => 1,
+'byh' => 1,
+'byi' => 1,
+'byj' => 1,
+'byk' => 1,
+'byl' => 1,
+'bym' => 1,
+'byn' => 1,
+'byo' => 1,
+'byp' => 1,
+'byq' => 1,
+'byr' => 1,
+'bys' => 1,
+'byt' => 1,
+'byv' => 1,
+'byw' => 1,
+'byx' => 1,
+'byy' => 1,
+'byz' => 1,
+'bza' => 1,
+'bzb' => 1,
+'bzd' => 1,
+'bze' => 1,
+'bzf' => 1,
+'bzg' => 1,
+'bzh' => 1,
+'bzi' => 1,
+'bzj' => 1,
+'bzk' => 1,
+'bzl' => 1,
+'bzm' => 1,
+'bzn' => 1,
+'bzo' => 1,
+'bzp' => 1,
+'bzq' => 1,
+'bzr' => 1,
+'bzs' => 1,
+'bzt' => 1,
+'bzu' => 1,
+'bzv' => 1,
+'bzw' => 1,
+'bzx' => 1,
+'bzy' => 1,
+'bzz' => 1,
+'caa' => 1,
+'cab' => 1,
+'cac' => 1,
+'cad' => 1,
+'cae' => 1,
+'caf' => 1,
+'cag' => 1,
+'cah' => 1,
+'cai' => 1,
+'caj' => 1,
+'cak' => 1,
+'cal' => 1,
+'cam' => 1,
+'can' => 1,
+'cao' => 1,
+'cap' => 1,
+'caq' => 1,
+'car' => 1,
+'cas' => 1,
+'cau' => 1,
+'cav' => 1,
+'caw' => 1,
+'cax' => 1,
+'cay' => 1,
+'caz' => 1,
+'cba' => 1,
+'cbb' => 1,
+'cbc' => 1,
+'cbd' => 1,
+'cbe' => 1,
+'cbg' => 1,
+'cbh' => 1,
+'cbi' => 1,
+'cbj' => 1,
+'cbk' => 1,
+'cbl' => 1,
+'cbn' => 1,
+'cbo' => 1,
+'cbr' => 1,
+'cbs' => 1,
+'cbt' => 1,
+'cbu' => 1,
+'cbv' => 1,
+'cby' => 1,
+'cca' => 1,
+'ccc' => 1,
+'ccd' => 1,
+'cce' => 1,
+'ccg' => 1,
+'cch' => 1,
+'ccj' => 1,
+'ccl' => 1,
+'ccm' => 1,
+'ccn' => 1,
+'cco' => 1,
+'ccp' => 1,
+'ccq' => 1,
+'ccr' => 1,
+'ccs' => 1,
+'cda' => 1,
+'cdc' => 1,
+'cdd' => 1,
+'cde' => 1,
+'cdf' => 1,
+'cdg' => 1,
+'cdh' => 1,
+'cdi' => 1,
+'cdj' => 1,
+'cdm' => 1,
+'cdn' => 1,
+'cdr' => 1,
+'cds' => 1,
+'cdy' => 1,
+'cdz' => 1,
+'cea' => 1,
+'ceb' => 1,
+'ceg' => 1,
+'cel' => 1,
+'cen' => 1,
+'cet' => 1,
+'cfa' => 1,
+'cfd' => 1,
+'cfg' => 1,
+'cfm' => 1,
+'cga' => 1,
+'cgc' => 1,
+'cgg' => 1,
+'cgk' => 1,
+'chb' => 1,
+'chc' => 1,
+'chd' => 1,
+'chf' => 1,
+'chg' => 1,
+'chh' => 1,
+'chj' => 1,
+'chk' => 1,
+'chl' => 1,
+'chm' => 1,
+'chn' => 1,
+'cho' => 1,
+'chp' => 1,
+'chq' => 1,
+'chr' => 1,
+'cht' => 1,
+'chw' => 1,
+'chx' => 1,
+'chy' => 1,
+'chz' => 1,
+'cia' => 1,
+'cib' => 1,
+'cic' => 1,
+'cid' => 1,
+'cie' => 1,
+'cih' => 1,
+'cik' => 1,
+'cim' => 1,
+'cin' => 1,
+'cip' => 1,
+'cir' => 1,
+'ciy' => 1,
+'cja' => 1,
+'cje' => 1,
+'cjh' => 1,
+'cji' => 1,
+'cjk' => 1,
+'cjm' => 1,
+'cjn' => 1,
+'cjo' => 1,
+'cjp' => 1,
+'cjr' => 1,
+'cjs' => 1,
+'cjv' => 1,
+'cka' => 1,
+'ckh' => 1,
+'ckl' => 1,
+'cko' => 1,
+'ckq' => 1,
+'ckr' => 1,
+'cks' => 1,
+'ckt' => 1,
+'cku' => 1,
+'ckv' => 1,
+'ckx' => 1,
+'cky' => 1,
+'ckz' => 1,
+'cla' => 1,
+'clc' => 1,
+'cle' => 1,
+'clh' => 1,
+'cli' => 1,
+'clk' => 1,
+'cll' => 1,
+'clm' => 1,
+'clo' => 1,
+'clu' => 1,
+'clw' => 1,
+'cly' => 1,
+'cma' => 1,
+'cmc' => 1,
+'cme' => 1,
+'cmg' => 1,
+'cmi' => 1,
+'cmk' => 1,
+'cml' => 1,
+'cmm' => 1,
+'cmo' => 1,
+'cmr' => 1,
+'cms' => 1,
+'cmt' => 1,
+'cna' => 1,
+'cnb' => 1,
+'cnc' => 1,
+'cng' => 1,
+'cnh' => 1,
+'cni' => 1,
+'cnk' => 1,
+'cnl' => 1,
+'cno' => 1,
+'cns' => 1,
+'cnt' => 1,
+'cnu' => 1,
+'cnw' => 1,
+'cnx' => 1,
+'cob' => 1,
+'coc' => 1,
+'cod' => 1,
+'coe' => 1,
+'cof' => 1,
+'cog' => 1,
+'coh' => 1,
+'coj' => 1,
+'cok' => 1,
+'col' => 1,
+'com' => 1,
+'con' => 1,
+'coo' => 1,
+'cop' => 1,
+'coq' => 1,
+'cot' => 1,
+'cou' => 1,
+'cov' => 1,
+'cow' => 1,
+'cox' => 1,
+'coy' => 1,
+'coz' => 1,
+'cpa' => 1,
+'cpb' => 1,
+'cpc' => 1,
+'cpe' => 1,
+'cpf' => 1,
+'cpg' => 1,
+'cpi' => 1,
+'cpn' => 1,
+'cpp' => 1,
+'cps' => 1,
+'cpu' => 1,
+'cpy' => 1,
+'cra' => 1,
+'crb' => 1,
+'crc' => 1,
+'crd' => 1,
+'crf' => 1,
+'crg' => 1,
+'crh' => 1,
+'cri' => 1,
+'crn' => 1,
+'cro' => 1,
+'crp' => 1,
+'crq' => 1,
+'crr' => 1,
+'crs' => 1,
+'crt' => 1,
+'crv' => 1,
+'crw' => 1,
+'crx' => 1,
+'cry' => 1,
+'crz' => 1,
+'csa' => 1,
+'csb' => 1,
+'csc' => 1,
+'csd' => 1,
+'cse' => 1,
+'csf' => 1,
+'csg' => 1,
+'csh' => 1,
+'csi' => 1,
+'csk' => 1,
+'csl' => 1,
+'csm' => 1,
+'csn' => 1,
+'cso' => 1,
+'csq' => 1,
+'csr' => 1,
+'css' => 1,
+'cst' => 1,
+'csu' => 1,
+'csy' => 1,
+'csz' => 1,
+'cta' => 1,
+'ctc' => 1,
+'ctd' => 1,
+'cte' => 1,
+'ctg' => 1,
+'ctl' => 1,
+'ctm' => 1,
+'ctn' => 1,
+'cto' => 1,
+'ctp' => 1,
+'ctt' => 1,
+'ctu' => 1,
+'ctz' => 1,
+'cua' => 1,
+'cub' => 1,
+'cuc' => 1,
+'cug' => 1,
+'cuh' => 1,
+'cui' => 1,
+'cuj' => 1,
+'cuk' => 1,
+'cul' => 1,
+'cum' => 1,
+'cuo' => 1,
+'cup' => 1,
+'cuq' => 1,
+'cur' => 1,
+'cus' => 1,
+'cut' => 1,
+'cuu' => 1,
+'cuv' => 1,
+'cuw' => 1,
+'cux' => 1,
+'cvg' => 1,
+'cvn' => 1,
+'cwa' => 1,
+'cwb' => 1,
+'cwe' => 1,
+'cwg' => 1,
+'cwt' => 1,
+'cya' => 1,
+'cyb' => 1,
+'cyo' => 1,
+'czk' => 1,
+'czn' => 1,
+'czt' => 1,
+'daa' => 1,
+'dac' => 1,
+'dad' => 1,
+'dae' => 1,
+'daf' => 1,
+'dag' => 1,
+'dah' => 1,
+'dai' => 1,
+'daj' => 1,
+'dak' => 1,
+'dal' => 1,
+'dam' => 1,
+'dao' => 1,
+'dap' => 1,
+'daq' => 1,
+'dar' => 1,
+'das' => 1,
+'dau' => 1,
+'dav' => 1,
+'daw' => 1,
+'dax' => 1,
+'day' => 1,
+'daz' => 1,
+'dba' => 1,
+'dbb' => 1,
+'dbd' => 1,
+'dbe' => 1,
+'dbf' => 1,
+'dbg' => 1,
+'dbi' => 1,
+'dbj' => 1,
+'dbl' => 1,
+'dbm' => 1,
+'dbn' => 1,
+'dbo' => 1,
+'dbp' => 1,
+'dbq' => 1,
+'dbr' => 1,
+'dbu' => 1,
+'dbv' => 1,
+'dby' => 1,
+'dcc' => 1,
+'dcr' => 1,
+'ddd' => 1,
+'dde' => 1,
+'ddg' => 1,
+'ddi' => 1,
+'ddj' => 1,
+'ddn' => 1,
+'ddo' => 1,
+'dds' => 1,
+'ddw' => 1,
+'dec' => 1,
+'ded' => 1,
+'dee' => 1,
+'def' => 1,
+'deg' => 1,
+'deh' => 1,
+'dei' => 1,
+'dek' => 1,
+'del' => 1,
+'dem' => 1,
+'den' => 1,
+'dep' => 1,
+'deq' => 1,
+'der' => 1,
+'des' => 1,
+'dev' => 1,
+'dez' => 1,
+'dga' => 1,
+'dgb' => 1,
+'dgc' => 1,
+'dgd' => 1,
+'dge' => 1,
+'dgg' => 1,
+'dgh' => 1,
+'dgi' => 1,
+'dgk' => 1,
+'dgn' => 1,
+'dgr' => 1,
+'dgs' => 1,
+'dgu' => 1,
+'dgx' => 1,
+'dgz' => 1,
+'dha' => 1,
+'dhg' => 1,
+'dhi' => 1,
+'dhl' => 1,
+'dhm' => 1,
+'dhn' => 1,
+'dho' => 1,
+'dhr' => 1,
+'dhs' => 1,
+'dhu' => 1,
+'dhv' => 1,
+'dhw' => 1,
+'dia' => 1,
+'dic' => 1,
+'did' => 1,
+'dif' => 1,
+'dig' => 1,
+'dih' => 1,
+'dii' => 1,
+'dij' => 1,
+'dil' => 1,
+'dim' => 1,
+'din' => 1,
+'dio' => 1,
+'dir' => 1,
+'dis' => 1,
+'dit' => 1,
+'diu' => 1,
+'dix' => 1,
+'diy' => 1,
+'diz' => 1,
+'djb' => 1,
+'djc' => 1,
+'djd' => 1,
+'dje' => 1,
+'djf' => 1,
+'dji' => 1,
+'djj' => 1,
+'djk' => 1,
+'djl' => 1,
+'djm' => 1,
+'djn' => 1,
+'djo' => 1,
+'djr' => 1,
+'dju' => 1,
+'djw' => 1,
+'dka' => 1,
+'dkk' => 1,
+'dkl' => 1,
+'dkr' => 1,
+'dkx' => 1,
+'dlg' => 1,
+'dlm' => 1,
+'dln' => 1,
+'dma' => 1,
+'dmc' => 1,
+'dme' => 1,
+'dmg' => 1,
+'dmk' => 1,
+'dml' => 1,
+'dmm' => 1,
+'dmn' => 1,
+'dmo' => 1,
+'dmr' => 1,
+'dms' => 1,
+'dmu' => 1,
+'dmv' => 1,
+'dmx' => 1,
+'dmy' => 1,
+'dna' => 1,
+'dnd' => 1,
+'dne' => 1,
+'dng' => 1,
+'dni' => 1,
+'dnk' => 1,
+'dnn' => 1,
+'dnr' => 1,
+'dnt' => 1,
+'dnu' => 1,
+'dnw' => 1,
+'dny' => 1,
+'doa' => 1,
+'dob' => 1,
+'doc' => 1,
+'doe' => 1,
+'dof' => 1,
+'doh' => 1,
+'doi' => 1,
+'dok' => 1,
+'dol' => 1,
+'don' => 1,
+'doo' => 1,
+'dop' => 1,
+'doq' => 1,
+'dor' => 1,
+'dos' => 1,
+'dot' => 1,
+'dov' => 1,
+'dow' => 1,
+'dox' => 1,
+'doy' => 1,
+'doz' => 1,
+'dpp' => 1,
+'dra' => 1,
+'drb' => 1,
+'drd' => 1,
+'dre' => 1,
+'drg' => 1,
+'drh' => 1,
+'dri' => 1,
+'drl' => 1,
+'drn' => 1,
+'dro' => 1,
+'drq' => 1,
+'drr' => 1,
+'drs' => 1,
+'drt' => 1,
+'dru' => 1,
+'drw' => 1,
+'dry' => 1,
+'dsb' => 1,
+'dse' => 1,
+'dsh' => 1,
+'dsi' => 1,
+'dsl' => 1,
+'dsn' => 1,
+'dso' => 1,
+'dsq' => 1,
+'dta' => 1,
+'dtb' => 1,
+'dti' => 1,
+'dtk' => 1,
+'dtm' => 1,
+'dtp' => 1,
+'dtr' => 1,
+'dts' => 1,
+'dtt' => 1,
+'dtu' => 1,
+'dua' => 1,
+'dub' => 1,
+'duc' => 1,
+'dud' => 1,
+'due' => 1,
+'duf' => 1,
+'dug' => 1,
+'duh' => 1,
+'dui' => 1,
+'duj' => 1,
+'duk' => 1,
+'dul' => 1,
+'dum' => 1,
+'dun' => 1,
+'duo' => 1,
+'duq' => 1,
+'dur' => 1,
+'dus' => 1,
+'duu' => 1,
+'duv' => 1,
+'duw' => 1,
+'dux' => 1,
+'duy' => 1,
+'duz' => 1,
+'dva' => 1,
+'dwa' => 1,
+'dwl' => 1,
+'dwr' => 1,
+'dws' => 1,
+'dww' => 1,
+'dya' => 1,
+'dyb' => 1,
+'dyd' => 1,
+'dyg' => 1,
+'dyi' => 1,
+'dym' => 1,
+'dyn' => 1,
+'dyo' => 1,
+'dyu' => 1,
+'dyy' => 1,
+'dza' => 1,
+'dzd' => 1,
+'dzg' => 1,
+'dzl' => 1,
+'dzn' => 1,
+'ebg' => 1,
+'ebo' => 1,
+'ebr' => 1,
+'ebu' => 1,
+'ecr' => 1,
+'ecs' => 1,
+'ecy' => 1,
+'eee' => 1,
+'efa' => 1,
+'efe' => 1,
+'efi' => 1,
+'ega' => 1,
+'egl' => 1,
+'ego' => 1,
+'egx' => 1,
+'egy' => 1,
+'ehu' => 1,
+'eip' => 1,
+'eit' => 1,
+'eiv' => 1,
+'eja' => 1,
+'eka' => 1,
+'eke' => 1,
+'ekg' => 1,
+'eki' => 1,
+'ekl' => 1,
+'ekm' => 1,
+'eko' => 1,
+'ekp' => 1,
+'ekr' => 1,
+'eky' => 1,
+'ele' => 1,
+'elh' => 1,
+'eli' => 1,
+'elk' => 1,
+'elm' => 1,
+'elo' => 1,
+'elp' => 1,
+'elu' => 1,
+'elx' => 1,
+'ema' => 1,
+'emb' => 1,
+'eme' => 1,
+'emg' => 1,
+'emi' => 1,
+'emm' => 1,
+'emn' => 1,
+'emo' => 1,
+'emp' => 1,
+'ems' => 1,
+'emu' => 1,
+'emw' => 1,
+'emy' => 1,
+'ena' => 1,
+'enc' => 1,
+'end' => 1,
+'enf' => 1,
+'enh' => 1,
+'enm' => 1,
+'enn' => 1,
+'eno' => 1,
+'enq' => 1,
+'enr' => 1,
+'enu' => 1,
+'env' => 1,
+'enw' => 1,
+'eot' => 1,
+'epi' => 1,
+'era' => 1,
+'erg' => 1,
+'erh' => 1,
+'eri' => 1,
+'erk' => 1,
+'ero' => 1,
+'err' => 1,
+'ers' => 1,
+'ert' => 1,
+'erw' => 1,
+'ese' => 1,
+'esh' => 1,
+'esl' => 1,
+'esm' => 1,
+'esn' => 1,
+'eso' => 1,
+'esq' => 1,
+'ess' => 1,
+'esu' => 1,
+'esx' => 1,
+'etb' => 1,
+'etc' => 1,
+'eth' => 1,
+'etn' => 1,
+'eto' => 1,
+'etr' => 1,
+'ets' => 1,
+'ett' => 1,
+'etu' => 1,
+'etx' => 1,
+'etz' => 1,
+'euq' => 1,
+'eve' => 1,
+'evh' => 1,
+'evn' => 1,
+'ewo' => 1,
+'ext' => 1,
+'eya' => 1,
+'eze' => 1,
+'faa' => 1,
+'fab' => 1,
+'fad' => 1,
+'faf' => 1,
+'fag' => 1,
+'fah' => 1,
+'fai' => 1,
+'faj' => 1,
+'fak' => 1,
+'fal' => 1,
+'fam' => 1,
+'fan' => 1,
+'fap' => 1,
+'far' => 1,
+'fau' => 1,
+'fax' => 1,
+'fay' => 1,
+'faz' => 1,
+'fcs' => 1,
+'fer' => 1,
+'ffi' => 1,
+'fgr' => 1,
+'fia' => 1,
+'fie' => 1,
+'fil' => 1,
+'fip' => 1,
+'fir' => 1,
+'fit' => 1,
+'fiu' => 1,
+'fiw' => 1,
+'fkv' => 1,
+'fla' => 1,
+'flh' => 1,
+'fli' => 1,
+'fll' => 1,
+'fln' => 1,
+'flr' => 1,
+'fly' => 1,
+'fmp' => 1,
+'fmu' => 1,
+'fng' => 1,
+'fni' => 1,
+'fod' => 1,
+'foi' => 1,
+'fom' => 1,
+'fon' => 1,
+'for' => 1,
+'fos' => 1,
+'fox' => 1,
+'fpe' => 1,
+'fqs' => 1,
+'frc' => 1,
+'frd' => 1,
+'frk' => 1,
+'frm' => 1,
+'fro' => 1,
+'frp' => 1,
+'frq' => 1,
+'frr' => 1,
+'frs' => 1,
+'frt' => 1,
+'fse' => 1,
+'fsl' => 1,
+'fss' => 1,
+'fud' => 1,
+'fuj' => 1,
+'fum' => 1,
+'fun' => 1,
+'fur' => 1,
+'fut' => 1,
+'fuu' => 1,
+'fuy' => 1,
+'fvr' => 1,
+'fwa' => 1,
+'fwe' => 1,
+'gaa' => 1,
+'gab' => 1,
+'gad' => 1,
+'gae' => 1,
+'gaf' => 1,
+'gag' => 1,
+'gah' => 1,
+'gai' => 1,
+'gaj' => 1,
+'gak' => 1,
+'gal' => 1,
+'gam' => 1,
+'gao' => 1,
+'gap' => 1,
+'gaq' => 1,
+'gar' => 1,
+'gas' => 1,
+'gat' => 1,
+'gau' => 1,
+'gav' => 1,
+'gaw' => 1,
+'gay' => 1,
+'gba' => 1,
+'gbb' => 1,
+'gbc' => 1,
+'gbd' => 1,
+'gbe' => 1,
+'gbf' => 1,
+'gbg' => 1,
+'gbh' => 1,
+'gbi' => 1,
+'gbj' => 1,
+'gbk' => 1,
+'gbl' => 1,
+'gbm' => 1,
+'gbn' => 1,
+'gbr' => 1,
+'gbs' => 1,
+'gbu' => 1,
+'gbv' => 1,
+'gbx' => 1,
+'gby' => 1,
+'gbz' => 1,
+'gcc' => 1,
+'gcd' => 1,
+'gce' => 1,
+'gcf' => 1,
+'gcl' => 1,
+'gcn' => 1,
+'gcr' => 1,
+'gct' => 1,
+'gdb' => 1,
+'gdc' => 1,
+'gdd' => 1,
+'gde' => 1,
+'gdf' => 1,
+'gdg' => 1,
+'gdh' => 1,
+'gdi' => 1,
+'gdj' => 1,
+'gdk' => 1,
+'gdl' => 1,
+'gdm' => 1,
+'gdn' => 1,
+'gdo' => 1,
+'gdq' => 1,
+'gdr' => 1,
+'gdu' => 1,
+'gdx' => 1,
+'gea' => 1,
+'geb' => 1,
+'ged' => 1,
+'geg' => 1,
+'geh' => 1,
+'gei' => 1,
+'gej' => 1,
+'gek' => 1,
+'gel' => 1,
+'gem' => 1,
+'geq' => 1,
+'ges' => 1,
+'gew' => 1,
+'gex' => 1,
+'gey' => 1,
+'gez' => 1,
+'gfk' => 1,
+'gft' => 1,
+'gga' => 1,
+'ggb' => 1,
+'ggd' => 1,
+'gge' => 1,
+'ggg' => 1,
+'ggk' => 1,
+'ggl' => 1,
+'ggn' => 1,
+'ggr' => 1,
+'ggt' => 1,
+'ggu' => 1,
+'ggw' => 1,
+'gha' => 1,
+'ghc' => 1,
+'ghe' => 1,
+'ghh' => 1,
+'ghk' => 1,
+'ghl' => 1,
+'ghn' => 1,
+'gho' => 1,
+'ghr' => 1,
+'ghs' => 1,
+'ght' => 1,
+'gia' => 1,
+'gib' => 1,
+'gic' => 1,
+'gid' => 1,
+'gig' => 1,
+'gil' => 1,
+'gim' => 1,
+'gin' => 1,
+'gio' => 1,
+'gip' => 1,
+'giq' => 1,
+'gir' => 1,
+'gis' => 1,
+'git' => 1,
+'giw' => 1,
+'gix' => 1,
+'giy' => 1,
+'giz' => 1,
+'gji' => 1,
+'gjk' => 1,
+'gjn' => 1,
+'gka' => 1,
+'gke' => 1,
+'gkn' => 1,
+'glc' => 1,
+'gld' => 1,
+'glh' => 1,
+'gli' => 1,
+'glj' => 1,
+'glk' => 1,
+'glo' => 1,
+'glr' => 1,
+'glu' => 1,
+'glw' => 1,
+'gly' => 1,
+'gma' => 1,
+'gmb' => 1,
+'gmd' => 1,
+'gme' => 1,
+'gmh' => 1,
+'gml' => 1,
+'gmn' => 1,
+'gmq' => 1,
+'gmu' => 1,
+'gmv' => 1,
+'gmw' => 1,
+'gmx' => 1,
+'gmy' => 1,
+'gna' => 1,
+'gnb' => 1,
+'gnc' => 1,
+'gnd' => 1,
+'gne' => 1,
+'gng' => 1,
+'gnh' => 1,
+'gni' => 1,
+'gnk' => 1,
+'gnl' => 1,
+'gnm' => 1,
+'gnn' => 1,
+'gnq' => 1,
+'gnr' => 1,
+'gnt' => 1,
+'gnu' => 1,
+'gnz' => 1,
+'goa' => 1,
+'gob' => 1,
+'goc' => 1,
+'god' => 1,
+'goe' => 1,
+'gof' => 1,
+'gog' => 1,
+'goh' => 1,
+'goi' => 1,
+'goj' => 1,
+'gok' => 1,
+'gol' => 1,
+'gon' => 1,
+'goo' => 1,
+'gop' => 1,
+'goq' => 1,
+'gor' => 1,
+'gos' => 1,
+'got' => 1,
+'gou' => 1,
+'gow' => 1,
+'gox' => 1,
+'goy' => 1,
+'goz' => 1,
+'gpa' => 1,
+'gpn' => 1,
+'gqa' => 1,
+'gqi' => 1,
+'gqn' => 1,
+'gqr' => 1,
+'gra' => 1,
+'grb' => 1,
+'grc' => 1,
+'grd' => 1,
+'grg' => 1,
+'grh' => 1,
+'gri' => 1,
+'grk' => 1,
+'grm' => 1,
+'gro' => 1,
+'grq' => 1,
+'grr' => 1,
+'grs' => 1,
+'grt' => 1,
+'gru' => 1,
+'grw' => 1,
+'grx' => 1,
+'grz' => 1,
+'gse' => 1,
+'gsg' => 1,
+'gsl' => 1,
+'gsm' => 1,
+'gsn' => 1,
+'gsp' => 1,
+'gss' => 1,
+'gsw' => 1,
+'gta' => 1,
+'gti' => 1,
+'gua' => 1,
+'gub' => 1,
+'guc' => 1,
+'gud' => 1,
+'gue' => 1,
+'guf' => 1,
+'guh' => 1,
+'guk' => 1,
+'gul' => 1,
+'gum' => 1,
+'guo' => 1,
+'gup' => 1,
+'guq' => 1,
+'gur' => 1,
+'gus' => 1,
+'gut' => 1,
+'guu' => 1,
+'guv' => 1,
+'guw' => 1,
+'gux' => 1,
+'guz' => 1,
+'gva' => 1,
+'gvc' => 1,
+'gve' => 1,
+'gvf' => 1,
+'gvj' => 1,
+'gvl' => 1,
+'gvm' => 1,
+'gvn' => 1,
+'gvo' => 1,
+'gvp' => 1,
+'gvr' => 1,
+'gvs' => 1,
+'gvy' => 1,
+'gwa' => 1,
+'gwb' => 1,
+'gwc' => 1,
+'gwd' => 1,
+'gwe' => 1,
+'gwf' => 1,
+'gwg' => 1,
+'gwi' => 1,
+'gwj' => 1,
+'gwn' => 1,
+'gwr' => 1,
+'gwt' => 1,
+'gwu' => 1,
+'gww' => 1,
+'gwx' => 1,
+'gxx' => 1,
+'gyb' => 1,
+'gyd' => 1,
+'gye' => 1,
+'gyf' => 1,
+'gyg' => 1,
+'gyi' => 1,
+'gyl' => 1,
+'gym' => 1,
+'gyn' => 1,
+'gyr' => 1,
+'gyy' => 1,
+'gza' => 1,
+'gzi' => 1,
+'gzn' => 1,
+'haa' => 1,
+'hab' => 1,
+'hac' => 1,
+'had' => 1,
+'haf' => 1,
+'hag' => 1,
+'hah' => 1,
+'hai' => 1,
+'haj' => 1,
+'hal' => 1,
+'ham' => 1,
+'han' => 1,
+'hao' => 1,
+'hap' => 1,
+'haq' => 1,
+'har' => 1,
+'has' => 1,
+'hav' => 1,
+'haw' => 1,
+'hay' => 1,
+'haz' => 1,
+'hba' => 1,
+'hbb' => 1,
+'hbn' => 1,
+'hbo' => 1,
+'hbu' => 1,
+'hca' => 1,
+'hch' => 1,
+'hds' => 1,
+'hdy' => 1,
+'hed' => 1,
+'heg' => 1,
+'heh' => 1,
+'hei' => 1,
+'hem' => 1,
+'hgm' => 1,
+'hgw' => 1,
+'hhi' => 1,
+'hhr' => 1,
+'hhy' => 1,
+'hia' => 1,
+'hib' => 1,
+'hid' => 1,
+'hif' => 1,
+'hig' => 1,
+'hih' => 1,
+'hii' => 1,
+'hij' => 1,
+'hik' => 1,
+'hil' => 1,
+'him' => 1,
+'hio' => 1,
+'hir' => 1,
+'hit' => 1,
+'hiw' => 1,
+'hix' => 1,
+'hka' => 1,
+'hke' => 1,
+'hkk' => 1,
+'hks' => 1,
+'hla' => 1,
+'hlb' => 1,
+'hld' => 1,
+'hle' => 1,
+'hlt' => 1,
+'hlu' => 1,
+'hmb' => 1,
+'hmf' => 1,
+'hmk' => 1,
+'hmn' => 1,
+'hmr' => 1,
+'hmt' => 1,
+'hmu' => 1,
+'hmv' => 1,
+'hmx' => 1,
+'hmz' => 1,
+'hna' => 1,
+'hne' => 1,
+'hnh' => 1,
+'hni' => 1,
+'hnn' => 1,
+'hns' => 1,
+'hnu' => 1,
+'hoa' => 1,
+'hob' => 1,
+'hoc' => 1,
+'hod' => 1,
+'hoe' => 1,
+'hoh' => 1,
+'hoi' => 1,
+'hok' => 1,
+'hol' => 1,
+'hom' => 1,
+'hoo' => 1,
+'hop' => 1,
+'hor' => 1,
+'hos' => 1,
+'hot' => 1,
+'hov' => 1,
+'how' => 1,
+'hoy' => 1,
+'hoz' => 1,
+'hpo' => 1,
+'hps' => 1,
+'hra' => 1,
+'hre' => 1,
+'hrk' => 1,
+'hro' => 1,
+'hrr' => 1,
+'hrt' => 1,
+'hru' => 1,
+'hrx' => 1,
+'hrz' => 1,
+'hsb' => 1,
+'hsh' => 1,
+'hsl' => 1,
+'hss' => 1,
+'hti' => 1,
+'hto' => 1,
+'hts' => 1,
+'htu' => 1,
+'htx' => 1,
+'hub' => 1,
+'huc' => 1,
+'hud' => 1,
+'hue' => 1,
+'huf' => 1,
+'hug' => 1,
+'huh' => 1,
+'hui' => 1,
+'huk' => 1,
+'hul' => 1,
+'hum' => 1,
+'huo' => 1,
+'hup' => 1,
+'huq' => 1,
+'hur' => 1,
+'hus' => 1,
+'hut' => 1,
+'huu' => 1,
+'huv' => 1,
+'huw' => 1,
+'hux' => 1,
+'huy' => 1,
+'huz' => 1,
+'hvc' => 1,
+'hve' => 1,
+'hvk' => 1,
+'hvn' => 1,
+'hvv' => 1,
+'hwa' => 1,
+'hwc' => 1,
+'hwo' => 1,
+'hya' => 1,
+'hyx' => 1,
+'iai' => 1,
+'ian' => 1,
+'iap' => 1,
+'iar' => 1,
+'iba' => 1,
+'ibb' => 1,
+'ibd' => 1,
+'ibe' => 1,
+'ibg' => 1,
+'ibi' => 1,
+'ibl' => 1,
+'ibm' => 1,
+'ibn' => 1,
+'ibr' => 1,
+'ibu' => 1,
+'iby' => 1,
+'ica' => 1,
+'ich' => 1,
+'icl' => 1,
+'icr' => 1,
+'idb' => 1,
+'idc' => 1,
+'idd' => 1,
+'ide' => 1,
+'idi' => 1,
+'idr' => 1,
+'ids' => 1,
+'idt' => 1,
+'idu' => 1,
+'ifa' => 1,
+'ifb' => 1,
+'ife' => 1,
+'iff' => 1,
+'ifk' => 1,
+'ifm' => 1,
+'ifu' => 1,
+'ify' => 1,
+'igb' => 1,
+'ige' => 1,
+'igg' => 1,
+'igl' => 1,
+'igm' => 1,
+'ign' => 1,
+'igo' => 1,
+'igs' => 1,
+'igw' => 1,
+'ihb' => 1,
+'ihi' => 1,
+'ihp' => 1,
+'iir' => 1,
+'ijc' => 1,
+'ije' => 1,
+'ijj' => 1,
+'ijn' => 1,
+'ijo' => 1,
+'ijs' => 1,
+'iki' => 1,
+'ikk' => 1,
+'ikl' => 1,
+'iko' => 1,
+'ikp' => 1,
+'ikv' => 1,
+'ikw' => 1,
+'ikx' => 1,
+'ikz' => 1,
+'ila' => 1,
+'ilb' => 1,
+'ilg' => 1,
+'ili' => 1,
+'ilk' => 1,
+'ill' => 1,
+'ilo' => 1,
+'ils' => 1,
+'ilu' => 1,
+'ilv' => 1,
+'ilw' => 1,
+'ima' => 1,
+'ime' => 1,
+'imi' => 1,
+'iml' => 1,
+'imn' => 1,
+'imo' => 1,
+'imr' => 1,
+'ims' => 1,
+'imy' => 1,
+'inb' => 1,
+'inc' => 1,
+'ine' => 1,
+'ing' => 1,
+'inh' => 1,
+'inj' => 1,
+'inl' => 1,
+'inm' => 1,
+'inn' => 1,
+'ino' => 1,
+'inp' => 1,
+'ins' => 1,
+'int' => 1,
+'inz' => 1,
+'ior' => 1,
+'iou' => 1,
+'iow' => 1,
+'ipi' => 1,
+'ipo' => 1,
+'iqu' => 1,
+'ira' => 1,
+'ire' => 1,
+'irh' => 1,
+'iri' => 1,
+'irk' => 1,
+'irn' => 1,
+'iro' => 1,
+'irr' => 1,
+'iru' => 1,
+'irx' => 1,
+'iry' => 1,
+'isa' => 1,
+'isc' => 1,
+'isd' => 1,
+'ise' => 1,
+'isg' => 1,
+'ish' => 1,
+'isi' => 1,
+'ism' => 1,
+'isn' => 1,
+'iso' => 1,
+'isr' => 1,
+'ist' => 1,
+'isu' => 1,
+'itb' => 1,
+'itc' => 1,
+'ite' => 1,
+'iti' => 1,
+'itk' => 1,
+'itl' => 1,
+'itm' => 1,
+'ito' => 1,
+'itr' => 1,
+'its' => 1,
+'itt' => 1,
+'itv' => 1,
+'itw' => 1,
+'itx' => 1,
+'ity' => 1,
+'itz' => 1,
+'ium' => 1,
+'ivb' => 1,
+'ivv' => 1,
+'iwk' => 1,
+'iwm' => 1,
+'iwo' => 1,
+'iws' => 1,
+'ixc' => 1,
+'ixl' => 1,
+'iya' => 1,
+'iyo' => 1,
+'iyx' => 1,
+'izh' => 1,
+'izi' => 1,
+'izr' => 1,
+'jaa' => 1,
+'jab' => 1,
+'jac' => 1,
+'jad' => 1,
+'jae' => 1,
+'jaf' => 1,
+'jah' => 1,
+'jaj' => 1,
+'jal' => 1,
+'jam' => 1,
+'jao' => 1,
+'jaq' => 1,
+'jar' => 1,
+'jas' => 1,
+'jau' => 1,
+'jay' => 1,
+'jaz' => 1,
+'jbe' => 1,
+'jbj' => 1,
+'jbn' => 1,
+'jbo' => 1,
+'jbr' => 1,
+'jbt' => 1,
+'jbu' => 1,
+'jcs' => 1,
+'jct' => 1,
+'jda' => 1,
+'jdg' => 1,
+'jdt' => 1,
+'jeb' => 1,
+'jee' => 1,
+'jeg' => 1,
+'jeh' => 1,
+'jei' => 1,
+'jek' => 1,
+'jel' => 1,
+'jen' => 1,
+'jer' => 1,
+'jet' => 1,
+'jeu' => 1,
+'jgb' => 1,
+'jge' => 1,
+'jgo' => 1,
+'jhi' => 1,
+'jhs' => 1,
+'jia' => 1,
+'jib' => 1,
+'jic' => 1,
+'jid' => 1,
+'jie' => 1,
+'jig' => 1,
+'jih' => 1,
+'jii' => 1,
+'jil' => 1,
+'jim' => 1,
+'jio' => 1,
+'jiq' => 1,
+'jit' => 1,
+'jiu' => 1,
+'jiv' => 1,
+'jiy' => 1,
+'jko' => 1,
+'jku' => 1,
+'jle' => 1,
+'jma' => 1,
+'jmb' => 1,
+'jmc' => 1,
+'jmd' => 1,
+'jmi' => 1,
+'jml' => 1,
+'jmn' => 1,
+'jmr' => 1,
+'jms' => 1,
+'jmx' => 1,
+'jna' => 1,
+'jnd' => 1,
+'jng' => 1,
+'jni' => 1,
+'jnj' => 1,
+'jnl' => 1,
+'jns' => 1,
+'job' => 1,
+'jod' => 1,
+'jor' => 1,
+'jos' => 1,
+'jow' => 1,
+'jpa' => 1,
+'jpr' => 1,
+'jpx' => 1,
+'jqr' => 1,
+'jra' => 1,
+'jrb' => 1,
+'jrr' => 1,
+'jrt' => 1,
+'jru' => 1,
+'jsl' => 1,
+'jua' => 1,
+'jub' => 1,
+'juc' => 1,
+'jud' => 1,
+'juh' => 1,
+'juk' => 1,
+'jul' => 1,
+'jum' => 1,
+'jun' => 1,
+'juo' => 1,
+'jup' => 1,
+'jur' => 1,
+'jus' => 1,
+'jut' => 1,
+'juu' => 1,
+'juw' => 1,
+'juy' => 1,
+'jvd' => 1,
+'jvn' => 1,
+'jwi' => 1,
+'jya' => 1,
+'jyy' => 1,
+'kaa' => 1,
+'kab' => 1,
+'kac' => 1,
+'kad' => 1,
+'kae' => 1,
+'kaf' => 1,
+'kag' => 1,
+'kah' => 1,
+'kai' => 1,
+'kaj' => 1,
+'kak' => 1,
+'kam' => 1,
+'kao' => 1,
+'kap' => 1,
+'kaq' => 1,
+'kar' => 1,
+'kav' => 1,
+'kaw' => 1,
+'kax' => 1,
+'kay' => 1,
+'kba' => 1,
+'kbb' => 1,
+'kbc' => 1,
+'kbd' => 1,
+'kbe' => 1,
+'kbf' => 1,
+'kbg' => 1,
+'kbh' => 1,
+'kbi' => 1,
+'kbj' => 1,
+'kbk' => 1,
+'kbl' => 1,
+'kbm' => 1,
+'kbn' => 1,
+'kbo' => 1,
+'kbp' => 1,
+'kbq' => 1,
+'kbr' => 1,
+'kbs' => 1,
+'kbt' => 1,
+'kbu' => 1,
+'kbv' => 1,
+'kbw' => 1,
+'kbx' => 1,
+'kbz' => 1,
+'kca' => 1,
+'kcb' => 1,
+'kcc' => 1,
+'kcd' => 1,
+'kce' => 1,
+'kcf' => 1,
+'kcg' => 1,
+'kch' => 1,
+'kci' => 1,
+'kcj' => 1,
+'kck' => 1,
+'kcl' => 1,
+'kcm' => 1,
+'kcn' => 1,
+'kco' => 1,
+'kcp' => 1,
+'kcq' => 1,
+'kcr' => 1,
+'kcs' => 1,
+'kct' => 1,
+'kcu' => 1,
+'kcv' => 1,
+'kcw' => 1,
+'kcx' => 1,
+'kcy' => 1,
+'kcz' => 1,
+'kda' => 1,
+'kdc' => 1,
+'kdd' => 1,
+'kde' => 1,
+'kdf' => 1,
+'kdg' => 1,
+'kdh' => 1,
+'kdi' => 1,
+'kdj' => 1,
+'kdk' => 1,
+'kdl' => 1,
+'kdm' => 1,
+'kdn' => 1,
+'kdo' => 1,
+'kdp' => 1,
+'kdq' => 1,
+'kdr' => 1,
+'kdt' => 1,
+'kdu' => 1,
+'kdv' => 1,
+'kdw' => 1,
+'kdx' => 1,
+'kdy' => 1,
+'kdz' => 1,
+'kea' => 1,
+'keb' => 1,
+'kec' => 1,
+'ked' => 1,
+'kee' => 1,
+'kef' => 1,
+'keg' => 1,
+'keh' => 1,
+'kei' => 1,
+'kej' => 1,
+'kek' => 1,
+'kel' => 1,
+'kem' => 1,
+'ken' => 1,
+'keo' => 1,
+'kep' => 1,
+'keq' => 1,
+'ker' => 1,
+'kes' => 1,
+'ket' => 1,
+'keu' => 1,
+'kev' => 1,
+'kew' => 1,
+'kex' => 1,
+'key' => 1,
+'kez' => 1,
+'kfa' => 1,
+'kfb' => 1,
+'kfc' => 1,
+'kfd' => 1,
+'kfe' => 1,
+'kff' => 1,
+'kfg' => 1,
+'kfh' => 1,
+'kfi' => 1,
+'kfj' => 1,
+'kfk' => 1,
+'kfl' => 1,
+'kfm' => 1,
+'kfn' => 1,
+'kfo' => 1,
+'kfp' => 1,
+'kfq' => 1,
+'kfr' => 1,
+'kfs' => 1,
+'kft' => 1,
+'kfu' => 1,
+'kfv' => 1,
+'kfw' => 1,
+'kfx' => 1,
+'kfy' => 1,
+'kfz' => 1,
+'kga' => 1,
+'kgb' => 1,
+'kgc' => 1,
+'kgd' => 1,
+'kge' => 1,
+'kgf' => 1,
+'kgg' => 1,
+'kgh' => 1,
+'kgi' => 1,
+'kgj' => 1,
+'kgk' => 1,
+'kgl' => 1,
+'kgm' => 1,
+'kgn' => 1,
+'kgo' => 1,
+'kgp' => 1,
+'kgq' => 1,
+'kgr' => 1,
+'kgs' => 1,
+'kgt' => 1,
+'kgu' => 1,
+'kgv' => 1,
+'kgw' => 1,
+'kgx' => 1,
+'kgy' => 1,
+'kha' => 1,
+'khb' => 1,
+'khc' => 1,
+'khd' => 1,
+'khe' => 1,
+'khf' => 1,
+'khg' => 1,
+'khh' => 1,
+'khi' => 1,
+'khj' => 1,
+'khl' => 1,
+'khn' => 1,
+'kho' => 1,
+'khp' => 1,
+'khq' => 1,
+'khr' => 1,
+'khs' => 1,
+'kht' => 1,
+'khu' => 1,
+'khv' => 1,
+'khw' => 1,
+'khx' => 1,
+'khy' => 1,
+'khz' => 1,
+'kia' => 1,
+'kib' => 1,
+'kic' => 1,
+'kid' => 1,
+'kie' => 1,
+'kif' => 1,
+'kig' => 1,
+'kih' => 1,
+'kii' => 1,
+'kij' => 1,
+'kil' => 1,
+'kim' => 1,
+'kio' => 1,
+'kip' => 1,
+'kiq' => 1,
+'kis' => 1,
+'kit' => 1,
+'kiv' => 1,
+'kiw' => 1,
+'kix' => 1,
+'kiy' => 1,
+'kiz' => 1,
+'kja' => 1,
+'kjb' => 1,
+'kjc' => 1,
+'kjd' => 1,
+'kje' => 1,
+'kjf' => 1,
+'kjg' => 1,
+'kjh' => 1,
+'kji' => 1,
+'kjj' => 1,
+'kjk' => 1,
+'kjl' => 1,
+'kjm' => 1,
+'kjn' => 1,
+'kjo' => 1,
+'kjp' => 1,
+'kjq' => 1,
+'kjr' => 1,
+'kjs' => 1,
+'kjt' => 1,
+'kju' => 1,
+'kjx' => 1,
+'kjy' => 1,
+'kjz' => 1,
+'kka' => 1,
+'kkb' => 1,
+'kkc' => 1,
+'kkd' => 1,
+'kke' => 1,
+'kkf' => 1,
+'kkg' => 1,
+'kkh' => 1,
+'kki' => 1,
+'kkj' => 1,
+'kkk' => 1,
+'kkl' => 1,
+'kkm' => 1,
+'kkn' => 1,
+'kko' => 1,
+'kkp' => 1,
+'kkq' => 1,
+'kkr' => 1,
+'kks' => 1,
+'kkt' => 1,
+'kku' => 1,
+'kkv' => 1,
+'kkw' => 1,
+'kkx' => 1,
+'kky' => 1,
+'kkz' => 1,
+'kla' => 1,
+'klb' => 1,
+'klc' => 1,
+'kld' => 1,
+'kle' => 1,
+'klf' => 1,
+'klg' => 1,
+'klh' => 1,
+'kli' => 1,
+'klj' => 1,
+'klk' => 1,
+'kll' => 1,
+'klm' => 1,
+'kln' => 1,
+'klo' => 1,
+'klp' => 1,
+'klq' => 1,
+'klr' => 1,
+'kls' => 1,
+'klt' => 1,
+'klu' => 1,
+'klv' => 1,
+'klw' => 1,
+'klx' => 1,
+'kly' => 1,
+'klz' => 1,
+'kma' => 1,
+'kmb' => 1,
+'kmc' => 1,
+'kmd' => 1,
+'kme' => 1,
+'kmf' => 1,
+'kmg' => 1,
+'kmh' => 1,
+'kmi' => 1,
+'kmj' => 1,
+'kmk' => 1,
+'kml' => 1,
+'kmm' => 1,
+'kmn' => 1,
+'kmo' => 1,
+'kmp' => 1,
+'kmq' => 1,
+'kms' => 1,
+'kmt' => 1,
+'kmu' => 1,
+'kmv' => 1,
+'kmw' => 1,
+'kmx' => 1,
+'kmy' => 1,
+'kmz' => 1,
+'kna' => 1,
+'knb' => 1,
+'knd' => 1,
+'kne' => 1,
+'knf' => 1,
+'kni' => 1,
+'knj' => 1,
+'knk' => 1,
+'knl' => 1,
+'knm' => 1,
+'kno' => 1,
+'knp' => 1,
+'knq' => 1,
+'knr' => 1,
+'kns' => 1,
+'knt' => 1,
+'knu' => 1,
+'knv' => 1,
+'knw' => 1,
+'knx' => 1,
+'kny' => 1,
+'knz' => 1,
+'koa' => 1,
+'koc' => 1,
+'kod' => 1,
+'koe' => 1,
+'kof' => 1,
+'kog' => 1,
+'koh' => 1,
+'koj' => 1,
+'kok' => 1,
+'kol' => 1,
+'koo' => 1,
+'kop' => 1,
+'koq' => 1,
+'kos' => 1,
+'kot' => 1,
+'kou' => 1,
+'kov' => 1,
+'kow' => 1,
+'kox' => 1,
+'koy' => 1,
+'koz' => 1,
+'kpa' => 1,
+'kpb' => 1,
+'kpc' => 1,
+'kpd' => 1,
+'kpe' => 1,
+'kpf' => 1,
+'kpg' => 1,
+'kph' => 1,
+'kpi' => 1,
+'kpj' => 1,
+'kpk' => 1,
+'kpl' => 1,
+'kpm' => 1,
+'kpn' => 1,
+'kpo' => 1,
+'kpp' => 1,
+'kpq' => 1,
+'kpr' => 1,
+'kps' => 1,
+'kpt' => 1,
+'kpu' => 1,
+'kpw' => 1,
+'kpx' => 1,
+'kpy' => 1,
+'kpz' => 1,
+'kqa' => 1,
+'kqb' => 1,
+'kqc' => 1,
+'kqd' => 1,
+'kqe' => 1,
+'kqf' => 1,
+'kqg' => 1,
+'kqh' => 1,
+'kqi' => 1,
+'kqj' => 1,
+'kqk' => 1,
+'kql' => 1,
+'kqm' => 1,
+'kqn' => 1,
+'kqo' => 1,
+'kqp' => 1,
+'kqq' => 1,
+'kqr' => 1,
+'kqs' => 1,
+'kqt' => 1,
+'kqu' => 1,
+'kqv' => 1,
+'kqw' => 1,
+'kqx' => 1,
+'kqy' => 1,
+'kqz' => 1,
+'kra' => 1,
+'krb' => 1,
+'krc' => 1,
+'krd' => 1,
+'kre' => 1,
+'krf' => 1,
+'krh' => 1,
+'kri' => 1,
+'krj' => 1,
+'krk' => 1,
+'krl' => 1,
+'krm' => 1,
+'krn' => 1,
+'kro' => 1,
+'krp' => 1,
+'krr' => 1,
+'krs' => 1,
+'kru' => 1,
+'krv' => 1,
+'krw' => 1,
+'krx' => 1,
+'kry' => 1,
+'krz' => 1,
+'ksa' => 1,
+'ksb' => 1,
+'ksc' => 1,
+'ksd' => 1,
+'kse' => 1,
+'ksf' => 1,
+'ksg' => 1,
+'ksh' => 1,
+'ksi' => 1,
+'ksj' => 1,
+'ksk' => 1,
+'ksl' => 1,
+'ksm' => 1,
+'ksn' => 1,
+'kso' => 1,
+'ksp' => 1,
+'ksq' => 1,
+'ksr' => 1,
+'kss' => 1,
+'kst' => 1,
+'ksu' => 1,
+'ksv' => 1,
+'ksw' => 1,
+'ksx' => 1,
+'ksy' => 1,
+'ksz' => 1,
+'kta' => 1,
+'ktb' => 1,
+'ktc' => 1,
+'ktd' => 1,
+'kte' => 1,
+'ktf' => 1,
+'ktg' => 1,
+'kth' => 1,
+'kti' => 1,
+'ktj' => 1,
+'ktk' => 1,
+'ktl' => 1,
+'ktm' => 1,
+'ktn' => 1,
+'kto' => 1,
+'ktp' => 1,
+'ktq' => 1,
+'ktr' => 1,
+'kts' => 1,
+'ktt' => 1,
+'ktu' => 1,
+'ktv' => 1,
+'ktw' => 1,
+'ktx' => 1,
+'kty' => 1,
+'ktz' => 1,
+'kub' => 1,
+'kuc' => 1,
+'kud' => 1,
+'kue' => 1,
+'kuf' => 1,
+'kug' => 1,
+'kuh' => 1,
+'kui' => 1,
+'kuj' => 1,
+'kuk' => 1,
+'kul' => 1,
+'kum' => 1,
+'kun' => 1,
+'kuo' => 1,
+'kup' => 1,
+'kuq' => 1,
+'kus' => 1,
+'kut' => 1,
+'kuu' => 1,
+'kuv' => 1,
+'kuw' => 1,
+'kux' => 1,
+'kuy' => 1,
+'kuz' => 1,
+'kva' => 1,
+'kvc' => 1,
+'kvd' => 1,
+'kve' => 1,
+'kvf' => 1,
+'kvg' => 1,
+'kvh' => 1,
+'kvi' => 1,
+'kvj' => 1,
+'kvk' => 1,
+'kvl' => 1,
+'kvm' => 1,
+'kvn' => 1,
+'kvo' => 1,
+'kvp' => 1,
+'kvq' => 1,
+'kvs' => 1,
+'kvt' => 1,
+'kvu' => 1,
+'kvv' => 1,
+'kvw' => 1,
+'kvx' => 1,
+'kvy' => 1,
+'kvz' => 1,
+'kwa' => 1,
+'kwb' => 1,
+'kwc' => 1,
+'kwd' => 1,
+'kwe' => 1,
+'kwf' => 1,
+'kwg' => 1,
+'kwh' => 1,
+'kwi' => 1,
+'kwj' => 1,
+'kwk' => 1,
+'kwl' => 1,
+'kwm' => 1,
+'kwn' => 1,
+'kwo' => 1,
+'kwp' => 1,
+'kwq' => 1,
+'kwr' => 1,
+'kws' => 1,
+'kwt' => 1,
+'kwu' => 1,
+'kwv' => 1,
+'kww' => 1,
+'kwx' => 1,
+'kwz' => 1,
+'kxa' => 1,
+'kxb' => 1,
+'kxc' => 1,
+'kxe' => 1,
+'kxf' => 1,
+'kxh' => 1,
+'kxi' => 1,
+'kxj' => 1,
+'kxk' => 1,
+'kxl' => 1,
+'kxm' => 1,
+'kxn' => 1,
+'kxo' => 1,
+'kxp' => 1,
+'kxq' => 1,
+'kxr' => 1,
+'kxs' => 1,
+'kxt' => 1,
+'kxu' => 1,
+'kxv' => 1,
+'kxw' => 1,
+'kxx' => 1,
+'kxy' => 1,
+'kxz' => 1,
+'kya' => 1,
+'kyb' => 1,
+'kyc' => 1,
+'kyd' => 1,
+'kye' => 1,
+'kyf' => 1,
+'kyg' => 1,
+'kyh' => 1,
+'kyi' => 1,
+'kyj' => 1,
+'kyk' => 1,
+'kyl' => 1,
+'kym' => 1,
+'kyn' => 1,
+'kyo' => 1,
+'kyp' => 1,
+'kyq' => 1,
+'kyr' => 1,
+'kys' => 1,
+'kyt' => 1,
+'kyu' => 1,
+'kyv' => 1,
+'kyw' => 1,
+'kyx' => 1,
+'kyy' => 1,
+'kyz' => 1,
+'kza' => 1,
+'kzb' => 1,
+'kzc' => 1,
+'kzd' => 1,
+'kze' => 1,
+'kzf' => 1,
+'kzg' => 1,
+'kzh' => 1,
+'kzi' => 1,
+'kzj' => 1,
+'kzk' => 1,
+'kzl' => 1,
+'kzm' => 1,
+'kzn' => 1,
+'kzo' => 1,
+'kzp' => 1,
+'kzq' => 1,
+'kzr' => 1,
+'kzs' => 1,
+'kzt' => 1,
+'kzu' => 1,
+'kzv' => 1,
+'kzw' => 1,
+'kzx' => 1,
+'kzy' => 1,
+'kzz' => 1,
+'laa' => 1,
+'lab' => 1,
+'lac' => 1,
+'lad' => 1,
+'lae' => 1,
+'laf' => 1,
+'lag' => 1,
+'lah' => 1,
+'lai' => 1,
+'laj' => 1,
+'lak' => 1,
+'lal' => 1,
+'lam' => 1,
+'lan' => 1,
+'lap' => 1,
+'laq' => 1,
+'lar' => 1,
+'las' => 1,
+'lau' => 1,
+'law' => 1,
+'lax' => 1,
+'lay' => 1,
+'laz' => 1,
+'lba' => 1,
+'lbb' => 1,
+'lbc' => 1,
+'lbe' => 1,
+'lbf' => 1,
+'lbg' => 1,
+'lbi' => 1,
+'lbj' => 1,
+'lbm' => 1,
+'lbn' => 1,
+'lbo' => 1,
+'lbq' => 1,
+'lbr' => 1,
+'lbs' => 1,
+'lbt' => 1,
+'lbu' => 1,
+'lbv' => 1,
+'lbw' => 1,
+'lbx' => 1,
+'lby' => 1,
+'lbz' => 1,
+'lcc' => 1,
+'lcd' => 1,
+'lch' => 1,
+'lcl' => 1,
+'lcm' => 1,
+'lcp' => 1,
+'lcq' => 1,
+'lcs' => 1,
+'ldb' => 1,
+'ldd' => 1,
+'ldg' => 1,
+'ldh' => 1,
+'ldj' => 1,
+'ldk' => 1,
+'ldl' => 1,
+'ldm' => 1,
+'ldn' => 1,
+'ldo' => 1,
+'ldp' => 1,
+'ldq' => 1,
+'lea' => 1,
+'leb' => 1,
+'lec' => 1,
+'led' => 1,
+'lee' => 1,
+'lef' => 1,
+'leg' => 1,
+'leh' => 1,
+'lei' => 1,
+'lej' => 1,
+'lek' => 1,
+'lel' => 1,
+'lem' => 1,
+'len' => 1,
+'leo' => 1,
+'lep' => 1,
+'leq' => 1,
+'ler' => 1,
+'les' => 1,
+'let' => 1,
+'leu' => 1,
+'lev' => 1,
+'lew' => 1,
+'lex' => 1,
+'ley' => 1,
+'lez' => 1,
+'lfa' => 1,
+'lfn' => 1,
+'lga' => 1,
+'lgb' => 1,
+'lgg' => 1,
+'lgh' => 1,
+'lgi' => 1,
+'lgk' => 1,
+'lgl' => 1,
+'lgm' => 1,
+'lgn' => 1,
+'lgq' => 1,
+'lgr' => 1,
+'lgt' => 1,
+'lgu' => 1,
+'lgz' => 1,
+'lha' => 1,
+'lhh' => 1,
+'lhi' => 1,
+'lhl' => 1,
+'lhm' => 1,
+'lhn' => 1,
+'lhp' => 1,
+'lhs' => 1,
+'lht' => 1,
+'lhu' => 1,
+'lia' => 1,
+'lib' => 1,
+'lic' => 1,
+'lid' => 1,
+'lie' => 1,
+'lif' => 1,
+'lig' => 1,
+'lih' => 1,
+'lii' => 1,
+'lij' => 1,
+'lik' => 1,
+'lil' => 1,
+'lio' => 1,
+'lip' => 1,
+'liq' => 1,
+'lir' => 1,
+'lis' => 1,
+'liu' => 1,
+'liv' => 1,
+'lix' => 1,
+'liy' => 1,
+'liz' => 1,
+'lje' => 1,
+'lji' => 1,
+'ljl' => 1,
+'ljp' => 1,
+'lka' => 1,
+'lkc' => 1,
+'lkd' => 1,
+'lke' => 1,
+'lkh' => 1,
+'lki' => 1,
+'lkj' => 1,
+'lkl' => 1,
+'lkn' => 1,
+'lkr' => 1,
+'lkt' => 1,
+'lky' => 1,
+'lla' => 1,
+'llb' => 1,
+'llc' => 1,
+'lld' => 1,
+'lle' => 1,
+'llf' => 1,
+'llg' => 1,
+'llh' => 1,
+'lli' => 1,
+'llk' => 1,
+'lll' => 1,
+'llm' => 1,
+'lln' => 1,
+'llo' => 1,
+'llp' => 1,
+'llq' => 1,
+'lls' => 1,
+'llu' => 1,
+'llx' => 1,
+'lma' => 1,
+'lmb' => 1,
+'lmc' => 1,
+'lmd' => 1,
+'lme' => 1,
+'lmf' => 1,
+'lmg' => 1,
+'lmh' => 1,
+'lmi' => 1,
+'lmj' => 1,
+'lmk' => 1,
+'lml' => 1,
+'lmm' => 1,
+'lmn' => 1,
+'lmo' => 1,
+'lmp' => 1,
+'lmq' => 1,
+'lmr' => 1,
+'lmu' => 1,
+'lmv' => 1,
+'lmw' => 1,
+'lmx' => 1,
+'lmy' => 1,
+'lmz' => 1,
+'lna' => 1,
+'lnb' => 1,
+'lnd' => 1,
+'lng' => 1,
+'lnh' => 1,
+'lni' => 1,
+'lnj' => 1,
+'lnl' => 1,
+'lnm' => 1,
+'lnn' => 1,
+'lno' => 1,
+'lns' => 1,
+'lnu' => 1,
+'lnz' => 1,
+'loa' => 1,
+'lob' => 1,
+'loc' => 1,
+'loe' => 1,
+'lof' => 1,
+'log' => 1,
+'loh' => 1,
+'loi' => 1,
+'loj' => 1,
+'lok' => 1,
+'lol' => 1,
+'lom' => 1,
+'lon' => 1,
+'loo' => 1,
+'lop' => 1,
+'loq' => 1,
+'lor' => 1,
+'los' => 1,
+'lot' => 1,
+'lou' => 1,
+'lov' => 1,
+'low' => 1,
+'lox' => 1,
+'loy' => 1,
+'loz' => 1,
+'lpa' => 1,
+'lpe' => 1,
+'lpn' => 1,
+'lpo' => 1,
+'lpx' => 1,
+'lra' => 1,
+'lrc' => 1,
+'lre' => 1,
+'lrg' => 1,
+'lrk' => 1,
+'lrl' => 1,
+'lrn' => 1,
+'lro' => 1,
+'lrr' => 1,
+'lrt' => 1,
+'lrv' => 1,
+'lrz' => 1,
+'lsa' => 1,
+'lsd' => 1,
+'lse' => 1,
+'lsg' => 1,
+'lsh' => 1,
+'lsi' => 1,
+'lsl' => 1,
+'lso' => 1,
+'lsp' => 1,
+'lsr' => 1,
+'lss' => 1,
+'lst' => 1,
+'ltc' => 1,
+'lti' => 1,
+'ltn' => 1,
+'ltu' => 1,
+'lua' => 1,
+'luc' => 1,
+'lud' => 1,
+'lue' => 1,
+'luf' => 1,
+'lui' => 1,
+'luj' => 1,
+'luk' => 1,
+'lul' => 1,
+'lum' => 1,
+'lun' => 1,
+'luo' => 1,
+'lup' => 1,
+'luq' => 1,
+'lur' => 1,
+'lus' => 1,
+'lut' => 1,
+'luu' => 1,
+'luv' => 1,
+'luw' => 1,
+'luy' => 1,
+'luz' => 1,
+'lva' => 1,
+'lvk' => 1,
+'lvu' => 1,
+'lwa' => 1,
+'lwe' => 1,
+'lwh' => 1,
+'lwl' => 1,
+'lwm' => 1,
+'lwo' => 1,
+'lwt' => 1,
+'lww' => 1,
+'lya' => 1,
+'lyg' => 1,
+'lyn' => 1,
+'lzl' => 1,
+'lzn' => 1,
+'lzz' => 1,
+'maa' => 1,
+'mab' => 1,
+'mad' => 1,
+'mae' => 1,
+'maf' => 1,
+'mag' => 1,
+'mai' => 1,
+'maj' => 1,
+'mak' => 1,
+'mam' => 1,
+'man' => 1,
+'map' => 1,
+'maq' => 1,
+'mas' => 1,
+'mat' => 1,
+'mau' => 1,
+'mav' => 1,
+'maw' => 1,
+'maz' => 1,
+'mba' => 1,
+'mbb' => 1,
+'mbc' => 1,
+'mbd' => 1,
+'mbe' => 1,
+'mbf' => 1,
+'mbh' => 1,
+'mbi' => 1,
+'mbj' => 1,
+'mbk' => 1,
+'mbl' => 1,
+'mbm' => 1,
+'mbn' => 1,
+'mbo' => 1,
+'mbp' => 1,
+'mbq' => 1,
+'mbr' => 1,
+'mbs' => 1,
+'mbt' => 1,
+'mbu' => 1,
+'mbv' => 1,
+'mbw' => 1,
+'mbx' => 1,
+'mby' => 1,
+'mbz' => 1,
+'mca' => 1,
+'mcb' => 1,
+'mcc' => 1,
+'mcd' => 1,
+'mce' => 1,
+'mcf' => 1,
+'mcg' => 1,
+'mch' => 1,
+'mci' => 1,
+'mcj' => 1,
+'mck' => 1,
+'mcl' => 1,
+'mcm' => 1,
+'mcn' => 1,
+'mco' => 1,
+'mcp' => 1,
+'mcq' => 1,
+'mcr' => 1,
+'mcs' => 1,
+'mct' => 1,
+'mcu' => 1,
+'mcv' => 1,
+'mcw' => 1,
+'mcx' => 1,
+'mcy' => 1,
+'mcz' => 1,
+'mda' => 1,
+'mdb' => 1,
+'mdc' => 1,
+'mdd' => 1,
+'mde' => 1,
+'mdf' => 1,
+'mdg' => 1,
+'mdh' => 1,
+'mdi' => 1,
+'mdj' => 1,
+'mdk' => 1,
+'mdl' => 1,
+'mdm' => 1,
+'mdn' => 1,
+'mdp' => 1,
+'mdq' => 1,
+'mdr' => 1,
+'mds' => 1,
+'mdt' => 1,
+'mdu' => 1,
+'mdv' => 1,
+'mdw' => 1,
+'mdx' => 1,
+'mdy' => 1,
+'mdz' => 1,
+'mea' => 1,
+'meb' => 1,
+'mec' => 1,
+'med' => 1,
+'mee' => 1,
+'mef' => 1,
+'meg' => 1,
+'meh' => 1,
+'mei' => 1,
+'mej' => 1,
+'mek' => 1,
+'mel' => 1,
+'mem' => 1,
+'men' => 1,
+'mep' => 1,
+'meq' => 1,
+'mer' => 1,
+'mes' => 1,
+'met' => 1,
+'meu' => 1,
+'mev' => 1,
+'mew' => 1,
+'mey' => 1,
+'mez' => 1,
+'mfc' => 1,
+'mfd' => 1,
+'mfe' => 1,
+'mff' => 1,
+'mfg' => 1,
+'mfh' => 1,
+'mfi' => 1,
+'mfj' => 1,
+'mfk' => 1,
+'mfl' => 1,
+'mfm' => 1,
+'mfn' => 1,
+'mfo' => 1,
+'mfp' => 1,
+'mfq' => 1,
+'mfr' => 1,
+'mfs' => 1,
+'mft' => 1,
+'mfu' => 1,
+'mfv' => 1,
+'mfw' => 1,
+'mfx' => 1,
+'mfy' => 1,
+'mfz' => 1,
+'mga' => 1,
+'mgb' => 1,
+'mgc' => 1,
+'mgd' => 1,
+'mge' => 1,
+'mgf' => 1,
+'mgg' => 1,
+'mgh' => 1,
+'mgi' => 1,
+'mgj' => 1,
+'mgk' => 1,
+'mgl' => 1,
+'mgm' => 1,
+'mgn' => 1,
+'mgo' => 1,
+'mgp' => 1,
+'mgq' => 1,
+'mgr' => 1,
+'mgs' => 1,
+'mgt' => 1,
+'mgu' => 1,
+'mgv' => 1,
+'mgw' => 1,
+'mgx' => 1,
+'mgy' => 1,
+'mgz' => 1,
+'mha' => 1,
+'mhb' => 1,
+'mhc' => 1,
+'mhd' => 1,
+'mhe' => 1,
+'mhf' => 1,
+'mhg' => 1,
+'mhh' => 1,
+'mhi' => 1,
+'mhj' => 1,
+'mhk' => 1,
+'mhl' => 1,
+'mhm' => 1,
+'mhn' => 1,
+'mho' => 1,
+'mhp' => 1,
+'mhq' => 1,
+'mhs' => 1,
+'mht' => 1,
+'mhu' => 1,
+'mhw' => 1,
+'mhx' => 1,
+'mhy' => 1,
+'mhz' => 1,
+'mia' => 1,
+'mib' => 1,
+'mic' => 1,
+'mid' => 1,
+'mie' => 1,
+'mif' => 1,
+'mig' => 1,
+'mih' => 1,
+'mii' => 1,
+'mij' => 1,
+'mik' => 1,
+'mil' => 1,
+'mim' => 1,
+'mio' => 1,
+'mip' => 1,
+'miq' => 1,
+'mir' => 1,
+'mit' => 1,
+'miu' => 1,
+'miw' => 1,
+'mix' => 1,
+'miy' => 1,
+'miz' => 1,
+'mja' => 1,
+'mjc' => 1,
+'mjd' => 1,
+'mje' => 1,
+'mjg' => 1,
+'mjh' => 1,
+'mji' => 1,
+'mjj' => 1,
+'mjk' => 1,
+'mjl' => 1,
+'mjm' => 1,
+'mjn' => 1,
+'mjo' => 1,
+'mjp' => 1,
+'mjq' => 1,
+'mjr' => 1,
+'mjs' => 1,
+'mjt' => 1,
+'mju' => 1,
+'mjv' => 1,
+'mjw' => 1,
+'mjx' => 1,
+'mjy' => 1,
+'mjz' => 1,
+'mka' => 1,
+'mkb' => 1,
+'mkc' => 1,
+'mke' => 1,
+'mkf' => 1,
+'mkg' => 1,
+'mkh' => 1,
+'mki' => 1,
+'mkj' => 1,
+'mkk' => 1,
+'mkl' => 1,
+'mkm' => 1,
+'mkn' => 1,
+'mko' => 1,
+'mkp' => 1,
+'mkq' => 1,
+'mkr' => 1,
+'mks' => 1,
+'mkt' => 1,
+'mkv' => 1,
+'mkw' => 1,
+'mkx' => 1,
+'mky' => 1,
+'mkz' => 1,
+'mla' => 1,
+'mlb' => 1,
+'mlc' => 1,
+'mld' => 1,
+'mle' => 1,
+'mlf' => 1,
+'mlh' => 1,
+'mli' => 1,
+'mlj' => 1,
+'mlk' => 1,
+'mll' => 1,
+'mlm' => 1,
+'mln' => 1,
+'mlo' => 1,
+'mlp' => 1,
+'mlr' => 1,
+'mls' => 1,
+'mlu' => 1,
+'mlv' => 1,
+'mlw' => 1,
+'mlx' => 1,
+'mlz' => 1,
+'mma' => 1,
+'mmb' => 1,
+'mmc' => 1,
+'mmd' => 1,
+'mme' => 1,
+'mmf' => 1,
+'mmg' => 1,
+'mmh' => 1,
+'mmi' => 1,
+'mmj' => 1,
+'mmk' => 1,
+'mml' => 1,
+'mmm' => 1,
+'mmn' => 1,
+'mmo' => 1,
+'mmp' => 1,
+'mmq' => 1,
+'mmt' => 1,
+'mmu' => 1,
+'mmv' => 1,
+'mmw' => 1,
+'mmx' => 1,
+'mmy' => 1,
+'mmz' => 1,
+'mna' => 1,
+'mnb' => 1,
+'mnc' => 1,
+'mnd' => 1,
+'mne' => 1,
+'mnf' => 1,
+'mng' => 1,
+'mnh' => 1,
+'mni' => 1,
+'mnj' => 1,
+'mnl' => 1,
+'mnm' => 1,
+'mnn' => 1,
+'mno' => 1,
+'mnq' => 1,
+'mnr' => 1,
+'mns' => 1,
+'mnt' => 1,
+'mnu' => 1,
+'mnv' => 1,
+'mnw' => 1,
+'mnx' => 1,
+'mny' => 1,
+'mnz' => 1,
+'moa' => 1,
+'moc' => 1,
+'mod' => 1,
+'moe' => 1,
+'mof' => 1,
+'mog' => 1,
+'moh' => 1,
+'moi' => 1,
+'moj' => 1,
+'mok' => 1,
+'mom' => 1,
+'moo' => 1,
+'mop' => 1,
+'moq' => 1,
+'mor' => 1,
+'mos' => 1,
+'mot' => 1,
+'mou' => 1,
+'mov' => 1,
+'mow' => 1,
+'mox' => 1,
+'moy' => 1,
+'moz' => 1,
+'mpa' => 1,
+'mpb' => 1,
+'mpc' => 1,
+'mpd' => 1,
+'mpe' => 1,
+'mpg' => 1,
+'mph' => 1,
+'mpi' => 1,
+'mpj' => 1,
+'mpk' => 1,
+'mpl' => 1,
+'mpm' => 1,
+'mpn' => 1,
+'mpo' => 1,
+'mpp' => 1,
+'mpq' => 1,
+'mpr' => 1,
+'mps' => 1,
+'mpt' => 1,
+'mpu' => 1,
+'mpv' => 1,
+'mpw' => 1,
+'mpx' => 1,
+'mpy' => 1,
+'mpz' => 1,
+'mqa' => 1,
+'mqb' => 1,
+'mqc' => 1,
+'mqe' => 1,
+'mqf' => 1,
+'mqh' => 1,
+'mqi' => 1,
+'mqj' => 1,
+'mqk' => 1,
+'mql' => 1,
+'mqm' => 1,
+'mqn' => 1,
+'mqo' => 1,
+'mqp' => 1,
+'mqq' => 1,
+'mqr' => 1,
+'mqs' => 1,
+'mqt' => 1,
+'mqu' => 1,
+'mqv' => 1,
+'mqw' => 1,
+'mqx' => 1,
+'mqy' => 1,
+'mqz' => 1,
+'mra' => 1,
+'mrb' => 1,
+'mrc' => 1,
+'mrd' => 1,
+'mre' => 1,
+'mrf' => 1,
+'mrg' => 1,
+'mrh' => 1,
+'mrk' => 1,
+'mrl' => 1,
+'mrm' => 1,
+'mrn' => 1,
+'mro' => 1,
+'mrp' => 1,
+'mrq' => 1,
+'mrr' => 1,
+'mrs' => 1,
+'mrt' => 1,
+'mru' => 1,
+'mrv' => 1,
+'mrw' => 1,
+'mrx' => 1,
+'mry' => 1,
+'mrz' => 1,
+'msb' => 1,
+'msd' => 1,
+'mse' => 1,
+'msf' => 1,
+'msg' => 1,
+'msj' => 1,
+'msk' => 1,
+'msl' => 1,
+'msm' => 1,
+'msn' => 1,
+'mso' => 1,
+'msp' => 1,
+'msq' => 1,
+'msr' => 1,
+'mss' => 1,
+'mst' => 1,
+'msu' => 1,
+'msv' => 1,
+'msw' => 1,
+'msx' => 1,
+'msy' => 1,
+'msz' => 1,
+'mta' => 1,
+'mtb' => 1,
+'mtc' => 1,
+'mtd' => 1,
+'mte' => 1,
+'mtf' => 1,
+'mtg' => 1,
+'mth' => 1,
+'mti' => 1,
+'mtj' => 1,
+'mtk' => 1,
+'mtl' => 1,
+'mtm' => 1,
+'mtn' => 1,
+'mto' => 1,
+'mtp' => 1,
+'mtq' => 1,
+'mts' => 1,
+'mtt' => 1,
+'mtu' => 1,
+'mtv' => 1,
+'mtw' => 1,
+'mtx' => 1,
+'mty' => 1,
+'mua' => 1,
+'mub' => 1,
+'muc' => 1,
+'mud' => 1,
+'mue' => 1,
+'mug' => 1,
+'muh' => 1,
+'muj' => 1,
+'muk' => 1,
+'mum' => 1,
+'mun' => 1,
+'muo' => 1,
+'mur' => 1,
+'mus' => 1,
+'mut' => 1,
+'muu' => 1,
+'muv' => 1,
+'mux' => 1,
+'muy' => 1,
+'muz' => 1,
+'mva' => 1,
+'mvb' => 1,
+'mvd' => 1,
+'mvg' => 1,
+'mvh' => 1,
+'mvi' => 1,
+'mvk' => 1,
+'mvl' => 1,
+'mvm' => 1,
+'mvn' => 1,
+'mvo' => 1,
+'mvp' => 1,
+'mvq' => 1,
+'mvr' => 1,
+'mvs' => 1,
+'mvt' => 1,
+'mvu' => 1,
+'mvv' => 1,
+'mvw' => 1,
+'mvx' => 1,
+'mvy' => 1,
+'mvz' => 1,
+'mwa' => 1,
+'mwb' => 1,
+'mwc' => 1,
+'mwd' => 1,
+'mwe' => 1,
+'mwf' => 1,
+'mwg' => 1,
+'mwh' => 1,
+'mwi' => 1,
+'mwj' => 1,
+'mwl' => 1,
+'mwm' => 1,
+'mwn' => 1,
+'mwo' => 1,
+'mwp' => 1,
+'mwq' => 1,
+'mwr' => 1,
+'mws' => 1,
+'mwt' => 1,
+'mwu' => 1,
+'mwv' => 1,
+'mwx' => 1,
+'mwy' => 1,
+'mwz' => 1,
+'mxa' => 1,
+'mxb' => 1,
+'mxc' => 1,
+'mxd' => 1,
+'mxe' => 1,
+'mxf' => 1,
+'mxg' => 1,
+'mxh' => 1,
+'mxi' => 1,
+'mxj' => 1,
+'mxk' => 1,
+'mxl' => 1,
+'mxm' => 1,
+'mxn' => 1,
+'mxo' => 1,
+'mxp' => 1,
+'mxq' => 1,
+'mxr' => 1,
+'mxs' => 1,
+'mxt' => 1,
+'mxu' => 1,
+'mxv' => 1,
+'mxw' => 1,
+'mxx' => 1,
+'mxy' => 1,
+'mxz' => 1,
+'myb' => 1,
+'myc' => 1,
+'myd' => 1,
+'mye' => 1,
+'myf' => 1,
+'myg' => 1,
+'myh' => 1,
+'myi' => 1,
+'myj' => 1,
+'myk' => 1,
+'myl' => 1,
+'mym' => 1,
+'myn' => 1,
+'myo' => 1,
+'myp' => 1,
+'myr' => 1,
+'mys' => 1,
+'myt' => 1,
+'myu' => 1,
+'myv' => 1,
+'myw' => 1,
+'myx' => 1,
+'myy' => 1,
+'myz' => 1,
+'mza' => 1,
+'mzb' => 1,
+'mzc' => 1,
+'mzd' => 1,
+'mze' => 1,
+'mzg' => 1,
+'mzh' => 1,
+'mzi' => 1,
+'mzj' => 1,
+'mzk' => 1,
+'mzl' => 1,
+'mzm' => 1,
+'mzn' => 1,
+'mzo' => 1,
+'mzp' => 1,
+'mzq' => 1,
+'mzr' => 1,
+'mzs' => 1,
+'mzt' => 1,
+'mzu' => 1,
+'mzv' => 1,
+'mzw' => 1,
+'mzx' => 1,
+'mzy' => 1,
+'mzz' => 1,
+'naa' => 1,
+'nab' => 1,
+'nac' => 1,
+'nad' => 1,
+'nae' => 1,
+'naf' => 1,
+'nag' => 1,
+'nah' => 1,
+'nai' => 1,
+'naj' => 1,
+'nak' => 1,
+'nal' => 1,
+'nam' => 1,
+'nao' => 1,
+'nap' => 1,
+'naq' => 1,
+'nar' => 1,
+'nas' => 1,
+'nat' => 1,
+'naw' => 1,
+'nax' => 1,
+'nay' => 1,
+'naz' => 1,
+'nba' => 1,
+'nbb' => 1,
+'nbc' => 1,
+'nbd' => 1,
+'nbe' => 1,
+'nbf' => 1,
+'nbg' => 1,
+'nbh' => 1,
+'nbi' => 1,
+'nbj' => 1,
+'nbk' => 1,
+'nbm' => 1,
+'nbn' => 1,
+'nbo' => 1,
+'nbp' => 1,
+'nbq' => 1,
+'nbr' => 1,
+'nbs' => 1,
+'nbt' => 1,
+'nbu' => 1,
+'nbv' => 1,
+'nbw' => 1,
+'nbx' => 1,
+'nby' => 1,
+'nca' => 1,
+'ncb' => 1,
+'ncc' => 1,
+'ncd' => 1,
+'nce' => 1,
+'ncf' => 1,
+'ncg' => 1,
+'nch' => 1,
+'nci' => 1,
+'ncj' => 1,
+'nck' => 1,
+'ncl' => 1,
+'ncm' => 1,
+'ncn' => 1,
+'nco' => 1,
+'ncp' => 1,
+'ncr' => 1,
+'ncs' => 1,
+'nct' => 1,
+'ncu' => 1,
+'ncx' => 1,
+'ncz' => 1,
+'nda' => 1,
+'ndb' => 1,
+'ndc' => 1,
+'ndd' => 1,
+'ndf' => 1,
+'ndg' => 1,
+'ndh' => 1,
+'ndi' => 1,
+'ndj' => 1,
+'ndk' => 1,
+'ndl' => 1,
+'ndm' => 1,
+'ndn' => 1,
+'ndp' => 1,
+'ndq' => 1,
+'ndr' => 1,
+'nds' => 1,
+'ndt' => 1,
+'ndu' => 1,
+'ndv' => 1,
+'ndw' => 1,
+'ndx' => 1,
+'ndy' => 1,
+'ndz' => 1,
+'nea' => 1,
+'neb' => 1,
+'nec' => 1,
+'ned' => 1,
+'nee' => 1,
+'nef' => 1,
+'neg' => 1,
+'neh' => 1,
+'nei' => 1,
+'nej' => 1,
+'nek' => 1,
+'nem' => 1,
+'nen' => 1,
+'neo' => 1,
+'neq' => 1,
+'ner' => 1,
+'nes' => 1,
+'net' => 1,
+'nev' => 1,
+'new' => 1,
+'nex' => 1,
+'ney' => 1,
+'nez' => 1,
+'nfa' => 1,
+'nfd' => 1,
+'nfl' => 1,
+'nfr' => 1,
+'nfu' => 1,
+'nga' => 1,
+'ngb' => 1,
+'ngc' => 1,
+'ngd' => 1,
+'nge' => 1,
+'ngf' => 1,
+'ngg' => 1,
+'ngh' => 1,
+'ngi' => 1,
+'ngj' => 1,
+'ngk' => 1,
+'ngl' => 1,
+'ngm' => 1,
+'ngn' => 1,
+'ngo' => 1,
+'ngp' => 1,
+'ngq' => 1,
+'ngr' => 1,
+'ngs' => 1,
+'ngt' => 1,
+'ngu' => 1,
+'ngv' => 1,
+'ngw' => 1,
+'ngx' => 1,
+'ngy' => 1,
+'ngz' => 1,
+'nha' => 1,
+'nhb' => 1,
+'nhc' => 1,
+'nhe' => 1,
+'nhf' => 1,
+'nhg' => 1,
+'nhh' => 1,
+'nhi' => 1,
+'nhk' => 1,
+'nhm' => 1,
+'nhn' => 1,
+'nho' => 1,
+'nhp' => 1,
+'nhq' => 1,
+'nhr' => 1,
+'nht' => 1,
+'nhu' => 1,
+'nhv' => 1,
+'nhw' => 1,
+'nhx' => 1,
+'nhy' => 1,
+'nhz' => 1,
+'nia' => 1,
+'nib' => 1,
+'nic' => 1,
+'nid' => 1,
+'nie' => 1,
+'nif' => 1,
+'nig' => 1,
+'nih' => 1,
+'nii' => 1,
+'nij' => 1,
+'nik' => 1,
+'nil' => 1,
+'nim' => 1,
+'nin' => 1,
+'nio' => 1,
+'nir' => 1,
+'nis' => 1,
+'nit' => 1,
+'niu' => 1,
+'niv' => 1,
+'niw' => 1,
+'nix' => 1,
+'niy' => 1,
+'niz' => 1,
+'nja' => 1,
+'njb' => 1,
+'njd' => 1,
+'njh' => 1,
+'nji' => 1,
+'njj' => 1,
+'njl' => 1,
+'njm' => 1,
+'njn' => 1,
+'njo' => 1,
+'njr' => 1,
+'njs' => 1,
+'njt' => 1,
+'nju' => 1,
+'njx' => 1,
+'njy' => 1,
+'nka' => 1,
+'nkb' => 1,
+'nkc' => 1,
+'nkd' => 1,
+'nke' => 1,
+'nkf' => 1,
+'nkg' => 1,
+'nkh' => 1,
+'nki' => 1,
+'nkj' => 1,
+'nkk' => 1,
+'nkm' => 1,
+'nkn' => 1,
+'nko' => 1,
+'nkp' => 1,
+'nkr' => 1,
+'nks' => 1,
+'nkt' => 1,
+'nku' => 1,
+'nkv' => 1,
+'nkw' => 1,
+'nkx' => 1,
+'nkz' => 1,
+'nla' => 1,
+'nlc' => 1,
+'nlg' => 1,
+'nli' => 1,
+'nlj' => 1,
+'nlk' => 1,
+'nll' => 1,
+'nln' => 1,
+'nlo' => 1,
+'nlr' => 1,
+'nlu' => 1,
+'nlv' => 1,
+'nlx' => 1,
+'nly' => 1,
+'nlz' => 1,
+'nma' => 1,
+'nmb' => 1,
+'nmc' => 1,
+'nmd' => 1,
+'nme' => 1,
+'nmf' => 1,
+'nmg' => 1,
+'nmh' => 1,
+'nmi' => 1,
+'nmj' => 1,
+'nmk' => 1,
+'nml' => 1,
+'nmm' => 1,
+'nmn' => 1,
+'nmo' => 1,
+'nmp' => 1,
+'nmq' => 1,
+'nmr' => 1,
+'nms' => 1,
+'nmt' => 1,
+'nmu' => 1,
+'nmv' => 1,
+'nmw' => 1,
+'nmx' => 1,
+'nmy' => 1,
+'nmz' => 1,
+'nna' => 1,
+'nnb' => 1,
+'nnc' => 1,
+'nnd' => 1,
+'nne' => 1,
+'nnf' => 1,
+'nng' => 1,
+'nnh' => 1,
+'nni' => 1,
+'nnj' => 1,
+'nnk' => 1,
+'nnl' => 1,
+'nnm' => 1,
+'nnn' => 1,
+'nnp' => 1,
+'nnq' => 1,
+'nnr' => 1,
+'nns' => 1,
+'nnt' => 1,
+'nnu' => 1,
+'nnv' => 1,
+'nnw' => 1,
+'nnx' => 1,
+'nny' => 1,
+'nnz' => 1,
+'noa' => 1,
+'noc' => 1,
+'nod' => 1,
+'noe' => 1,
+'nof' => 1,
+'nog' => 1,
+'noh' => 1,
+'noi' => 1,
+'nok' => 1,
+'nom' => 1,
+'non' => 1,
+'noo' => 1,
+'nop' => 1,
+'noq' => 1,
+'nos' => 1,
+'not' => 1,
+'nou' => 1,
+'nov' => 1,
+'now' => 1,
+'noy' => 1,
+'noz' => 1,
+'npa' => 1,
+'npb' => 1,
+'nph' => 1,
+'npl' => 1,
+'npn' => 1,
+'npo' => 1,
+'nps' => 1,
+'npu' => 1,
+'npy' => 1,
+'nqg' => 1,
+'nqk' => 1,
+'nqm' => 1,
+'nqn' => 1,
+'nqo' => 1,
+'nra' => 1,
+'nrb' => 1,
+'nrc' => 1,
+'nre' => 1,
+'nrg' => 1,
+'nri' => 1,
+'nrl' => 1,
+'nrm' => 1,
+'nrn' => 1,
+'nrp' => 1,
+'nrr' => 1,
+'nrt' => 1,
+'nrx' => 1,
+'nrz' => 1,
+'nsa' => 1,
+'nsc' => 1,
+'nsd' => 1,
+'nse' => 1,
+'nsg' => 1,
+'nsh' => 1,
+'nsi' => 1,
+'nsk' => 1,
+'nsl' => 1,
+'nsm' => 1,
+'nsn' => 1,
+'nso' => 1,
+'nsp' => 1,
+'nsq' => 1,
+'nsr' => 1,
+'nss' => 1,
+'nst' => 1,
+'nsu' => 1,
+'nsv' => 1,
+'nsw' => 1,
+'nsx' => 1,
+'nsy' => 1,
+'nsz' => 1,
+'nte' => 1,
+'nti' => 1,
+'ntj' => 1,
+'ntk' => 1,
+'ntm' => 1,
+'nto' => 1,
+'ntp' => 1,
+'ntr' => 1,
+'nts' => 1,
+'ntu' => 1,
+'ntw' => 1,
+'nty' => 1,
+'ntz' => 1,
+'nua' => 1,
+'nub' => 1,
+'nuc' => 1,
+'nud' => 1,
+'nue' => 1,
+'nuf' => 1,
+'nug' => 1,
+'nuh' => 1,
+'nui' => 1,
+'nuj' => 1,
+'nul' => 1,
+'num' => 1,
+'nun' => 1,
+'nuo' => 1,
+'nup' => 1,
+'nuq' => 1,
+'nur' => 1,
+'nus' => 1,
+'nut' => 1,
+'nuu' => 1,
+'nuv' => 1,
+'nuw' => 1,
+'nux' => 1,
+'nuy' => 1,
+'nuz' => 1,
+'nvh' => 1,
+'nvm' => 1,
+'nwa' => 1,
+'nwb' => 1,
+'nwc' => 1,
+'nwe' => 1,
+'nwi' => 1,
+'nwm' => 1,
+'nwr' => 1,
+'nwx' => 1,
+'nwy' => 1,
+'nxa' => 1,
+'nxd' => 1,
+'nxe' => 1,
+'nxg' => 1,
+'nxi' => 1,
+'nxl' => 1,
+'nxm' => 1,
+'nxn' => 1,
+'nxr' => 1,
+'nxu' => 1,
+'nxx' => 1,
+'nyb' => 1,
+'nyc' => 1,
+'nye' => 1,
+'nyf' => 1,
+'nyg' => 1,
+'nyh' => 1,
+'nyi' => 1,
+'nyj' => 1,
+'nyk' => 1,
+'nyl' => 1,
+'nym' => 1,
+'nyn' => 1,
+'nyo' => 1,
+'nyp' => 1,
+'nyq' => 1,
+'nyr' => 1,
+'nys' => 1,
+'nyt' => 1,
+'nyu' => 1,
+'nyv' => 1,
+'nyw' => 1,
+'nyx' => 1,
+'nyy' => 1,
+'nza' => 1,
+'nzb' => 1,
+'nzi' => 1,
+'nzk' => 1,
+'nzm' => 1,
+'nzs' => 1,
+'nzu' => 1,
+'nzy' => 1,
+'oaa' => 1,
+'oac' => 1,
+'oar' => 1,
+'oav' => 1,
+'obi' => 1,
+'obl' => 1,
+'obm' => 1,
+'obo' => 1,
+'obr' => 1,
+'obt' => 1,
+'obu' => 1,
+'oca' => 1,
+'och' => 1,
+'oco' => 1,
+'ocu' => 1,
+'oda' => 1,
+'odk' => 1,
+'odt' => 1,
+'odu' => 1,
+'ofo' => 1,
+'ofs' => 1,
+'ofu' => 1,
+'ogb' => 1,
+'ogc' => 1,
+'oge' => 1,
+'ogg' => 1,
+'ogo' => 1,
+'ogu' => 1,
+'oht' => 1,
+'ohu' => 1,
+'oia' => 1,
+'oin' => 1,
+'ojp' => 1,
+'ojv' => 1,
+'oka' => 1,
+'okb' => 1,
+'okd' => 1,
+'oke' => 1,
+'okh' => 1,
+'okj' => 1,
+'okk' => 1,
+'okl' => 1,
+'okm' => 1,
+'okn' => 1,
+'oko' => 1,
+'okr' => 1,
+'oks' => 1,
+'oku' => 1,
+'okv' => 1,
+'okx' => 1,
+'ola' => 1,
+'old' => 1,
+'ole' => 1,
+'olm' => 1,
+'olo' => 1,
+'olr' => 1,
+'oma' => 1,
+'omb' => 1,
+'omc' => 1,
+'ome' => 1,
+'omg' => 1,
+'omi' => 1,
+'omk' => 1,
+'oml' => 1,
+'omn' => 1,
+'omo' => 1,
+'omp' => 1,
+'omq' => 1,
+'omr' => 1,
+'omt' => 1,
+'omu' => 1,
+'omv' => 1,
+'omw' => 1,
+'omx' => 1,
+'ona' => 1,
+'onb' => 1,
+'one' => 1,
+'ong' => 1,
+'oni' => 1,
+'onj' => 1,
+'onk' => 1,
+'onn' => 1,
+'ono' => 1,
+'onp' => 1,
+'onr' => 1,
+'ons' => 1,
+'ont' => 1,
+'onu' => 1,
+'onw' => 1,
+'onx' => 1,
+'ood' => 1,
+'oog' => 1,
+'oon' => 1,
+'oor' => 1,
+'oos' => 1,
+'opa' => 1,
+'opk' => 1,
+'opm' => 1,
+'opo' => 1,
+'opt' => 1,
+'opy' => 1,
+'ora' => 1,
+'ore' => 1,
+'org' => 1,
+'orh' => 1,
+'oro' => 1,
+'orr' => 1,
+'ort' => 1,
+'oru' => 1,
+'orv' => 1,
+'orw' => 1,
+'orx' => 1,
+'orz' => 1,
+'osa' => 1,
+'osc' => 1,
+'osi' => 1,
+'oso' => 1,
+'osp' => 1,
+'ost' => 1,
+'osu' => 1,
+'osx' => 1,
+'ota' => 1,
+'otb' => 1,
+'otd' => 1,
+'ote' => 1,
+'oti' => 1,
+'otk' => 1,
+'otl' => 1,
+'otm' => 1,
+'otn' => 1,
+'oto' => 1,
+'otq' => 1,
+'otr' => 1,
+'ots' => 1,
+'ott' => 1,
+'otu' => 1,
+'otx' => 1,
+'oty' => 1,
+'otz' => 1,
+'oua' => 1,
+'oub' => 1,
+'oue' => 1,
+'oui' => 1,
+'oum' => 1,
+'oun' => 1,
+'owi' => 1,
+'owl' => 1,
+'oyb' => 1,
+'oyd' => 1,
+'oym' => 1,
+'oyy' => 1,
+'ozm' => 1,
+'paa' => 1,
+'pab' => 1,
+'pac' => 1,
+'pad' => 1,
+'pae' => 1,
+'paf' => 1,
+'pag' => 1,
+'pah' => 1,
+'pai' => 1,
+'pak' => 1,
+'pal' => 1,
+'pam' => 1,
+'pao' => 1,
+'pap' => 1,
+'paq' => 1,
+'par' => 1,
+'pas' => 1,
+'pat' => 1,
+'pau' => 1,
+'pav' => 1,
+'paw' => 1,
+'pax' => 1,
+'pay' => 1,
+'paz' => 1,
+'pbb' => 1,
+'pbc' => 1,
+'pbe' => 1,
+'pbf' => 1,
+'pbg' => 1,
+'pbh' => 1,
+'pbi' => 1,
+'pbl' => 1,
+'pbn' => 1,
+'pbo' => 1,
+'pbp' => 1,
+'pbr' => 1,
+'pbs' => 1,
+'pbv' => 1,
+'pby' => 1,
+'pbz' => 1,
+'pca' => 1,
+'pcb' => 1,
+'pcc' => 1,
+'pcd' => 1,
+'pce' => 1,
+'pcf' => 1,
+'pcg' => 1,
+'pch' => 1,
+'pci' => 1,
+'pcj' => 1,
+'pck' => 1,
+'pcl' => 1,
+'pcm' => 1,
+'pcn' => 1,
+'pcp' => 1,
+'pcr' => 1,
+'pcw' => 1,
+'pda' => 1,
+'pdc' => 1,
+'pdi' => 1,
+'pdn' => 1,
+'pdo' => 1,
+'pdt' => 1,
+'pdu' => 1,
+'pea' => 1,
+'peb' => 1,
+'ped' => 1,
+'pee' => 1,
+'pef' => 1,
+'peg' => 1,
+'peh' => 1,
+'pei' => 1,
+'pej' => 1,
+'pek' => 1,
+'pem' => 1,
+'peo' => 1,
+'pep' => 1,
+'peq' => 1,
+'pev' => 1,
+'pex' => 1,
+'pey' => 1,
+'pez' => 1,
+'pfa' => 1,
+'pfe' => 1,
+'pfl' => 1,
+'pgg' => 1,
+'pgi' => 1,
+'pgk' => 1,
+'pgn' => 1,
+'pgs' => 1,
+'pgu' => 1,
+'pgy' => 1,
+'pha' => 1,
+'phd' => 1,
+'phg' => 1,
+'phh' => 1,
+'phi' => 1,
+'phk' => 1,
+'phl' => 1,
+'phm' => 1,
+'phn' => 1,
+'pho' => 1,
+'phq' => 1,
+'pht' => 1,
+'phu' => 1,
+'phv' => 1,
+'phw' => 1,
+'pia' => 1,
+'pib' => 1,
+'pic' => 1,
+'pid' => 1,
+'pie' => 1,
+'pif' => 1,
+'pig' => 1,
+'pih' => 1,
+'pii' => 1,
+'pij' => 1,
+'pil' => 1,
+'pim' => 1,
+'pin' => 1,
+'pio' => 1,
+'pip' => 1,
+'pir' => 1,
+'pis' => 1,
+'pit' => 1,
+'piu' => 1,
+'piv' => 1,
+'piw' => 1,
+'pix' => 1,
+'piy' => 1,
+'piz' => 1,
+'pjt' => 1,
+'pka' => 1,
+'pkb' => 1,
+'pkc' => 1,
+'pkg' => 1,
+'pkh' => 1,
+'pkn' => 1,
+'pkp' => 1,
+'pkr' => 1,
+'pks' => 1,
+'pkt' => 1,
+'pku' => 1,
+'pla' => 1,
+'plb' => 1,
+'plc' => 1,
+'pld' => 1,
+'ple' => 1,
+'plf' => 1,
+'plg' => 1,
+'plh' => 1,
+'plj' => 1,
+'plk' => 1,
+'pll' => 1,
+'pln' => 1,
+'plo' => 1,
+'plp' => 1,
+'plq' => 1,
+'plr' => 1,
+'pls' => 1,
+'plu' => 1,
+'plv' => 1,
+'plw' => 1,
+'ply' => 1,
+'plz' => 1,
+'pma' => 1,
+'pmb' => 1,
+'pmc' => 1,
+'pme' => 1,
+'pmf' => 1,
+'pmh' => 1,
+'pmi' => 1,
+'pmj' => 1,
+'pmk' => 1,
+'pml' => 1,
+'pmm' => 1,
+'pmn' => 1,
+'pmo' => 1,
+'pmq' => 1,
+'pmr' => 1,
+'pms' => 1,
+'pmt' => 1,
+'pmw' => 1,
+'pmx' => 1,
+'pmy' => 1,
+'pmz' => 1,
+'pna' => 1,
+'pnc' => 1,
+'pne' => 1,
+'png' => 1,
+'pnh' => 1,
+'pni' => 1,
+'pnm' => 1,
+'pnn' => 1,
+'pno' => 1,
+'pnp' => 1,
+'pnq' => 1,
+'pnr' => 1,
+'pns' => 1,
+'pnt' => 1,
+'pnu' => 1,
+'pnv' => 1,
+'pnw' => 1,
+'pnx' => 1,
+'pny' => 1,
+'pnz' => 1,
+'poc' => 1,
+'pod' => 1,
+'poe' => 1,
+'pof' => 1,
+'pog' => 1,
+'poh' => 1,
+'poi' => 1,
+'pok' => 1,
+'pom' => 1,
+'pon' => 1,
+'poo' => 1,
+'pop' => 1,
+'poq' => 1,
+'pos' => 1,
+'pot' => 1,
+'pov' => 1,
+'pow' => 1,
+'pox' => 1,
+'poy' => 1,
+'poz' => 1,
+'ppa' => 1,
+'ppe' => 1,
+'ppi' => 1,
+'ppk' => 1,
+'ppl' => 1,
+'ppm' => 1,
+'ppn' => 1,
+'ppo' => 1,
+'ppp' => 1,
+'ppq' => 1,
+'ppr' => 1,
+'pps' => 1,
+'ppt' => 1,
+'ppu' => 1,
+'pqa' => 1,
+'pqe' => 1,
+'pqm' => 1,
+'pqw' => 1,
+'pra' => 1,
+'prb' => 1,
+'prc' => 1,
+'prd' => 1,
+'pre' => 1,
+'prg' => 1,
+'prh' => 1,
+'pri' => 1,
+'prk' => 1,
+'prl' => 1,
+'prm' => 1,
+'prn' => 1,
+'pro' => 1,
+'prp' => 1,
+'prq' => 1,
+'prr' => 1,
+'prt' => 1,
+'pru' => 1,
+'prw' => 1,
+'prx' => 1,
+'pry' => 1,
+'prz' => 1,
+'psa' => 1,
+'psc' => 1,
+'psd' => 1,
+'psg' => 1,
+'psh' => 1,
+'psi' => 1,
+'psl' => 1,
+'psm' => 1,
+'psn' => 1,
+'pso' => 1,
+'psp' => 1,
+'psq' => 1,
+'psr' => 1,
+'pss' => 1,
+'psu' => 1,
+'psw' => 1,
+'psy' => 1,
+'pta' => 1,
+'pth' => 1,
+'pti' => 1,
+'ptn' => 1,
+'pto' => 1,
+'ptp' => 1,
+'ptr' => 1,
+'ptt' => 1,
+'ptu' => 1,
+'ptv' => 1,
+'ptw' => 1,
+'pty' => 1,
+'pua' => 1,
+'pub' => 1,
+'puc' => 1,
+'pud' => 1,
+'pue' => 1,
+'puf' => 1,
+'pug' => 1,
+'pui' => 1,
+'puj' => 1,
+'puk' => 1,
+'pum' => 1,
+'puo' => 1,
+'pup' => 1,
+'puq' => 1,
+'pur' => 1,
+'put' => 1,
+'puu' => 1,
+'puw' => 1,
+'pux' => 1,
+'puy' => 1,
+'puz' => 1,
+'pwa' => 1,
+'pwb' => 1,
+'pwg' => 1,
+'pwm' => 1,
+'pwn' => 1,
+'pwo' => 1,
+'pwr' => 1,
+'pww' => 1,
+'pxm' => 1,
+'pye' => 1,
+'pym' => 1,
+'pyn' => 1,
+'pyu' => 1,
+'pyx' => 1,
+'pyy' => 1,
+'pzn' => 1,
+'qua' => 1,
+'quc' => 1,
+'qui' => 1,
+'qum' => 1,
+'qun' => 1,
+'quq' => 1,
+'quv' => 1,
+'qvy' => 1,
+'qwe' => 1,
+'qwm' => 1,
+'qwt' => 1,
+'qxq' => 1,
+'qxs' => 1,
+'qya' => 1,
+'qyp' => 1,
+'raa' => 1,
+'rab' => 1,
+'rac' => 1,
+'rad' => 1,
+'raf' => 1,
+'rah' => 1,
+'rai' => 1,
+'raj' => 1,
+'rak' => 1,
+'ral' => 1,
+'ram' => 1,
+'ran' => 1,
+'rao' => 1,
+'rap' => 1,
+'raq' => 1,
+'rar' => 1,
+'ras' => 1,
+'rat' => 1,
+'rau' => 1,
+'rav' => 1,
+'raw' => 1,
+'rax' => 1,
+'ray' => 1,
+'raz' => 1,
+'rbb' => 1,
+'rcf' => 1,
+'rdb' => 1,
+'rea' => 1,
+'reb' => 1,
+'ree' => 1,
+'reg' => 1,
+'rei' => 1,
+'rej' => 1,
+'rel' => 1,
+'rem' => 1,
+'ren' => 1,
+'rer' => 1,
+'res' => 1,
+'ret' => 1,
+'rey' => 1,
+'rga' => 1,
+'rge' => 1,
+'rgk' => 1,
+'rgn' => 1,
+'rgr' => 1,
+'rgs' => 1,
+'rgu' => 1,
+'rhg' => 1,
+'rhp' => 1,
+'ria' => 1,
+'rie' => 1,
+'rif' => 1,
+'ril' => 1,
+'rim' => 1,
+'rin' => 1,
+'rir' => 1,
+'rit' => 1,
+'riu' => 1,
+'rjg' => 1,
+'rji' => 1,
+'rjs' => 1,
+'rka' => 1,
+'rkb' => 1,
+'rkh' => 1,
+'rki' => 1,
+'rkm' => 1,
+'rkt' => 1,
+'rma' => 1,
+'rmb' => 1,
+'rmd' => 1,
+'rme' => 1,
+'rmg' => 1,
+'rmh' => 1,
+'rmi' => 1,
+'rmk' => 1,
+'rmm' => 1,
+'rmp' => 1,
+'rmr' => 1,
+'rms' => 1,
+'rmt' => 1,
+'rmu' => 1,
+'rmv' => 1,
+'rmx' => 1,
+'rmz' => 1,
+'rna' => 1,
+'rnd' => 1,
+'rng' => 1,
+'rnl' => 1,
+'rnn' => 1,
+'rnp' => 1,
+'rnw' => 1,
+'roa' => 1,
+'rob' => 1,
+'roc' => 1,
+'rod' => 1,
+'roe' => 1,
+'rof' => 1,
+'rog' => 1,
+'rol' => 1,
+'rom' => 1,
+'roo' => 1,
+'rop' => 1,
+'ror' => 1,
+'rou' => 1,
+'row' => 1,
+'rpn' => 1,
+'rpt' => 1,
+'rri' => 1,
+'rro' => 1,
+'rsb' => 1,
+'rsi' => 1,
+'rsl' => 1,
+'rth' => 1,
+'rtm' => 1,
+'rtw' => 1,
+'rub' => 1,
+'ruc' => 1,
+'rue' => 1,
+'ruf' => 1,
+'rug' => 1,
+'ruh' => 1,
+'rui' => 1,
+'ruk' => 1,
+'ruo' => 1,
+'rup' => 1,
+'ruq' => 1,
+'rut' => 1,
+'ruu' => 1,
+'ruy' => 1,
+'ruz' => 1,
+'rwa' => 1,
+'rwk' => 1,
+'rwm' => 1,
+'rwo' => 1,
+'ryn' => 1,
+'rys' => 1,
+'ryu' => 1,
+'saa' => 1,
+'sab' => 1,
+'sac' => 1,
+'sad' => 1,
+'sae' => 1,
+'saf' => 1,
+'sah' => 1,
+'sai' => 1,
+'saj' => 1,
+'sak' => 1,
+'sal' => 1,
+'sam' => 1,
+'sao' => 1,
+'sap' => 1,
+'saq' => 1,
+'sar' => 1,
+'sas' => 1,
+'sat' => 1,
+'sau' => 1,
+'sav' => 1,
+'saw' => 1,
+'sax' => 1,
+'say' => 1,
+'saz' => 1,
+'sba' => 1,
+'sbb' => 1,
+'sbc' => 1,
+'sbd' => 1,
+'sbe' => 1,
+'sbf' => 1,
+'sbg' => 1,
+'sbh' => 1,
+'sbi' => 1,
+'sbj' => 1,
+'sbk' => 1,
+'sbl' => 1,
+'sbm' => 1,
+'sbn' => 1,
+'sbo' => 1,
+'sbp' => 1,
+'sbq' => 1,
+'sbr' => 1,
+'sbs' => 1,
+'sbt' => 1,
+'sbu' => 1,
+'sbv' => 1,
+'sbw' => 1,
+'sbx' => 1,
+'sby' => 1,
+'sbz' => 1,
+'sca' => 1,
+'scb' => 1,
+'sce' => 1,
+'scf' => 1,
+'scg' => 1,
+'sch' => 1,
+'sci' => 1,
+'sck' => 1,
+'scl' => 1,
+'scn' => 1,
+'sco' => 1,
+'scp' => 1,
+'scq' => 1,
+'scu' => 1,
+'scv' => 1,
+'scw' => 1,
+'scx' => 1,
+'sda' => 1,
+'sdb' => 1,
+'sde' => 1,
+'sdf' => 1,
+'sdg' => 1,
+'sdj' => 1,
+'sdk' => 1,
+'sdl' => 1,
+'sdm' => 1,
+'sdo' => 1,
+'sdp' => 1,
+'sdr' => 1,
+'sds' => 1,
+'sdt' => 1,
+'sdu' => 1,
+'sdv' => 1,
+'sdx' => 1,
+'sdz' => 1,
+'sea' => 1,
+'seb' => 1,
+'sec' => 1,
+'sed' => 1,
+'see' => 1,
+'sef' => 1,
+'seg' => 1,
+'seh' => 1,
+'sei' => 1,
+'sej' => 1,
+'sek' => 1,
+'sel' => 1,
+'sem' => 1,
+'sen' => 1,
+'seo' => 1,
+'sep' => 1,
+'seq' => 1,
+'ser' => 1,
+'ses' => 1,
+'set' => 1,
+'seu' => 1,
+'sev' => 1,
+'sew' => 1,
+'sey' => 1,
+'sez' => 1,
+'sfb' => 1,
+'sfs' => 1,
+'sfw' => 1,
+'sga' => 1,
+'sgb' => 1,
+'sge' => 1,
+'sgg' => 1,
+'sgh' => 1,
+'sgi' => 1,
+'sgk' => 1,
+'sgl' => 1,
+'sgm' => 1,
+'sgn' => 1,
+'sgo' => 1,
+'sgp' => 1,
+'sgr' => 1,
+'sgt' => 1,
+'sgu' => 1,
+'sgw' => 1,
+'sgx' => 1,
+'sgz' => 1,
+'sha' => 1,
+'shb' => 1,
+'shc' => 1,
+'she' => 1,
+'shg' => 1,
+'shh' => 1,
+'shi' => 1,
+'shj' => 1,
+'shk' => 1,
+'shl' => 1,
+'shm' => 1,
+'shn' => 1,
+'sho' => 1,
+'shp' => 1,
+'shq' => 1,
+'shr' => 1,
+'shs' => 1,
+'sht' => 1,
+'shv' => 1,
+'shw' => 1,
+'shx' => 1,
+'shy' => 1,
+'shz' => 1,
+'sia' => 1,
+'sib' => 1,
+'sid' => 1,
+'sie' => 1,
+'sif' => 1,
+'sig' => 1,
+'sih' => 1,
+'sii' => 1,
+'sij' => 1,
+'sik' => 1,
+'sil' => 1,
+'sim' => 1,
+'sio' => 1,
+'sip' => 1,
+'siq' => 1,
+'sir' => 1,
+'sis' => 1,
+'sit' => 1,
+'siu' => 1,
+'siv' => 1,
+'siw' => 1,
+'six' => 1,
+'siy' => 1,
+'siz' => 1,
+'sja' => 1,
+'sjb' => 1,
+'sjd' => 1,
+'sje' => 1,
+'sjg' => 1,
+'sjk' => 1,
+'sjl' => 1,
+'sjm' => 1,
+'sjn' => 1,
+'sjo' => 1,
+'sjp' => 1,
+'sjr' => 1,
+'sjs' => 1,
+'sjt' => 1,
+'sju' => 1,
+'sjw' => 1,
+'ska' => 1,
+'skb' => 1,
+'skc' => 1,
+'skd' => 1,
+'ske' => 1,
+'skf' => 1,
+'skh' => 1,
+'ski' => 1,
+'skj' => 1,
+'skk' => 1,
+'skm' => 1,
+'skn' => 1,
+'sko' => 1,
+'skp' => 1,
+'skq' => 1,
+'sks' => 1,
+'skt' => 1,
+'sku' => 1,
+'skv' => 1,
+'skw' => 1,
+'skx' => 1,
+'sky' => 1,
+'skz' => 1,
+'sla' => 1,
+'slc' => 1,
+'sld' => 1,
+'sle' => 1,
+'slf' => 1,
+'slg' => 1,
+'slh' => 1,
+'sli' => 1,
+'slj' => 1,
+'sll' => 1,
+'slm' => 1,
+'sln' => 1,
+'slp' => 1,
+'slq' => 1,
+'slr' => 1,
+'sls' => 1,
+'slt' => 1,
+'slu' => 1,
+'slw' => 1,
+'slx' => 1,
+'sly' => 1,
+'slz' => 1,
+'sma' => 1,
+'smb' => 1,
+'smc' => 1,
+'smd' => 1,
+'smf' => 1,
+'smg' => 1,
+'smh' => 1,
+'smi' => 1,
+'smj' => 1,
+'smk' => 1,
+'sml' => 1,
+'smm' => 1,
+'smn' => 1,
+'smp' => 1,
+'smq' => 1,
+'smr' => 1,
+'sms' => 1,
+'smt' => 1,
+'smu' => 1,
+'smv' => 1,
+'smw' => 1,
+'smx' => 1,
+'smy' => 1,
+'smz' => 1,
+'snb' => 1,
+'snc' => 1,
+'sne' => 1,
+'snf' => 1,
+'sng' => 1,
+'snh' => 1,
+'sni' => 1,
+'snj' => 1,
+'snk' => 1,
+'snl' => 1,
+'snm' => 1,
+'snn' => 1,
+'sno' => 1,
+'snp' => 1,
+'snq' => 1,
+'snr' => 1,
+'sns' => 1,
+'snu' => 1,
+'snv' => 1,
+'snw' => 1,
+'snx' => 1,
+'sny' => 1,
+'snz' => 1,
+'soa' => 1,
+'sob' => 1,
+'soc' => 1,
+'sod' => 1,
+'soe' => 1,
+'sog' => 1,
+'soh' => 1,
+'soi' => 1,
+'soj' => 1,
+'sok' => 1,
+'sol' => 1,
+'son' => 1,
+'soo' => 1,
+'sop' => 1,
+'soq' => 1,
+'sor' => 1,
+'sos' => 1,
+'sou' => 1,
+'sov' => 1,
+'sow' => 1,
+'sox' => 1,
+'soy' => 1,
+'soz' => 1,
+'spb' => 1,
+'spc' => 1,
+'spd' => 1,
+'spe' => 1,
+'spg' => 1,
+'spi' => 1,
+'spk' => 1,
+'spl' => 1,
+'spm' => 1,
+'spo' => 1,
+'spp' => 1,
+'spq' => 1,
+'spr' => 1,
+'sps' => 1,
+'spt' => 1,
+'spu' => 1,
+'spx' => 1,
+'sqa' => 1,
+'sqh' => 1,
+'sqj' => 1,
+'sqm' => 1,
+'sqn' => 1,
+'sqo' => 1,
+'sqq' => 1,
+'sqr' => 1,
+'sqs' => 1,
+'sqt' => 1,
+'squ' => 1,
+'sra' => 1,
+'srb' => 1,
+'sre' => 1,
+'srf' => 1,
+'srg' => 1,
+'srh' => 1,
+'sri' => 1,
+'srk' => 1,
+'srl' => 1,
+'srm' => 1,
+'srn' => 1,
+'srq' => 1,
+'srr' => 1,
+'srs' => 1,
+'srt' => 1,
+'sru' => 1,
+'srv' => 1,
+'srw' => 1,
+'srx' => 1,
+'sry' => 1,
+'srz' => 1,
+'ssa' => 1,
+'ssb' => 1,
+'ssc' => 1,
+'ssd' => 1,
+'sse' => 1,
+'ssf' => 1,
+'ssg' => 1,
+'ssi' => 1,
+'ssj' => 1,
+'ssk' => 1,
+'ssl' => 1,
+'ssm' => 1,
+'ssn' => 1,
+'sso' => 1,
+'ssp' => 1,
+'ssq' => 1,
+'ssr' => 1,
+'sss' => 1,
+'sst' => 1,
+'ssu' => 1,
+'ssv' => 1,
+'ssx' => 1,
+'ssy' => 1,
+'ssz' => 1,
+'sta' => 1,
+'stb' => 1,
+'std' => 1,
+'ste' => 1,
+'stf' => 1,
+'stg' => 1,
+'sth' => 1,
+'sti' => 1,
+'stj' => 1,
+'stk' => 1,
+'stl' => 1,
+'stm' => 1,
+'stn' => 1,
+'sto' => 1,
+'stp' => 1,
+'stq' => 1,
+'str' => 1,
+'sts' => 1,
+'stt' => 1,
+'stu' => 1,
+'stv' => 1,
+'stw' => 1,
+'sua' => 1,
+'sub' => 1,
+'suc' => 1,
+'sue' => 1,
+'sug' => 1,
+'sui' => 1,
+'suj' => 1,
+'suk' => 1,
+'sul' => 1,
+'sum' => 1,
+'suq' => 1,
+'sur' => 1,
+'sus' => 1,
+'sut' => 1,
+'suv' => 1,
+'suw' => 1,
+'sux' => 1,
+'suy' => 1,
+'suz' => 1,
+'sva' => 1,
+'svb' => 1,
+'svc' => 1,
+'sve' => 1,
+'svk' => 1,
+'svr' => 1,
+'svs' => 1,
+'svx' => 1,
+'swb' => 1,
+'swf' => 1,
+'swg' => 1,
+'swi' => 1,
+'swj' => 1,
+'swk' => 1,
+'swl' => 1,
+'swm' => 1,
+'swn' => 1,
+'swo' => 1,
+'swp' => 1,
+'swq' => 1,
+'swr' => 1,
+'sws' => 1,
+'swt' => 1,
+'swu' => 1,
+'sww' => 1,
+'swx' => 1,
+'swy' => 1,
+'sxb' => 1,
+'sxc' => 1,
+'sxe' => 1,
+'sxg' => 1,
+'sxk' => 1,
+'sxl' => 1,
+'sxm' => 1,
+'sxn' => 1,
+'sxo' => 1,
+'sxr' => 1,
+'sxs' => 1,
+'sxu' => 1,
+'sxw' => 1,
+'sya' => 1,
+'syb' => 1,
+'syc' => 1,
+'syd' => 1,
+'syi' => 1,
+'syk' => 1,
+'syl' => 1,
+'sym' => 1,
+'syn' => 1,
+'syo' => 1,
+'syr' => 1,
+'sys' => 1,
+'syw' => 1,
+'syy' => 1,
+'sza' => 1,
+'szb' => 1,
+'szc' => 1,
+'szd' => 1,
+'sze' => 1,
+'szg' => 1,
+'szl' => 1,
+'szn' => 1,
+'szp' => 1,
+'szv' => 1,
+'szw' => 1,
+'taa' => 1,
+'tab' => 1,
+'tac' => 1,
+'tad' => 1,
+'tae' => 1,
+'taf' => 1,
+'tag' => 1,
+'tai' => 1,
+'taj' => 1,
+'tak' => 1,
+'tal' => 1,
+'tan' => 1,
+'tao' => 1,
+'tap' => 1,
+'tar' => 1,
+'tas' => 1,
+'tau' => 1,
+'tav' => 1,
+'taw' => 1,
+'tax' => 1,
+'tay' => 1,
+'taz' => 1,
+'tba' => 1,
+'tbb' => 1,
+'tbc' => 1,
+'tbd' => 1,
+'tbe' => 1,
+'tbf' => 1,
+'tbg' => 1,
+'tbh' => 1,
+'tbi' => 1,
+'tbj' => 1,
+'tbk' => 1,
+'tbl' => 1,
+'tbm' => 1,
+'tbn' => 1,
+'tbo' => 1,
+'tbp' => 1,
+'tbq' => 1,
+'tbr' => 1,
+'tbs' => 1,
+'tbt' => 1,
+'tbu' => 1,
+'tbv' => 1,
+'tbw' => 1,
+'tbx' => 1,
+'tby' => 1,
+'tbz' => 1,
+'tca' => 1,
+'tcb' => 1,
+'tcc' => 1,
+'tcd' => 1,
+'tce' => 1,
+'tcf' => 1,
+'tcg' => 1,
+'tch' => 1,
+'tci' => 1,
+'tck' => 1,
+'tcl' => 1,
+'tcm' => 1,
+'tcn' => 1,
+'tco' => 1,
+'tcp' => 1,
+'tcq' => 1,
+'tcs' => 1,
+'tct' => 1,
+'tcu' => 1,
+'tcw' => 1,
+'tcx' => 1,
+'tcy' => 1,
+'tcz' => 1,
+'tda' => 1,
+'tdb' => 1,
+'tdc' => 1,
+'tdd' => 1,
+'tdf' => 1,
+'tdg' => 1,
+'tdh' => 1,
+'tdi' => 1,
+'tdj' => 1,
+'tdk' => 1,
+'tdl' => 1,
+'tdn' => 1,
+'tdo' => 1,
+'tdq' => 1,
+'tdr' => 1,
+'tds' => 1,
+'tdt' => 1,
+'tdu' => 1,
+'tdv' => 1,
+'tdy' => 1,
+'tea' => 1,
+'teb' => 1,
+'ted' => 1,
+'tee' => 1,
+'tef' => 1,
+'teg' => 1,
+'teh' => 1,
+'tei' => 1,
+'tek' => 1,
+'tem' => 1,
+'ten' => 1,
+'teo' => 1,
+'tep' => 1,
+'teq' => 1,
+'ter' => 1,
+'tes' => 1,
+'tet' => 1,
+'teu' => 1,
+'tev' => 1,
+'tew' => 1,
+'tex' => 1,
+'tey' => 1,
+'tfi' => 1,
+'tfn' => 1,
+'tfo' => 1,
+'tfr' => 1,
+'tft' => 1,
+'tga' => 1,
+'tgb' => 1,
+'tgc' => 1,
+'tgd' => 1,
+'tge' => 1,
+'tgf' => 1,
+'tgg' => 1,
+'tgh' => 1,
+'tgi' => 1,
+'tgo' => 1,
+'tgp' => 1,
+'tgq' => 1,
+'tgr' => 1,
+'tgs' => 1,
+'tgt' => 1,
+'tgu' => 1,
+'tgv' => 1,
+'tgw' => 1,
+'tgx' => 1,
+'tgy' => 1,
+'thc' => 1,
+'thd' => 1,
+'the' => 1,
+'thf' => 1,
+'thh' => 1,
+'thi' => 1,
+'thk' => 1,
+'thl' => 1,
+'thm' => 1,
+'thn' => 1,
+'thp' => 1,
+'thq' => 1,
+'thr' => 1,
+'ths' => 1,
+'tht' => 1,
+'thu' => 1,
+'thw' => 1,
+'thx' => 1,
+'thy' => 1,
+'tia' => 1,
+'tic' => 1,
+'tid' => 1,
+'tie' => 1,
+'tif' => 1,
+'tig' => 1,
+'tih' => 1,
+'tii' => 1,
+'tij' => 1,
+'tik' => 1,
+'til' => 1,
+'tim' => 1,
+'tin' => 1,
+'tio' => 1,
+'tip' => 1,
+'tiq' => 1,
+'tis' => 1,
+'tit' => 1,
+'tiu' => 1,
+'tiv' => 1,
+'tiw' => 1,
+'tix' => 1,
+'tiy' => 1,
+'tiz' => 1,
+'tja' => 1,
+'tjg' => 1,
+'tji' => 1,
+'tjm' => 1,
+'tjn' => 1,
+'tjo' => 1,
+'tjs' => 1,
+'tju' => 1,
+'tka' => 1,
+'tkb' => 1,
+'tkd' => 1,
+'tke' => 1,
+'tkf' => 1,
+'tkk' => 1,
+'tkl' => 1,
+'tkm' => 1,
+'tkn' => 1,
+'tkp' => 1,
+'tkq' => 1,
+'tkr' => 1,
+'tks' => 1,
+'tkt' => 1,
+'tku' => 1,
+'tkw' => 1,
+'tkx' => 1,
+'tkz' => 1,
+'tla' => 1,
+'tlb' => 1,
+'tlc' => 1,
+'tld' => 1,
+'tlf' => 1,
+'tlg' => 1,
+'tlh' => 1,
+'tli' => 1,
+'tlj' => 1,
+'tlk' => 1,
+'tll' => 1,
+'tlm' => 1,
+'tln' => 1,
+'tlo' => 1,
+'tlp' => 1,
+'tlq' => 1,
+'tlr' => 1,
+'tls' => 1,
+'tlt' => 1,
+'tlu' => 1,
+'tlv' => 1,
+'tlw' => 1,
+'tlx' => 1,
+'tly' => 1,
+'tma' => 1,
+'tmb' => 1,
+'tmc' => 1,
+'tmd' => 1,
+'tme' => 1,
+'tmf' => 1,
+'tmg' => 1,
+'tmh' => 1,
+'tmi' => 1,
+'tmj' => 1,
+'tmk' => 1,
+'tml' => 1,
+'tmm' => 1,
+'tmn' => 1,
+'tmo' => 1,
+'tmp' => 1,
+'tmq' => 1,
+'tmr' => 1,
+'tms' => 1,
+'tmt' => 1,
+'tmu' => 1,
+'tmv' => 1,
+'tmy' => 1,
+'tmz' => 1,
+'tna' => 1,
+'tnb' => 1,
+'tnc' => 1,
+'tnd' => 1,
+'tne' => 1,
+'tnf' => 1,
+'tng' => 1,
+'tnh' => 1,
+'tni' => 1,
+'tnk' => 1,
+'tnl' => 1,
+'tnm' => 1,
+'tnn' => 1,
+'tno' => 1,
+'tnp' => 1,
+'tnq' => 1,
+'tnr' => 1,
+'tns' => 1,
+'tnt' => 1,
+'tnu' => 1,
+'tnv' => 1,
+'tnw' => 1,
+'tnx' => 1,
+'tny' => 1,
+'tnz' => 1,
+'tob' => 1,
+'toc' => 1,
+'tod' => 1,
+'toe' => 1,
+'tof' => 1,
+'tog' => 1,
+'toh' => 1,
+'toi' => 1,
+'toj' => 1,
+'tol' => 1,
+'tom' => 1,
+'too' => 1,
+'top' => 1,
+'toq' => 1,
+'tor' => 1,
+'tos' => 1,
+'tou' => 1,
+'tov' => 1,
+'tow' => 1,
+'tox' => 1,
+'toy' => 1,
+'toz' => 1,
+'tpa' => 1,
+'tpc' => 1,
+'tpe' => 1,
+'tpf' => 1,
+'tpg' => 1,
+'tpi' => 1,
+'tpj' => 1,
+'tpk' => 1,
+'tpl' => 1,
+'tpm' => 1,
+'tpn' => 1,
+'tpo' => 1,
+'tpp' => 1,
+'tpq' => 1,
+'tpr' => 1,
+'tpt' => 1,
+'tpu' => 1,
+'tpv' => 1,
+'tpw' => 1,
+'tpx' => 1,
+'tpy' => 1,
+'tpz' => 1,
+'tqb' => 1,
+'tql' => 1,
+'tqm' => 1,
+'tqn' => 1,
+'tqo' => 1,
+'tqp' => 1,
+'tqq' => 1,
+'tqr' => 1,
+'tqt' => 1,
+'tqu' => 1,
+'tqw' => 1,
+'tra' => 1,
+'trb' => 1,
+'trc' => 1,
+'trd' => 1,
+'tre' => 1,
+'trf' => 1,
+'trg' => 1,
+'trh' => 1,
+'tri' => 1,
+'trj' => 1,
+'trk' => 1,
+'trl' => 1,
+'trm' => 1,
+'trn' => 1,
+'tro' => 1,
+'trp' => 1,
+'trq' => 1,
+'trr' => 1,
+'trs' => 1,
+'trt' => 1,
+'tru' => 1,
+'trv' => 1,
+'trw' => 1,
+'trx' => 1,
+'try' => 1,
+'trz' => 1,
+'tsa' => 1,
+'tsb' => 1,
+'tsc' => 1,
+'tsd' => 1,
+'tse' => 1,
+'tsf' => 1,
+'tsg' => 1,
+'tsh' => 1,
+'tsi' => 1,
+'tsj' => 1,
+'tsk' => 1,
+'tsl' => 1,
+'tsm' => 1,
+'tsp' => 1,
+'tsq' => 1,
+'tsr' => 1,
+'tss' => 1,
+'tsu' => 1,
+'tsv' => 1,
+'tsw' => 1,
+'tsx' => 1,
+'tsy' => 1,
+'tsz' => 1,
+'tta' => 1,
+'ttb' => 1,
+'ttc' => 1,
+'ttd' => 1,
+'tte' => 1,
+'ttf' => 1,
+'ttg' => 1,
+'tth' => 1,
+'tti' => 1,
+'ttj' => 1,
+'ttk' => 1,
+'ttl' => 1,
+'ttm' => 1,
+'ttn' => 1,
+'tto' => 1,
+'ttp' => 1,
+'ttr' => 1,
+'tts' => 1,
+'ttt' => 1,
+'ttu' => 1,
+'ttv' => 1,
+'ttw' => 1,
+'tty' => 1,
+'ttz' => 1,
+'tua' => 1,
+'tub' => 1,
+'tuc' => 1,
+'tud' => 1,
+'tue' => 1,
+'tuf' => 1,
+'tug' => 1,
+'tuh' => 1,
+'tui' => 1,
+'tuj' => 1,
+'tul' => 1,
+'tum' => 1,
+'tun' => 1,
+'tuo' => 1,
+'tup' => 1,
+'tuq' => 1,
+'tus' => 1,
+'tut' => 1,
+'tuu' => 1,
+'tuv' => 1,
+'tuw' => 1,
+'tux' => 1,
+'tuz' => 1,
+'tva' => 1,
+'tvd' => 1,
+'tve' => 1,
+'tvk' => 1,
+'tvl' => 1,
+'tvm' => 1,
+'tvn' => 1,
+'tvo' => 1,
+'tvs' => 1,
+'tvt' => 1,
+'tvw' => 1,
+'tvy' => 1,
+'twa' => 1,
+'twb' => 1,
+'twc' => 1,
+'twd' => 1,
+'twe' => 1,
+'twf' => 1,
+'twg' => 1,
+'twh' => 1,
+'twl' => 1,
+'twm' => 1,
+'twn' => 1,
+'two' => 1,
+'twp' => 1,
+'twq' => 1,
+'twr' => 1,
+'twt' => 1,
+'twu' => 1,
+'tww' => 1,
+'twx' => 1,
+'twy' => 1,
+'txa' => 1,
+'txb' => 1,
+'txc' => 1,
+'txe' => 1,
+'txg' => 1,
+'txh' => 1,
+'txi' => 1,
+'txm' => 1,
+'txn' => 1,
+'txo' => 1,
+'txq' => 1,
+'txr' => 1,
+'txs' => 1,
+'txt' => 1,
+'txu' => 1,
+'txx' => 1,
+'tya' => 1,
+'tye' => 1,
+'tyh' => 1,
+'tyi' => 1,
+'tyj' => 1,
+'tyl' => 1,
+'tyn' => 1,
+'typ' => 1,
+'tyr' => 1,
+'tys' => 1,
+'tyt' => 1,
+'tyu' => 1,
+'tyv' => 1,
+'tyx' => 1,
+'tyz' => 1,
+'tza' => 1,
+'tzh' => 1,
+'tzj' => 1,
+'tzm' => 1,
+'tzn' => 1,
+'tzo' => 1,
+'tzx' => 1,
+'uam' => 1,
+'uan' => 1,
+'uar' => 1,
+'uba' => 1,
+'ubi' => 1,
+'ubr' => 1,
+'ubu' => 1,
+'uby' => 1,
+'uda' => 1,
+'ude' => 1,
+'udg' => 1,
+'udi' => 1,
+'udj' => 1,
+'udl' => 1,
+'udm' => 1,
+'udu' => 1,
+'ues' => 1,
+'ufi' => 1,
+'uga' => 1,
+'ugb' => 1,
+'uge' => 1,
+'ugn' => 1,
+'ugo' => 1,
+'ugy' => 1,
+'uha' => 1,
+'uhn' => 1,
+'uis' => 1,
+'uiv' => 1,
+'uji' => 1,
+'uka' => 1,
+'ukg' => 1,
+'ukh' => 1,
+'ukl' => 1,
+'ukp' => 1,
+'ukq' => 1,
+'uks' => 1,
+'uku' => 1,
+'ukw' => 1,
+'ula' => 1,
+'ulb' => 1,
+'ulc' => 1,
+'ulf' => 1,
+'uli' => 1,
+'ulk' => 1,
+'ull' => 1,
+'ulm' => 1,
+'uln' => 1,
+'ulu' => 1,
+'uma' => 1,
+'umb' => 1,
+'umc' => 1,
+'umd' => 1,
+'umg' => 1,
+'umi' => 1,
+'umm' => 1,
+'umn' => 1,
+'umo' => 1,
+'ump' => 1,
+'umr' => 1,
+'ums' => 1,
+'una' => 1,
+'une' => 1,
+'ung' => 1,
+'unk' => 1,
+'unp' => 1,
+'unr' => 1,
+'unx' => 1,
+'unz' => 1,
+'uok' => 1,
+'upi' => 1,
+'upv' => 1,
+'ura' => 1,
+'urb' => 1,
+'urc' => 1,
+'ure' => 1,
+'urf' => 1,
+'urg' => 1,
+'urh' => 1,
+'uri' => 1,
+'urj' => 1,
+'url' => 1,
+'urm' => 1,
+'urn' => 1,
+'uro' => 1,
+'urp' => 1,
+'urr' => 1,
+'urt' => 1,
+'uru' => 1,
+'urv' => 1,
+'urw' => 1,
+'urx' => 1,
+'ury' => 1,
+'urz' => 1,
+'usa' => 1,
+'ush' => 1,
+'usi' => 1,
+'usk' => 1,
+'usp' => 1,
+'usu' => 1,
+'uta' => 1,
+'ute' => 1,
+'utp' => 1,
+'utr' => 1,
+'utu' => 1,
+'uum' => 1,
+'uun' => 1,
+'uur' => 1,
+'uuu' => 1,
+'uve' => 1,
+'uvh' => 1,
+'uvl' => 1,
+'uwa' => 1,
+'uya' => 1,
+'vaa' => 1,
+'vae' => 1,
+'vaf' => 1,
+'vag' => 1,
+'vah' => 1,
+'vai' => 1,
+'vaj' => 1,
+'val' => 1,
+'vam' => 1,
+'van' => 1,
+'vao' => 1,
+'vap' => 1,
+'var' => 1,
+'vas' => 1,
+'vau' => 1,
+'vav' => 1,
+'vay' => 1,
+'vbb' => 1,
+'vec' => 1,
+'ved' => 1,
+'vel' => 1,
+'vem' => 1,
+'veo' => 1,
+'vep' => 1,
+'ver' => 1,
+'vgr' => 1,
+'vgt' => 1,
+'vic' => 1,
+'vid' => 1,
+'vif' => 1,
+'vig' => 1,
+'vil' => 1,
+'vin' => 1,
+'vis' => 1,
+'vit' => 1,
+'viv' => 1,
+'vka' => 1,
+'vki' => 1,
+'vkj' => 1,
+'vkl' => 1,
+'vkm' => 1,
+'vko' => 1,
+'vkp' => 1,
+'vku' => 1,
+'vlp' => 1,
+'vls' => 1,
+'vma' => 1,
+'vmb' => 1,
+'vmc' => 1,
+'vmd' => 1,
+'vme' => 1,
+'vmf' => 1,
+'vmg' => 1,
+'vmh' => 1,
+'vmi' => 1,
+'vmj' => 1,
+'vmk' => 1,
+'vml' => 1,
+'vmm' => 1,
+'vmp' => 1,
+'vmq' => 1,
+'vmr' => 1,
+'vms' => 1,
+'vmu' => 1,
+'vmv' => 1,
+'vmw' => 1,
+'vmx' => 1,
+'vmy' => 1,
+'vmz' => 1,
+'vnk' => 1,
+'vnm' => 1,
+'vnp' => 1,
+'vor' => 1,
+'vot' => 1,
+'vra' => 1,
+'vrs' => 1,
+'vrt' => 1,
+'vsi' => 1,
+'vsl' => 1,
+'vsv' => 1,
+'vto' => 1,
+'vum' => 1,
+'vun' => 1,
+'vut' => 1,
+'vwa' => 1,
+'waa' => 1,
+'wab' => 1,
+'wac' => 1,
+'wad' => 1,
+'wae' => 1,
+'waf' => 1,
+'wag' => 1,
+'wah' => 1,
+'wai' => 1,
+'waj' => 1,
+'wak' => 1,
+'wal' => 1,
+'wam' => 1,
+'wan' => 1,
+'wao' => 1,
+'wap' => 1,
+'waq' => 1,
+'war' => 1,
+'was' => 1,
+'wat' => 1,
+'wau' => 1,
+'wav' => 1,
+'waw' => 1,
+'wax' => 1,
+'way' => 1,
+'waz' => 1,
+'wba' => 1,
+'wbb' => 1,
+'wbe' => 1,
+'wbf' => 1,
+'wbh' => 1,
+'wbi' => 1,
+'wbj' => 1,
+'wbk' => 1,
+'wbl' => 1,
+'wbm' => 1,
+'wbp' => 1,
+'wbq' => 1,
+'wbt' => 1,
+'wbv' => 1,
+'wbw' => 1,
+'wca' => 1,
+'wci' => 1,
+'wdd' => 1,
+'wdg' => 1,
+'wdj' => 1,
+'wdu' => 1,
+'wea' => 1,
+'wec' => 1,
+'wed' => 1,
+'weh' => 1,
+'wei' => 1,
+'wem' => 1,
+'wen' => 1,
+'weo' => 1,
+'wep' => 1,
+'wer' => 1,
+'wes' => 1,
+'wet' => 1,
+'weu' => 1,
+'wew' => 1,
+'wfg' => 1,
+'wga' => 1,
+'wgg' => 1,
+'wgi' => 1,
+'wgo' => 1,
+'wgw' => 1,
+'wgy' => 1,
+'wha' => 1,
+'whg' => 1,
+'whk' => 1,
+'whu' => 1,
+'wib' => 1,
+'wic' => 1,
+'wie' => 1,
+'wif' => 1,
+'wig' => 1,
+'wih' => 1,
+'wii' => 1,
+'wij' => 1,
+'wik' => 1,
+'wil' => 1,
+'wim' => 1,
+'win' => 1,
+'wir' => 1,
+'wit' => 1,
+'wiu' => 1,
+'wiv' => 1,
+'wiw' => 1,
+'wiy' => 1,
+'wja' => 1,
+'wji' => 1,
+'wka' => 1,
+'wkb' => 1,
+'wkd' => 1,
+'wkl' => 1,
+'wku' => 1,
+'wkw' => 1,
+'wla' => 1,
+'wlc' => 1,
+'wle' => 1,
+'wlg' => 1,
+'wli' => 1,
+'wlk' => 1,
+'wll' => 1,
+'wlm' => 1,
+'wlo' => 1,
+'wlr' => 1,
+'wls' => 1,
+'wlu' => 1,
+'wlv' => 1,
+'wlw' => 1,
+'wlx' => 1,
+'wly' => 1,
+'wma' => 1,
+'wmb' => 1,
+'wmc' => 1,
+'wmd' => 1,
+'wme' => 1,
+'wmh' => 1,
+'wmi' => 1,
+'wmm' => 1,
+'wmn' => 1,
+'wmo' => 1,
+'wms' => 1,
+'wmt' => 1,
+'wmw' => 1,
+'wmx' => 1,
+'wnb' => 1,
+'wnc' => 1,
+'wnd' => 1,
+'wne' => 1,
+'wng' => 1,
+'wni' => 1,
+'wnk' => 1,
+'wnm' => 1,
+'wno' => 1,
+'wnp' => 1,
+'wnu' => 1,
+'woa' => 1,
+'wob' => 1,
+'woc' => 1,
+'wod' => 1,
+'woe' => 1,
+'wof' => 1,
+'wog' => 1,
+'woi' => 1,
+'wok' => 1,
+'wom' => 1,
+'won' => 1,
+'woo' => 1,
+'wor' => 1,
+'wos' => 1,
+'wow' => 1,
+'woy' => 1,
+'wpc' => 1,
+'wra' => 1,
+'wrb' => 1,
+'wrd' => 1,
+'wrg' => 1,
+'wrh' => 1,
+'wri' => 1,
+'wrl' => 1,
+'wrm' => 1,
+'wrn' => 1,
+'wrp' => 1,
+'wrr' => 1,
+'wrs' => 1,
+'wru' => 1,
+'wrv' => 1,
+'wrw' => 1,
+'wrx' => 1,
+'wrz' => 1,
+'wsa' => 1,
+'wsi' => 1,
+'wsk' => 1,
+'wsr' => 1,
+'wss' => 1,
+'wsu' => 1,
+'wsv' => 1,
+'wtf' => 1,
+'wti' => 1,
+'wtk' => 1,
+'wtm' => 1,
+'wtw' => 1,
+'wua' => 1,
+'wub' => 1,
+'wud' => 1,
+'wuh' => 1,
+'wul' => 1,
+'wum' => 1,
+'wun' => 1,
+'wur' => 1,
+'wut' => 1,
+'wuv' => 1,
+'wux' => 1,
+'wuy' => 1,
+'wwa' => 1,
+'wwo' => 1,
+'wwr' => 1,
+'www' => 1,
+'wxa' => 1,
+'wya' => 1,
+'wyb' => 1,
+'wym' => 1,
+'wyr' => 1,
+'wyy' => 1,
+'xaa' => 1,
+'xab' => 1,
+'xac' => 1,
+'xad' => 1,
+'xae' => 1,
+'xag' => 1,
+'xai' => 1,
+'xal' => 1,
+'xam' => 1,
+'xan' => 1,
+'xao' => 1,
+'xap' => 1,
+'xaq' => 1,
+'xar' => 1,
+'xas' => 1,
+'xat' => 1,
+'xau' => 1,
+'xav' => 1,
+'xaw' => 1,
+'xay' => 1,
+'xba' => 1,
+'xbc' => 1,
+'xbi' => 1,
+'xbm' => 1,
+'xbo' => 1,
+'xbr' => 1,
+'xbw' => 1,
+'xbx' => 1,
+'xcb' => 1,
+'xcc' => 1,
+'xce' => 1,
+'xcg' => 1,
+'xch' => 1,
+'xcl' => 1,
+'xcm' => 1,
+'xcn' => 1,
+'xco' => 1,
+'xcr' => 1,
+'xct' => 1,
+'xcu' => 1,
+'xcv' => 1,
+'xcw' => 1,
+'xcy' => 1,
+'xdc' => 1,
+'xdm' => 1,
+'xdy' => 1,
+'xeb' => 1,
+'xed' => 1,
+'xeg' => 1,
+'xel' => 1,
+'xem' => 1,
+'xep' => 1,
+'xer' => 1,
+'xes' => 1,
+'xet' => 1,
+'xeu' => 1,
+'xfa' => 1,
+'xga' => 1,
+'xgf' => 1,
+'xgl' => 1,
+'xgn' => 1,
+'xgr' => 1,
+'xha' => 1,
+'xhc' => 1,
+'xhd' => 1,
+'xhr' => 1,
+'xht' => 1,
+'xhu' => 1,
+'xhv' => 1,
+'xia' => 1,
+'xib' => 1,
+'xii' => 1,
+'xil' => 1,
+'xin' => 1,
+'xip' => 1,
+'xir' => 1,
+'xiv' => 1,
+'xiy' => 1,
+'xka' => 1,
+'xkb' => 1,
+'xkc' => 1,
+'xkd' => 1,
+'xke' => 1,
+'xkf' => 1,
+'xkg' => 1,
+'xkh' => 1,
+'xki' => 1,
+'xkj' => 1,
+'xkk' => 1,
+'xkl' => 1,
+'xkn' => 1,
+'xko' => 1,
+'xkp' => 1,
+'xkq' => 1,
+'xkr' => 1,
+'xks' => 1,
+'xkt' => 1,
+'xku' => 1,
+'xkv' => 1,
+'xkw' => 1,
+'xkx' => 1,
+'xky' => 1,
+'xkz' => 1,
+'xla' => 1,
+'xlb' => 1,
+'xlc' => 1,
+'xld' => 1,
+'xle' => 1,
+'xlg' => 1,
+'xli' => 1,
+'xln' => 1,
+'xlo' => 1,
+'xlp' => 1,
+'xls' => 1,
+'xlu' => 1,
+'xly' => 1,
+'xma' => 1,
+'xmb' => 1,
+'xmc' => 1,
+'xmd' => 1,
+'xme' => 1,
+'xmf' => 1,
+'xmg' => 1,
+'xmh' => 1,
+'xmj' => 1,
+'xmk' => 1,
+'xml' => 1,
+'xmn' => 1,
+'xmo' => 1,
+'xmp' => 1,
+'xmq' => 1,
+'xmr' => 1,
+'xms' => 1,
+'xmt' => 1,
+'xmu' => 1,
+'xmx' => 1,
+'xmy' => 1,
+'xmz' => 1,
+'xna' => 1,
+'xnb' => 1,
+'xnd' => 1,
+'xng' => 1,
+'xnh' => 1,
+'xnn' => 1,
+'xno' => 1,
+'xns' => 1,
+'xoc' => 1,
+'xod' => 1,
+'xog' => 1,
+'xoi' => 1,
+'xok' => 1,
+'xom' => 1,
+'xon' => 1,
+'xoo' => 1,
+'xop' => 1,
+'xor' => 1,
+'xow' => 1,
+'xpc' => 1,
+'xpg' => 1,
+'xpi' => 1,
+'xpk' => 1,
+'xpm' => 1,
+'xpn' => 1,
+'xpo' => 1,
+'xpp' => 1,
+'xpr' => 1,
+'xps' => 1,
+'xpu' => 1,
+'xpy' => 1,
+'xqa' => 1,
+'xqt' => 1,
+'xra' => 1,
+'xrb' => 1,
+'xre' => 1,
+'xri' => 1,
+'xrm' => 1,
+'xrn' => 1,
+'xrr' => 1,
+'xrt' => 1,
+'xru' => 1,
+'xrw' => 1,
+'xsa' => 1,
+'xsb' => 1,
+'xsc' => 1,
+'xsd' => 1,
+'xse' => 1,
+'xsh' => 1,
+'xsi' => 1,
+'xsj' => 1,
+'xsm' => 1,
+'xsn' => 1,
+'xso' => 1,
+'xsp' => 1,
+'xsq' => 1,
+'xsr' => 1,
+'xss' => 1,
+'xsu' => 1,
+'xsv' => 1,
+'xsy' => 1,
+'xta' => 1,
+'xtb' => 1,
+'xtc' => 1,
+'xtd' => 1,
+'xte' => 1,
+'xtg' => 1,
+'xti' => 1,
+'xtj' => 1,
+'xtl' => 1,
+'xtm' => 1,
+'xtn' => 1,
+'xto' => 1,
+'xtp' => 1,
+'xtq' => 1,
+'xtr' => 1,
+'xts' => 1,
+'xtt' => 1,
+'xtu' => 1,
+'xtw' => 1,
+'xty' => 1,
+'xtz' => 1,
+'xua' => 1,
+'xub' => 1,
+'xug' => 1,
+'xuj' => 1,
+'xum' => 1,
+'xuo' => 1,
+'xup' => 1,
+'xur' => 1,
+'xut' => 1,
+'xuu' => 1,
+'xve' => 1,
+'xvi' => 1,
+'xvn' => 1,
+'xvo' => 1,
+'xvs' => 1,
+'xwa' => 1,
+'xwc' => 1,
+'xwe' => 1,
+'xwg' => 1,
+'xwl' => 1,
+'xwo' => 1,
+'xwr' => 1,
+'xxb' => 1,
+'xxk' => 1,
+'xxr' => 1,
+'xxt' => 1,
+'xyl' => 1,
+'xzh' => 1,
+'xzm' => 1,
+'xzp' => 1,
+'yaa' => 1,
+'yab' => 1,
+'yac' => 1,
+'yad' => 1,
+'yae' => 1,
+'yaf' => 1,
+'yag' => 1,
+'yah' => 1,
+'yai' => 1,
+'yaj' => 1,
+'yak' => 1,
+'yal' => 1,
+'yam' => 1,
+'yao' => 1,
+'yap' => 1,
+'yaq' => 1,
+'yar' => 1,
+'yas' => 1,
+'yat' => 1,
+'yau' => 1,
+'yav' => 1,
+'yaw' => 1,
+'yax' => 1,
+'yay' => 1,
+'yaz' => 1,
+'yba' => 1,
+'ybb' => 1,
+'ybd' => 1,
+'ybe' => 1,
+'ybh' => 1,
+'ybi' => 1,
+'ybj' => 1,
+'ybk' => 1,
+'ybl' => 1,
+'ybm' => 1,
+'ybn' => 1,
+'ybo' => 1,
+'ybx' => 1,
+'yby' => 1,
+'ych' => 1,
+'ycl' => 1,
+'ycn' => 1,
+'ycp' => 1,
+'yde' => 1,
+'ydg' => 1,
+'ydk' => 1,
+'yds' => 1,
+'yea' => 1,
+'yec' => 1,
+'yee' => 1,
+'yei' => 1,
+'yej' => 1,
+'yel' => 1,
+'yen' => 1,
+'yer' => 1,
+'yes' => 1,
+'yet' => 1,
+'yeu' => 1,
+'yev' => 1,
+'yey' => 1,
+'ygl' => 1,
+'ygm' => 1,
+'ygp' => 1,
+'ygr' => 1,
+'ygw' => 1,
+'yha' => 1,
+'yhl' => 1,
+'yia' => 1,
+'yif' => 1,
+'yig' => 1,
+'yii' => 1,
+'yij' => 1,
+'yik' => 1,
+'yil' => 1,
+'yim' => 1,
+'yin' => 1,
+'yip' => 1,
+'yiq' => 1,
+'yir' => 1,
+'yis' => 1,
+'yit' => 1,
+'yiu' => 1,
+'yiv' => 1,
+'yix' => 1,
+'yiy' => 1,
+'yiz' => 1,
+'yka' => 1,
+'ykg' => 1,
+'yki' => 1,
+'ykk' => 1,
+'ykl' => 1,
+'ykm' => 1,
+'yko' => 1,
+'ykr' => 1,
+'ykt' => 1,
+'yky' => 1,
+'yla' => 1,
+'yle' => 1,
+'ylg' => 1,
+'yli' => 1,
+'yll' => 1,
+'ylm' => 1,
+'yln' => 1,
+'ylo' => 1,
+'ylr' => 1,
+'ylu' => 1,
+'yly' => 1,
+'yma' => 1,
+'ymb' => 1,
+'ymc' => 1,
+'ymd' => 1,
+'yme' => 1,
+'ymg' => 1,
+'ymh' => 1,
+'ymi' => 1,
+'ymk' => 1,
+'yml' => 1,
+'ymm' => 1,
+'ymn' => 1,
+'ymo' => 1,
+'ymp' => 1,
+'ymq' => 1,
+'ymr' => 1,
+'yms' => 1,
+'ymt' => 1,
+'ymx' => 1,
+'ymz' => 1,
+'yna' => 1,
+'ynd' => 1,
+'yne' => 1,
+'yng' => 1,
+'ynh' => 1,
+'ynk' => 1,
+'ynl' => 1,
+'ynn' => 1,
+'yno' => 1,
+'yns' => 1,
+'ynu' => 1,
+'yob' => 1,
+'yog' => 1,
+'yoi' => 1,
+'yok' => 1,
+'yol' => 1,
+'yom' => 1,
+'yon' => 1,
+'yos' => 1,
+'yox' => 1,
+'yoy' => 1,
+'ypa' => 1,
+'ypb' => 1,
+'ypg' => 1,
+'yph' => 1,
+'ypk' => 1,
+'ypm' => 1,
+'ypn' => 1,
+'ypo' => 1,
+'ypp' => 1,
+'ypz' => 1,
+'yra' => 1,
+'yrb' => 1,
+'yre' => 1,
+'yri' => 1,
+'yrk' => 1,
+'yrl' => 1,
+'yrn' => 1,
+'yrs' => 1,
+'yrw' => 1,
+'ysc' => 1,
+'ysd' => 1,
+'ysl' => 1,
+'ysn' => 1,
+'yso' => 1,
+'ysp' => 1,
+'ysr' => 1,
+'yss' => 1,
+'ysy' => 1,
+'yta' => 1,
+'ytl' => 1,
+'ytp' => 1,
+'yua' => 1,
+'yub' => 1,
+'yuc' => 1,
+'yuf' => 1,
+'yug' => 1,
+'yui' => 1,
+'yuj' => 1,
+'yuk' => 1,
+'yul' => 1,
+'yum' => 1,
+'yun' => 1,
+'yup' => 1,
+'yuq' => 1,
+'yur' => 1,
+'yut' => 1,
+'yuu' => 1,
+'yuw' => 1,
+'yux' => 1,
+'yuy' => 1,
+'yuz' => 1,
+'yva' => 1,
+'yvt' => 1,
+'ywa' => 1,
+'ywl' => 1,
+'ywn' => 1,
+'ywq' => 1,
+'ywr' => 1,
+'ywt' => 1,
+'ywu' => 1,
+'yww' => 1,
+'yyu' => 1,
+'yyz' => 1,
+'yzg' => 1,
+'yzk' => 1,
+'zag' => 1,
+'zah' => 1,
+'zaj' => 1,
+'zak' => 1,
+'zal' => 1,
+'zap' => 1,
+'zau' => 1,
+'zay' => 1,
+'zaz' => 1,
+'zbc' => 1,
+'zbe' => 1,
+'zbl' => 1,
+'zbt' => 1,
+'zbw' => 1,
+'zdj' => 1,
+'zea' => 1,
+'zeg' => 1,
+'zen' => 1,
+'zga' => 1,
+'zgr' => 1,
+'zhb' => 1,
+'zhi' => 1,
+'zhw' => 1,
+'zhx' => 1,
+'zia' => 1,
+'zib' => 1,
+'zik' => 1,
+'zim' => 1,
+'zin' => 1,
+'zir' => 1,
+'ziw' => 1,
+'ziz' => 1,
+'zka' => 1,
+'zkb' => 1,
+'zkg' => 1,
+'zkh' => 1,
+'zkk' => 1,
+'zko' => 1,
+'zkp' => 1,
+'zkr' => 1,
+'zkt' => 1,
+'zku' => 1,
+'zkv' => 1,
+'zkz' => 1,
+'zle' => 1,
+'zls' => 1,
+'zlw' => 1,
+'zma' => 1,
+'zmb' => 1,
+'zmc' => 1,
+'zmd' => 1,
+'zme' => 1,
+'zmf' => 1,
+'zmg' => 1,
+'zmh' => 1,
+'zmj' => 1,
+'zmk' => 1,
+'zml' => 1,
+'zmm' => 1,
+'zmn' => 1,
+'zmo' => 1,
+'zmp' => 1,
+'zmq' => 1,
+'zmr' => 1,
+'zms' => 1,
+'zmt' => 1,
+'zmu' => 1,
+'zmv' => 1,
+'zmw' => 1,
+'zmx' => 1,
+'zmy' => 1,
+'zmz' => 1,
+'zna' => 1,
+'znd' => 1,
+'zne' => 1,
+'zng' => 1,
+'znk' => 1,
+'zns' => 1,
+'zoc' => 1,
+'zoh' => 1,
+'zom' => 1,
+'zoq' => 1,
+'zor' => 1,
+'zos' => 1,
+'zra' => 1,
+'zrg' => 1,
+'zrn' => 1,
+'zro' => 1,
+'zrp' => 1,
+'zrs' => 1,
+'zsa' => 1,
+'zsk' => 1,
+'zsl' => 1,
+'zsu' => 1,
+'zua' => 1,
+'zuh' => 1,
+'zum' => 1,
+'zun' => 1,
+'zuy' => 1,
+'zwa' => 1,
+'zyp' => 1,
+'zza' => 1,
+);
+
+%region_codes = (
+'AC' => 1,
+'AD' => 1,
+'AE' => 1,
+'AF' => 1,
+'AG' => 1,
+'AI' => 1,
+'AL' => 1,
+'AM' => 1,
+'AN' => 1,
+'AO' => 1,
+'AQ' => 1,
+'AR' => 1,
+'AS' => 1,
+'AT' => 1,
+'AU' => 1,
+'AW' => 1,
+'AX' => 1,
+'AZ' => 1,
+'BA' => 1,
+'BB' => 1,
+'BD' => 1,
+'BE' => 1,
+'BF' => 1,
+'BG' => 1,
+'BH' => 1,
+'BI' => 1,
+'BJ' => 1,
+'BL' => 1,
+'BM' => 1,
+'BN' => 1,
+'BO' => 1,
+'BR' => 1,
+'BS' => 1,
+'BT' => 1,
+'BU' => 1,
+'BV' => 1,
+'BW' => 1,
+'BY' => 1,
+'BZ' => 1,
+'CA' => 1,
+'CC' => 1,
+'CD' => 1,
+'CF' => 1,
+'CG' => 1,
+'CH' => 1,
+'CI' => 1,
+'CK' => 1,
+'CL' => 1,
+'CM' => 1,
+'CN' => 1,
+'CO' => 1,
+'CP' => 1,
+'CR' => 1,
+'CS' => 1,
+'CU' => 1,
+'CV' => 1,
+'CX' => 1,
+'CY' => 1,
+'CZ' => 1,
+'DD' => 1,
+'DE' => 1,
+'DG' => 1,
+'DJ' => 1,
+'DK' => 1,
+'DM' => 1,
+'DO' => 1,
+'DZ' => 1,
+'EA' => 1,
+'EC' => 1,
+'EE' => 1,
+'EG' => 1,
+'EH' => 1,
+'ER' => 1,
+'ES' => 1,
+'ET' => 1,
+'EU' => 1,
+'FI' => 1,
+'FJ' => 1,
+'FK' => 1,
+'FM' => 1,
+'FO' => 1,
+'FR' => 1,
+'FX' => 1,
+'GA' => 1,
+'GB' => 1,
+'GD' => 1,
+'GE' => 1,
+'GF' => 1,
+'GG' => 1,
+'GH' => 1,
+'GI' => 1,
+'GL' => 1,
+'GM' => 1,
+'GN' => 1,
+'GP' => 1,
+'GQ' => 1,
+'GR' => 1,
+'GS' => 1,
+'GT' => 1,
+'GU' => 1,
+'GW' => 1,
+'GY' => 1,
+'HK' => 1,
+'HM' => 1,
+'HN' => 1,
+'HR' => 1,
+'HT' => 1,
+'HU' => 1,
+'IC' => 1,
+'ID' => 1,
+'IE' => 1,
+'IL' => 1,
+'IM' => 1,
+'IN' => 1,
+'IO' => 1,
+'IQ' => 1,
+'IR' => 1,
+'IS' => 1,
+'IT' => 1,
+'JE' => 1,
+'JM' => 1,
+'JO' => 1,
+'JP' => 1,
+'KE' => 1,
+'KG' => 1,
+'KH' => 1,
+'KI' => 1,
+'KM' => 1,
+'KN' => 1,
+'KP' => 1,
+'KR' => 1,
+'KW' => 1,
+'KY' => 1,
+'KZ' => 1,
+'LA' => 1,
+'LB' => 1,
+'LC' => 1,
+'LI' => 1,
+'LK' => 1,
+'LR' => 1,
+'LS' => 1,
+'LT' => 1,
+'LU' => 1,
+'LV' => 1,
+'LY' => 1,
+'MA' => 1,
+'MC' => 1,
+'MD' => 1,
+'ME' => 1,
+'MF' => 1,
+'MG' => 1,
+'MH' => 1,
+'MK' => 1,
+'ML' => 1,
+'MM' => 1,
+'MN' => 1,
+'MO' => 1,
+'MP' => 1,
+'MQ' => 1,
+'MR' => 1,
+'MS' => 1,
+'MT' => 1,
+'MU' => 1,
+'MV' => 1,
+'MW' => 1,
+'MX' => 1,
+'MY' => 1,
+'MZ' => 1,
+'NA' => 1,
+'NC' => 1,
+'NE' => 1,
+'NF' => 1,
+'NG' => 1,
+'NI' => 1,
+'NL' => 1,
+'NO' => 1,
+'NP' => 1,
+'NR' => 1,
+'NT' => 1,
+'NU' => 1,
+'NZ' => 1,
+'OM' => 1,
+'PA' => 1,
+'PE' => 1,
+'PF' => 1,
+'PG' => 1,
+'PH' => 1,
+'PK' => 1,
+'PL' => 1,
+'PM' => 1,
+'PN' => 1,
+'PR' => 1,
+'PS' => 1,
+'PT' => 1,
+'PW' => 1,
+'PY' => 1,
+'QA' => 1,
+'RE' => 1,
+'RO' => 1,
+'RS' => 1,
+'RU' => 1,
+'RW' => 1,
+'SA' => 1,
+'SB' => 1,
+'SC' => 1,
+'SD' => 1,
+'SE' => 1,
+'SG' => 1,
+'SH' => 1,
+'SI' => 1,
+'SJ' => 1,
+'SK' => 1,
+'SL' => 1,
+'SM' => 1,
+'SN' => 1,
+'SO' => 1,
+'SR' => 1,
+'ST' => 1,
+'SU' => 1,
+'SV' => 1,
+'SY' => 1,
+'SZ' => 1,
+'TA' => 1,
+'TC' => 1,
+'TD' => 1,
+'TF' => 1,
+'TG' => 1,
+'TH' => 1,
+'TJ' => 1,
+'TK' => 1,
+'TL' => 1,
+'TM' => 1,
+'TN' => 1,
+'TO' => 1,
+'TP' => 1,
+'TR' => 1,
+'TT' => 1,
+'TV' => 1,
+'TW' => 1,
+'TZ' => 1,
+'UA' => 1,
+'UG' => 1,
+'UM' => 1,
+'US' => 1,
+'UY' => 1,
+'UZ' => 1,
+'VA' => 1,
+'VC' => 1,
+'VE' => 1,
+'VG' => 1,
+'VI' => 1,
+'VN' => 1,
+'VU' => 1,
+'WF' => 1,
+'WS' => 1,
+'YD' => 1,
+'YE' => 1,
+'YT' => 1,
+'YU' => 1,
+'ZA' => 1,
+'ZM' => 1,
+'ZR' => 1,
+'ZW' => 1,
+);
+

Index: regenerate_documentlanguages.pl
===================================================================
RCS file: regenerate_documentlanguages.pl
diff -N regenerate_documentlanguages.pl
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ regenerate_documentlanguages.pl     2 Aug 2009 14:12:10 -0000       1.1
@@ -0,0 +1,54 @@
+#! /usr/bin/perl -w
+
+use strict;
+
+system ("wget -N http://www.iana.org/assignments/language-subtag-registry";);
+
+open (TXT,"language-subtag-registry") or die "Open language-subtag-registry: 
$!\n";
+
+my $entry;
+my @entries;
+while (<TXT>)
+{
+   if (/^%%/)
+   {
+      push @entries, $entry if (defined($entry));
+      $entry = undef;
+   }
+   else
+   {
+       if (/^(\w+): (.*)/)
+       {
+           $entry->{$1} = $2;
+       }
+   }
+}
+
+open (OUT, ">documentlanguages.pl") or die "Open documentlanguages.pl: $!\n";
+
+print OUT '%language_codes = ('."\n";
+foreach my $entry (@entries)
+{
+   # Scope collection macrolanguage are used
+   if ($entry->{'Type'} eq 'language' and !defined($entry->{'Preferred-Value'})
+         and !defined($entry->{'Macrolanguage'}) and 
+         (!defined($entry->{'Scope'}) or ($entry->{'Scope'} ne 'special' and
+           $entry->{'Scope'} ne 'private-use')))
+   {
+       print OUT "'$entry->{'Subtag'}' => 1,\n";
+       print STDERR "$entry->{'Subtag'} Scope $entry->{'Scope'}\n" if 
defined($entry->{'Scope'});
+   }
+}
+print OUT ");\n\n";
+
+print OUT '%region_codes = ('."\n";
+foreach my $entry (@entries)
+{
+   if ($entry->{'Type'} eq 'region' and !defined($entry->{'Preferred-Value'})
+        and $entry->{'Description'} ne 'Private use' and $entry->{'Subtag'} !~ 
/^\d{3}$/)
+   {
+       print OUT "'$entry->{'Subtag'}' => 1,\n";
+   }
+}
+print OUT ");\n\n";
+




reply via email to

[Prev in Thread] Current Thread [Next in Thread]